/*
************************************************************************
* TESTREIHE PAKETBENUTZUNG:
* Wie arbeiten verschiedene Programmbestandteile in JAVA zusammen?
*
* Autorin: Sigrid Wehner
* Stand: 6.6.2002
* -----------------------------------------------------------------------
* diese Quelle: Hpex4b.java
* Bestandteile:
* ------------
* Quelle: Hpex4b.java Klasse liegt in aktueller Directory,z.B.:
* /home/sigrid/hiwi/javatests/ex4b/
* 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/ex4b/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)
*
* Hpex4b ist identisch mit Hpex4a bis auf den Unterschied, dass
* bei Konstruktion neuer Objekte der Klassen SWjtools.SWIO
* und SWjtools.SWmathfor der Klassenname aus dem Paket
* beibehalten wird.
*
* Java-Syntax zur
* Paketbenutzung:
* ---------------
* // Import des Pakets SWjtools
* import SWjtools.*;
* // Jetzt ist die import-Zeile ZWINGEND,
* // da in der Konstruktorzeile nur der Klassenname
* // verwendet wird:
*
* // Instanziieren, Objekt erzeugen innerhalb der Klasse,
* // aber ausserhalb von main
* // unter Beibehaltung des vom Package vorgegebenen
* // Klassennamens SWIO bzw. SWmathfor
* static SWIO SWIO = new SWIO();
* static SWmathfor SWmathfor = new SWmathfor();
*
* // Methoden benutzen, z.B.:
* SWIO.writeln(hierformeln.fakr(i));
*
************************************************************************ */
/** Hpex4b:
* Ablauffaehige Klasse, beinhaltet Methode main
* sowie 2 Methoden mit demselben Namen min,
* jedoch unterschiedlichen Parametertypen.
* Benutzt Paket SWjtools
* @author Sigrid Wehner
* @version 6.6.2002
*/
// Import des Pakets SWjtools
import SWjtools.*; // alle Klassen des Pakets SWjtools
// stehen zur Verfuegung
// import SWjtools.SWIO; // nur Klasse SWIO
// import SWjtools.SWmathfor; // nur Klasse SWmathfor;
public class Hpex4b {
// Instanziierung fuer ein Objekt der Klasse SWIO, heisst jetzt lokal: SWIO
// Ab jetzt koennen alle Methoden der Klasse SWIO aus dem Paket SWjtools
// angesprochen werden durch ---> SWIO.methoden_name
// Instanziierung fuer ein Objekt der Klasse SWmathfor,
// heisst jetzt lokal: SWmathfor. Methodenaufruf also durch:
// ---> SWmathfor.methoden_name
static SWIO SWIO = new SWIO();
static SWmathfor SWmathfor = new SWmathfor();
/** 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("Hpex4b");
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
SWIO.sterne();
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("Fakultaetsberechnung (rekursiv):");
SWIO.writeln("--------------------------------");
for (int i=0;i<8;i++)
{ SWIO.write(i);
SWIO.write("! = ");
SWIO.writeln(SWmathfor.fakr(i)); }
SWIO.sterne();
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();
SWIO.fuss("Hpex4b");
SWIO.leerzeile();
}
}