/*
************************************************************************
* TESTREIHE PAKETBENUTZUNG:
* Wie arbeiten verschiedene Programmbestandteile in JAVA zusammen?
*
* Autorin: Sigrid Wehner
* Stand: 14.6.2002
* -----------------------------------------------------------------------
* diese Quelle: Hpex6.java
* Bestandteile:
* ------------
* Quelle: Hpex6.java Klasse liegt in aktueller Directory,z.B.:
* /home/sigrid/hiwi/javatests/ex6/
* int min Methode - dieselbe Quelle -
* long min Methode - dieselbe Quelle -
* main Methode - dieselbe Quelle -
*
* benoetigt: Klamax.class Klasse ebenso in AKTUELLER Directory
* int max Methode - aus Klasse Klamax -
* long max Methode - aus Klasse Klamax -
*
* Klaspann.class Klasse liegt in einer ANDEREN Directory
* z.B. im Unterverzeichnis ./unterdir
* also im Pfad:
* /home/sigrid/hiwi/javatests/ex6/unterdir
* int spann Methode - aus Klasse Klaspann -
* long spann Methode - aus Klasse Klaspann -
*
* Klaxquer.class Klasse liegt in einem Verzeichnis, das
* durch die Umgebungsvariable
* $CLASSPATH bekannt ist
* hier z.B.:
* /home/sigrid/SWJLIB/
* benutzt
* Packages:
* ---------
* SWjtools Package --> es existiert ein Unterverzeichnis
* -------- mit diesem Namen in einem mittels
* CLASSPATH definiertem Pfad;
* in diesem Unterverzeichnis liegen
* die zum Paket gehoerenden
* Klassen, in diesem Beispiel:
*
* SWIO.class Klasse SW's I/O-Routinen fuer Java
* mit folgenden
* Methoden:
* void fuss(String s)
* void kopf(String s)
* void leern(int n)
* void leerzeile()
* String promptAndReadString(String s)
* char promptAndReadChar(String s)
* int promptAndReadInt(String s)
* double promptAndReadDouble(String s)
* void sterne()
* void write(String s)
* void write(int i)
* void write(double z)
* void writeln(String s)
* void writeln(int i)
* void writeln(double z)
* boolean yesno(String s)
*
* SWmathfor. Klasse SW's mathematische Formeln
* class mit folgenden
* Methoden:
* long faki(int n)
* long fakr(int n)
* int fiboi(int n)
* int fibor(int n)
*
*
* Unterpakete: SWjtools.mathele mit:
* ------------ -----------------
*
*
* Java-Syntax zur
* Paketbenutzung:
* ---------------
* // Import der Pakete
* import SWjtools.*;
* import SWjtools.subtool1.*;
* import SWjtools.subtool2.*;
* import SWjtools.mathele*;
* ACHTUNG: FEHLERMELDUNG
* vom Compiler, falls durch
* wildcard-import Namens-
* konflikte auftreten
*
* // Konstruktorzeilen:
* static SWIO SWIO = new SWIO();
* static SWmathfor SWmathfor = new SWmathfor();
* static A A = new A();
* static B B = new B();
* static C C = new C();
* --> statt dessen auch moeglich, falls .subtool2
* NICHT importiert wurde:
* static SWjtools.subtool2.C C = new SWjtools.subtool2.C();
* static Polynom
************************************************************************ */
/** Hpex6:
* Ablauffaehige Klasse, beinhaltet Methode main
* sowie 2 Methoden mit demselben Namen min,
* jedoch unterschiedlichen Parametertypen.
* Benutzt Paket SWjtools und Unterpaket SWjtools.mathele
* @author Sigrid Wehner
* @version 9.6.2002
*/
// Import der Pakete:
// ------------------
import SWjtools.*;
// import SWjtools.subtool1.A; // nur Klasse A importieren
import SWjtools.subtool1.*;
// import SWjtools.subtool2.*;
import SWjtools.mathele.*;
public class Hpex6 {
// Instanziierungszeilen:
// ----------------------
static SWIO SWIO = new SWIO(); // Klasse SWIO, Namen behalten
static SWmathfor SWmathfor = new SWmathfor();
// Klasse SWmathfor, Namen behalten
static A A = new A(); // Klassen A,B,C
static B B = new B();
// static C C = new C();
static SWjtools.subtool2.C C = new SWjtools.subtool2.C();
static Polynom F = new Polynom(); // Objekt F der Klasse Polynom erzeugen
// mit Default Konstruktor
/** Sucht Minimum von 2 Integer-Zahlen
* @param i erste Integerzahl
* @param j zweite Integerzahl
* @return Minimum der beiden Zahlen
*/
static int min (int i, int j)
{
if (i < j)
return i;
return j;
}
/** Sucht Minimum von 2 Long-Zahlen
* @param i erste Longzahl
* @param j zweite Longzahl
* @return Minimum der beiden Zahlen
*/
static long min (long i, long j)
{
if (i < j)
return i;
return j;
}
/** Hauptprogramm */
public static void main (String args [])
{
long along=22l, blong=999l;
int aint=33, bint=44;
//SWIO
SWIO.kopf("Hpex6");
SWIO.sterne();
SWIO.writeln
("Test mit Klassen in derselben Quelle und in anderen Directories");
SWIO.writeln
("---------------------------------------------------------------");
System.out.print(" 2 Integer-Zahlen sind: ");
System.out.print(aint);
System.out.print(" und ");
System.out.println(bint);
System.out.print(" 2 Long-Zahlen sind : ");
System.out.print(along);
System.out.print(" und ");
System.out.println(blong);
SWIO.leerzeile();
System.out.print("MINIMUM --> Ergebnis von Methode int min (int, int) : ");
System.out.println (min(aint,bint));
// diese Quelle, diese Klasse
System.out.print("MINIMUM --> Ergebnis von Methode long min (long,long): ");
System.out.println (min(along,blong));
// diese Quelle, diese Klasse
System.out.println();
System.out.print("MAXIMUM --> Ergebnis von Methode int max (int, int) : ");
System.out.println (Klamax.max(aint,bint));
// andere Klasse, aktueller Pfad
System.out.print("MAXIMUM --> Ergebnis von Methode long max (long,long): ");
System.out.println (Klamax.max(along,blong));
// andere Klasse, aktueller Pfad
System.out.println();
System.out.print("SPANNWEITE --> fuer die beiden Integer-Zahlen : ");
System.out.println (Klaspann.spann(aint,bint));
// andere Klasse, anderer Pfad
System.out.print("SPANNWEITE --> fuer die beiden Long-Zahlen : ");
System.out.println (Klaspann.spann(along,blong));
// andere Klasse, anderer Pfad
System.out.println();
System.out.print("MITTELWERT --> fuer die beiden Integer-Zahlen : ");
System.out.println (Klaxquer.xquer(aint,bint));
// andere Klasse im CLASSPATH
System.out.print("MITTELWERT --> fuer die beiden Long-Zahlen : ");
System.out.println (Klaspann.spann(along,blong));
// andere Klasse im CLASSPATH
//SWIO, SWmathfor
SWIO.sterne();
SWIO.writeln
("Test mit dem Paket SWjtools (Klassen SWIO und SWmathfor)");
SWIO.writeln
("--------------------------------------------------------");
SWIO.leerzeile();
SWIO.writeln("Fakultaetsberechnung (rekursiv):");
SWIO.writeln("--------------------------------");
for (int i=0;i<8;i++)
{ SWIO.write(i);
SWIO.write("! = ");
SWIO.writeln(SWmathfor.fakr(i)); }
SWIO.leerzeile();
SWIO.writeln("Fibonacci-Zahlen (iterativ):");
SWIO.writeln("----------------------------");
for (int i=1;i<8;i++)
{ SWIO.write(i);
SWIO.write(". Fibonacci-Zahl = ");
SWIO.writeln(SWmathfor.fiboi(i)); }
SWIO.sterne();
// Benutzung der Unterpakete SWjtools.subtool1 und SWjtools.subtool2
SWIO.writeln(
"Test zur Benutzung der Unterpakete SWjtools.subtool1 und .subtool2");
SWIO.writeln(
"------------------------------------------------------------------");
SWIO.leerzeile();
A.halloGer();
B.halloGer();
C.halloWor();
// Benutzung des Unterpakets mathele
SWIO.sterne();
SWIO.writeln(
"Test zur Benutzung des Unterpakets SWjtools.mathele");
SWIO.writeln(
"---------------------------------------------------");
SWIO.leerzeile();
// F ist Nullpolynom, bereits ausserhalb von main erzeugt
SWIO.writeln("Polynom F");
SWIO.writeln("---------");
SWIO.write("Grad = ");
SWIO.writeln(F.Degree());
F.Display();
SWIO.leerzeile();
// G Polynom 3. Grades, wird erst jetzt in main erzeugt
int n=3;
double[] a = new double[n+1];
// a[0]=0.001; a[1]=1.0; a[2]=2.0; a[3]=3.0;
// a[0]=0.001; a[1]=-1.1; a[2]=2.22; a[3]=-3.333;
a[0]=0.001; a[1]=-1.1; a[2]=-2.22; a[3]=-3.33;
Polynom G = new Polynom(n,a);
SWIO.writeln("Polynom G");
SWIO.writeln("---------");
SWIO.write("Grad = ");
SWIO.writeln(G.Degree());
G.Display();
SWIO.leerzeile();
double x=-5.0;
for (int i=0; i<=10; i++) {
SWIO.write("G("); SWIO.write(x); SWIO.write(")=");
SWIO.writeln(G.Pwert(x));
x=x+1.0;
}
SWIO.sterne();
SWIO.writeln("Jetzt kommen noch die beliebten komplexen Zahlen:");
SWIO.writeln("-------------------------------------------------");
// Erzeuge 4 verschiedene komplexe Zahlen
komplex u = new komplex(1,0);
komplex v = new komplex(0,1);
komplex w = new komplex(-1,0);
komplex z = new komplex(0,-1);
komplex uv_S = new komplex();
komplex wz_S = new komplex();
komplex uv_P = new komplex();
komplex wz_P = new komplex();
uv_S=uv_S.k_Summe(u,v);
wz_S=wz_S.k_Summe(w,z);
uv_P=uv_P.k_Produkt(u,v);
wz_P=wz_P.k_Produkt(w,z);
SWIO.write("komplexe Zahl u = ");
SWIO.writeln(u.toString());
SWIO.write("komplexe Zahl v = ");
SWIO.writeln(v.toString());
SWIO.write("komplexe Zahl w = ");
SWIO.writeln(w.toString());
SWIO.write("komplexe Zahl z = ");
SWIO.writeln(z.toString());
SWIO.leerzeile();
SWIO.write("u in Polarkoordinaten = ");
SWIO.write("("); SWIO.write(u.k_r());
SWIO.write(" | "); SWIO.write(u.k_phi());
SWIO.write(" bzw. "); SWIO.write(u.k_phi_deg());
SWIO.writeln(" Grad)");
SWIO.write("v in Polarkoordinaten = ");
SWIO.write("("); SWIO.write(v.k_r());
SWIO.write(" | "); SWIO.write(v.k_phi());
SWIO.write(" bzw. "); SWIO.write(v.k_phi_deg());
SWIO.writeln(" Grad)");
SWIO.write("w in Polarkoordinaten = ");
SWIO.write("("); SWIO.write(w.k_r());
SWIO.write(" | "); SWIO.write(w.k_phi());
SWIO.write(" bzw. "); SWIO.write(w.k_phi_deg());
SWIO.writeln(" Grad)");
SWIO.write("z in Polarkoordinaten = ");
SWIO.write("("); SWIO.write(z.k_r());
SWIO.write(" | "); SWIO.write(z.k_phi());
SWIO.write(" bzw. "); SWIO.write(z.k_phi_deg());
SWIO.writeln(" Grad)");
SWIO.leerzeile();
SWIO.write("Betrag von u = "); SWIO.writeln(u.k_Betrag());
SWIO.write("Betrag von v = "); SWIO.writeln(v.k_Betrag());
SWIO.write("Betrag von w = "); SWIO.writeln(w.k_Betrag());
SWIO.write("Betrag von z = "); SWIO.writeln(z.k_Betrag());
SWIO.leerzeile();
SWIO.write("Summe u + v = ");
SWIO.write(uv_S.toString());
SWIO.write(" Betrag = ");
SWIO.writeln(uv_S.k_Betrag());
SWIO.write("Summe w + z = ");
SWIO.write(wz_S.toString());
SWIO.write(" Betrag = ");
SWIO.writeln(wz_S.k_Betrag());
SWIO.write("Produkt u * v = ");
SWIO.write(uv_P.toString());
SWIO.write(" Betrag = ");
SWIO.writeln(uv_P.k_Betrag());
SWIO.write("Produkt w * z = ");
SWIO.write(wz_P.toString());
SWIO.write(" Betrag = ");
SWIO.writeln(wz_P.k_Betrag());
SWIO.sterne();
SWIO.fuss("Hpex6");
SWIO.leerzeile();
}
}
class A {
public void halloGer () {
System.out.println("Klasse A: Hallo Germany! (***this***)");
}
public void halloWor () {
System.out.println("Klasse A: Hallo World! (***this***)"); }
}