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