001
26.11.2002, 08:12 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Hi
Zitat: |
ich habe ein problem...
|
Das haben viele
Zitat: |
ich verstehe bei den funktionen den return wert nicht.
|
ok ich erklärs dir
Wenn man eine Funktion hat:
C++: |
int Funktion(int p1, int p2) { return (p1 * p2); }
|
sind p1 und p2 2 Zahlen (Parameter) welche man der Funktion übergeben muss. Normalerweiße benutzt man Funktionen um gleiche Schritte "auszulagern", also das man nicht immer z.B. 5 Zeilen schreiben muss sondern nur noch eine. Die obere Funktion berechnet im Grunde nichts anderes als p1 * p2 (also z.B. p1 = 4, p2 = 2, Funktion(4,2) = 8). Das return bedeutet, das man eben dieses Ergebnis (8) dann "zurückgibt", also wieder dem Hauptprogramm oder einer anderen Funktion übergibt.
C++: |
void main(void) { int erg = Funktion(4,2); }
|
In diesem Fall wäre eben die Variable erg 8.
[quote] ich habe nämlich folgende funktion gefunden und kann mir die return- werte einfach nicht erklären. vielleicht kann es hier jemand....
wenn ich zb den grössten gemeinsamen teiler habe und zwei zahlen einlöse.... [quote]
C++: |
int GGT(int m, int n) { if (n == 0) return a; else return GGT(n, m%b);
|
Da muss ein Fehler vorliegen, den a und b sind nicht definiert, da würde der Compiler meckern
rekursiver Aufruf von GGT, man ruft die Funktion GGT so auf:
C++: |
GGT(5,10); da n != 0 GGT(10,5%b); da n != 0 GGT(5%b,(5%b)%b); usw... GGT(m,0); aha n==0! <- a <- a <- a <- a
|
Am Ende kommt eben a raus ...
Hoffentlich konnt ich dirs einigermaßen erklären, wenn noch was unklar ist, einfach posten -- class God : public ChuckNorris { }; |