dachdecker2 Moderator
Anmeldungsdatum: 11.06.2005 Beiträge: 106 Wohnort: Maintal / Hessen
|
Verfasst am: 01. Feb 2006 02:22 Titel: |
|
|
Ein paar Worterklärungen:
Bei der Iteration wird ein vorhandener Wert in jedem Rechen durchgang (sog. Iterationsschritt) verfeinert. Die Iterationsschleife führt den Iterationsschritt dabei so lange immer wieder aus, bis eine Abbruchbedingung erfüllt ist. Beispiel:
int fakultaet (int n){
int hilfsvariable;
for (;n>1;n--) hilfsvariable *= n;
return (hilfsvariable);
}
Rekursiv nennt man Funktionen, die sich selbst aufrufen, auch hier muss eine Abbruchbedingung, also ein Programmpfad vorliegen, in dem das Programm sich selbst nicht mehr aufruft. Beispiel:
int fakultaet (int n){
if (n>1) return (1);
else return (fakultaet (n-1));
}
Für rekursive Funktionen lassen sich in der Regel auch iterative Pendants finden und umgekehrt. Ich bin nicht sicher, ob das immer möglich sein muss, ich bilde es mir zumindest ein .
Eine Whileschleife führt den schleifenkern solange aus, wie die Bedingung wahr ist - die Bedingung wird im unterschied zur repeat-Schleife vor der ersten Ausführung schon überprüft. Dein Code ist also richtig. Der Ausdruck ist die Bedingung - es kommt dabei auf den sog. Wahrheitswert an ().
ps.: versuche mal ohne bunten Text und ohne Unterstreichungen auszukommen.
// edit: ich hätte fast vergessen noch zu sagen, dass eine rekursive Funktion ohne Parameter sinnlos den Speicher des Rechners vollschreibt. Globale Variable sind an dieser Stelle nicht angebracht und würden die Übersichtlichkeit unnötig beeinträchtigen. _________________ In a world without walls and fences, who needs windows and gates? [Internet]
Gruß, dachdecker2 |
|