Frage zu Funktion



  • Hallo,

    gibt es einen Unterschied zwischen Funktion/Unterprogramm/Routine/Subroutine ?


  • Mod

    Keinen wesentlichen.



  • eine Funktion gibt normalerweise einen Wert zurück, wie z.B. sin(x), eine Subroutine nicht. Ich glaube Basic und Pascal unterscheiden das, C jedoch nicht.



  • Im Weiteren gibt es auch noch Prozeduren und Methoden. Von ersteren spricht man eigentlich eher selten in C++, den Begriff Methode bezieht man oft auf Memberfunktionen einer Klasse.



  • Richtige "Subs", wie sie in Basic vorkommen, sind imho totaler Quatsch. Welchen Vorteil bringt denn eine solche Unterscheidung im Gegensatz zur Funktion ohne Rückgabe? Ich fand das immer sehr nervig...



  • _matze schrieb:

    Welchen Vorteil bringt denn eine solche Unterscheidung im Gegensatz zur Funktion ohne Rückgabe? Ich fand das immer sehr nervig...

    das hab ich mich auch schon immer gefragt - vll eine inline-garantie oder so was in der richtung?
    das es quatsch ist kann man selten beurteilen, wenn man den grund nicht kennt ;o)

    bb



  • unskilled schrieb:

    das es quatsch ist kann man selten beurteilen, wenn man den grund nicht kennt ;o)

    Na gut, das ist ein wahres Wort. 😃



  • blurry33 schrieb:

    gibt es einen Unterschied zwischen Funktion/Unterprogramm/Routine/Subroutine

    Meine Sichtweise ist folgende (Achtung: Abweichungen von gültiger Lehrmeinung sind sehr wahrscheinlich):
    Funktion: Hat mindestens einen Input und einen Output. Sie ist eine Abbildung (ähnlich wie in der Mathematik) zwischen zwei Mengen. Funktionen arbeiten ausschliesslich mit dem Input, haben keine Seiteneffekte und halten keinen inneren Status.

    Routine: Separates Stück Code, das eine spezielle Aufgabe erfüllt. Kann nur eine einzelne Schleife, ein Block oder etwas Komplexeres sein.

    Subroutine und Unterprogramm: Spezialfall der Routine, eine Routine die nach Beendigung wieder zum Aufrufer zurückkehrt. Subroutinen müssen im Gegensatz zu Funktionen keinen Rückgabewert und keine Argumente haben.

    In C++ spricht man aber nur von Funktionen und meint damit alles. 😉



  • so ähnlich war's in basic.
    clock() hieß timer und war keine funktion, sondern eine pseudovariable.



  • volkard schrieb:

    so ähnlich war's in basic.
    clock() hieß timer und war keine funktion, sondern eine pseudovariable.

    Ich habe mit BASIC angefangen. (Schneider CPC). Wahrscheinlich kommt meine Ansicht daher.


Anmelden zum Antworten