56 Stimmen

Was ist der Unterschied zwischen einer Funktion und einem Unterprogramm?

Was ist der Unterschied zwischen einer Funktion und einer Subroutine? Mir wurde gesagt, dass der Unterschied zwischen einer Funktion und einer Subroutine wie folgt ist:

Eine Funktion nimmt Parameter entgegen, arbeitet lokal und ändert keinen Wert und arbeitet nicht mit Werten außerhalb ihres Bereichs (hohe Kohäsion). Sie gibt auch einen Wert zurück. Eine Subroutine arbeitet direkt mit den Werten des Aufrufers oder des Code-Segments, das sie aufgerufen hat, und gibt keine Werte zurück (niedrige Kohäsion), d.h. sie verzweigt bestimmten Code zu anderem Code, um Verarbeitungen durchzuführen und zurückzukehren.

Ist das wahr? Oder gibt es keinen Unterschied, nur zwei Begriffe für dasselbe?

17voto

Jason McCreary Punkte 69116

Ich bin anderer Meinung. Wenn Sie einen Parameter per Referenz an eine Funktion übergeben, könnten Sie diesen Wert außerhalb des Funktionsbereichs ändern. Außerdem müssen Funktionen nicht unbedingt einen Wert zurückgeben. Betrachten Sie void some_func() in C. Somit sind die Annahmen im Ausgangsposting ungültig.

In meinen Augen ist der Unterschied zwischen Funktion und Unterprogramm semantisch. Manche Sprachen verwenden unterschiedliche Terminologie.

13voto

Andreas Punkte 173

Eine Funktion gibt einen Wert zurück, während eine Unterprozedur dies nicht tut. Eine Funktion sollte die Werte der tatsächlichen Argumente nicht ändern, während eine Unterprozedur sie ändern könnte.

Das ist meine Definition von ihnen ;-)

7voto

Amit Punkte 79

Wenn wir in C, C++, Java und anderen verwandten Hochsprachen sprechen:

a. Eine Unterprozedur ist ein logischer Konstrukt, das beim Schreiben von Algorithmen (oder Flussdiagrammen) verwendet wird, um Verarbeitungsfunktionalität an einem Ort zu kennzeichnen. Die Unterprozedur liefert basierend auf der Eingabe einige Ausgaben, wobei die Verarbeitung unverändert bleiben kann.

b. Eine Funktion ist eine Realisierung des Unterprozedur-Konzepts in der Programmiersprache

4voto

Azeem Akhter Punkte 476

Einer der Unterschiede könnte aus dem Ursprung stammen, wo die Terminologie herkommt.

Subroutine ist eher eine Begrifflichkeit aus der Computerarchitektur/-organisation, was eine wiederverwendbare Gruppe von Anweisungen bedeutet, die eine Aufgabe ausführt. Sie wird einmal im Speicher gespeichert, aber so oft wie nötig verwendet.

Funktion stammt ursprünglich aus der mathematischen Funktion, wo die Grundidee darin besteht, eine Menge von Eingaben auf eine Menge zulässiger Ausgaben abzubilden, mit der Eigenschaft, dass jede Eingabe genau einer Ausgabe zugeordnet ist.

4voto

saina Punkte 41

In Bezug auf Visual Basic ist eine Unterprozedur eine Reihe von Anweisungen, die eine klar definierte Aufgabe ausführt. Die Anweisungen werden innerhalb von Sub und End Sub Anweisungen platziert.

Funktionen sind ähnlich wie Unterprozeduren, mit der Ausnahme, dass Funktionen einen Wert zurückgeben. Unterprozeduren führen eine Aufgabe aus, melden jedoch nichts an das aufrufende Programm. Eine Funktion führt üblicherweise Berechnungen durch und meldet das Ergebnis dem Aufrufer.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X