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?

-1voto

Daredevil Punkte 7

Ich schreibe diese Antwort aus der Perspektive von VBA für Excel. Wenn Sie eine Funktion schreiben, können Sie sie als Ausdruck verwenden, d. h. Sie können sie aus jeder Zelle in Excel aufrufen.

z. B.: Die normale VLOOKUP-Funktion in Excel kann keine Werte > 256 Zeichen suchen. Also habe ich diese Funktion verwendet:

Function MyVlookup(Lval As Range, c As Range, oset As Long) As Variant
  Dim cl As Range
  For Each cl In c.Columns(1).Cells
  If UCase(Lval) = UCase(cl) Then
  MyVlookup = cl.Offset(, oset - 1)
  Exit Function
  End If
  Next
End Function

Dies ist nicht mein Code. Ich habe ihn von einem anderen Internet-Beitrag. Es funktioniert gut.

Aber der eigentliche Vorteil ist, dass ich ihn jetzt von jeder Zelle in Excel aus aufrufen kann. Wenn ich eine Unterprozedur geschrieben hätte, könnte ich das nicht tun.

-2voto

Ti Kanon Punkte 27

Jede Unterfunktion führt eine bestimmte Aufgabe aus. Bei einigen Unterfunktionen besteht diese Aufgabe darin, einen Datenwert zu berechnen oder abzurufen. Unterfunktionen dieser Art werden als Funktionen bezeichnet. Wir sagen, dass eine Funktion einen Wert zurückgibt. Im Allgemeinen soll der zurückgegebene Wert auf irgendeine Weise im Programm verwendet werden, das die Funktion aufruft.

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