Funktion vs. Prozedur
-
Hallo zusammen, ich habe eine Frage, mein Berufsschul-"Lehrer" behauptet das eine Funktion einen Rückgabewert haben muss soweit sind wir und ja noch einig, aber er behauptet jetzt das eine Prozedur einen Rückgabewert haben kann, es ihr aber offen steht ob oder nicht?!? In der Fachliteratur die ich gelesen hab steht aber genauso wie in Wikipedia das sie keinen Rückgabewert haben darf. Gegoggelt hab ich auch scho => fehlanzeige
Also was meint ihr keinen Rückgabewert oder freigestellt?
-
Frag ihn dann mal was seiner Meinung nach der Unterschied zwischen Funktion und Prozedur ist.
bzw. ob
int foo() { return 1; }
jetzt eine Funktion oder Prozedur ist.Die Antwort würde mich mal interessieren...
-
Das ist reine Definitionssache. In C++ nennst du auch
void foo(int a);
eine Funktion, obwohl es keinen Rückgabewert hat. Andereseits
darf in Pascal eine procedure nichts zurückgeben, eine Funktion
muss es aber auf jeden Fall (wie in der Mathematik).Namen sind Schall und Rauch. Wenn du unklare Begriffe benutzt,
musst du nur sagen, was du meinst. Und das hat dein Lehrer hoffentlich
klar getan.
-
Klar können Prozeduren einen Rückgabewert haben. Per "call by reference".
-
Das ist in dem Sinne aber keine Rückgabe, sondern, dabei wird der Eingabeparameter geändert. Es wird also nichts zurückgegeben, sondern nur geändert.
-
Taurin schrieb:
Namen sind Schall und Rauch. Wenn du unklare Begriffe benutzt,
musst du nur sagen, was du meinst. Und das hat dein Lehrer hoffentlich
klar getan.Das hat er eben nicht getan!
Dann benutze ich heute in der Schulaufgabe eben seine Definition, besser Punkte aber ich werd mich deshalb mit ihm nochmal anlegen "diskutieren" trotzdem danke
-
Mit was programmiert ihr denn? C/C++? Da gibts sowieso keine Prozeduren, sondern nur Funktionen. Ist aber halt alles eine Definitionssache der Sprache. IIRC gabs zB in Pascal Prozeduren (ohne Rückgabewert) und Funktionen (mit Rückgabewert).