Java Reference
In-Depth Information
return ergebnis;
}
/*
* liefere als Funktionswert das Produkt der Ganzen Zahlen
*von1bisn;
* man nennt diese Funktion auch die Fakultaet von n
*/
int fakultaet(int n) {
int ergebnis = 1;
int zaehler = 2;
while (zaehler <= n) {
ergebnis *= zaehler;
zaehler++;
}
return ergebnis;
}
// laufe falls moeglich änzahl" Felder nach vorne
void felderVor(int anzahl) {
while ((anzahl > 0) && vornFrei()) {
vor();
anzahl--;
}
}
// Hauptprogramm
void main() {
int n = 4;
felderVor(summe(3));
// Anweisung 2
felderVor(fakultaet(n) - summe(n - 1));
// Anweisung 3
felderVor(summe(fakultaet(fakultaet(3))));
// Anweisung 4
}
In Anweisung 2 der main-Prozedur wird die Prozedur felderVor mit einem aktuellen Parameter-
wert aufgerufen, der zuvor durch den Aufruf der Funktion summe mit dem aktuellen Parameterwert
3 berechnet wird. Bevor die Prozedur felderVor ausgeführt werden kann, muss zunächst einmal
der Ausdruck summe(3) berechnet werden; dieser liefert durch Ausführung der Funktion summe den
Wert 6 . Der Wert 6 wird dann als aktueller Parameter der Prozedur felderVor übergeben.
In Anweisung 3 der main-Prozedur findet sich ein weiterer Aufruf der Prozedur felderVor . Der
Ausdruck zur Berechnung des aktuellen Parameters ist hier ein wenig komplexer. Zunächst werden
die Funktion fakultaet mit dem Wert 4 (aktueller Wert der Variablen n ) und anschließend die
Funktion summe mit dem Wert 3 (Ergebnis der Berechnung des Ausdrucks n
1) ausgeführt. Die
Funktion fakultaet liefert den Wert 24 , die Funktion summe den Wert 6 . Die Differenz dieser bei-
den Werte ergibt den Wert 18 . Dieser Wert wird als Parameter der Prozedur felderVor übergeben,
sodass der Hamster hier im Maximalfall 18 Schritte nach vorne laufen wird.
Noch komplexer erscheint der Aufruf der Prozedur felderVor in Anweisung 4 der main-Prozedur.
Bevor die Prozedur mit einem definierten Wert aufgerufen werden kann, muss dieser Wert zunächst
Search WWH ::




Custom Search