Diskussion:Prozedur (Programmierung)
zu den Rückgabewerten:
Hallo, soweit ich mich erinnern kann ist der Unterschied, dass eine Funktion genau eines Wert zurückliefert, während eine Prozedur keine oder beliebig viele Rückgabewerte zurückliefern kann (ausser in Pascal).
Viele Grüße
Hans
Ich bin mir ziemlich sicher (ebenso zwei weitere Informatikstudenten), daß eine Prozedur keinen Rückgabewert hat. Wie sollte denn deiner Meinung nach eine Prozedur mit mehreren Rückgabewerten aussehen? Da ich nur Java und etwas Pascal kann würde ich in Pascal klar nach FUNCTION und PROCEDURE unterscheiden. In Java gibt's da keine strikte Trennung aber in Methoden kann man den Rückgabewert 'void' benutzen, wenn man nichts zurückgeben will. Das wären dann Funktionen. Mehrere Rückgabewerte kann meines Erachtens auch Java nicht - nur mehrdimensionale Objekte (als einzelnen Rückgabewert).
(auch in der englischen Wikipedia wird angedeutet, daß dies der Unterschied ist - es gibt aber nur einen Artikel zu Funktionen)
schönen Gruß,
Jeronimo
Die Rückgabe z.B. in C erfolgt via der parameter der Prozedur (http://www.net-lexikon.de/Unterprogramm.html). Es gibt aber in einigen Spreachen auch die Möglichkeit als Rückgabewert komplexe Strukturen zu definieren mit dennen man dann eine Vielzahl von Werten zurückgeben kann, wobei man dies natürlich auch als Funktion mit Rückgabe eines einzelnen Wertes deuten kann.
Ich werde zu Hause nochmal in meinem zugegebenermassen etwas verstaubeten Buch über Programmiersprachen und Compierbau nachschlagen.
Viele Grüße
Hans --HPich 19:47, 3. Mai 2004 (CEST)
Wenn die Rückgabe über die Aufrufparameter erfolgt, ist dies (meiner Meinung nach) keine Rückgabe im eigentlichen Sinne, sondern lediglich eine Änderung von Werten. Das ist ja auch das, was Prozeduren machen sollen. Ob die Änderung jetzt den Bildschirminhalt oder den Wert einer Variable betrifft ist (wieder meiner Meinung nach) irrelevant.
Zu den komplexen Strukturen: Wenn ich mal nach der Mathematik gehe - ich nehme an, daher kommt eigentlich auch die Funktion der Informatik - gibt es dort auch Funktionen, die komplexe Strukturen als "Rückgabewert" haben. Aber auch wieder jeweils nur ein Ergebnis pro Funktion (Siehe Definition unter Funktion_(Mathematik)).
schönen Gruß, Jeronimo --Jeronimo 09:08, 4. Mai 2004 (CEST)
Überarbeiten
Ich hab mir erlaubt, den Artikel als ueberarbeitungswuerdig zu markieren. Zur Begruendung verweise ich auf Diskussion:Funktion (Programmierung). --FAR 08:39, 7. Dez 2005 (CET)
Ich habe einen Kommentar in Diskussion:Funktion_(Programmierung) geschrieben, zu diesem Thema --HartmutS 00:44, 12. Feb 2006 (CET)
Wie ist es jetzt?
Ich habe versucht die Definition bestmöglich im Sinne der genannten Diskussion zu überarbeiten. Was haltet Ihr davon?
Beim Abschnitt ueber Prozeduren in Pascal: Eine Prozedur gibt keinen nicht einen Wert zurueck, habe das geaendert. --Yodas 15:41, 28. Sep 2006 (CEST)
Keine Rückgabewerte: Jein!!
Dass eine Prozedur nichts zurückgeben kann, stimmt nur halb, wenn man in Delphi eine Prozedur folgendermaßen deklariert:
procedure xyz(n:integer;var rueckgabe:integer);
Die Prozedur gibt das natürlich nicht so zurück wie eine Funktion, aber der Variable ruckgabe wird in der Prozedur ein Wert zugewiesen, dieser wird wiederum der Variable zugewiesen, die man als Argument für die rueckgabe angibt. Und schon allein aus dem Grund, das Delphi das als .pas-Datei speichert, müsste das bei Pascal eigentlich genauso sein. Es handelt sich dabei also nicht um einen Rückgabewert, sondern eher um eine Variablenzuweisung. --Flo 1 12:35, 1. Jan. 2008 (CET)
Methoden und Prozeduren
Mich würde interessieren wo genau die Unterschiede von Methoden und Prozeduren in der objektorientierten Programmierung begründet sind. Des weiteren finde ich, das als Beispiel dafür z.B. die Sprache VB bzw. VB.NET verwendet werden sollte. (nicht signierter Beitrag von 77.23.190.222 (Diskussion) 21:07, 4. Februar 2009)
- da ist kein prinzipieller Unterschied, zumindest nicht von der Implementierungsseite her gesehen. In der objektorientierten Programmierung nennt man die Prozeduren nun mal Methoden, obwohl es das gleiche Konstrukt ist. Der Unterschied besteht nur darin, dass Prozeduren (in der prozeduralen Programmierung) völlig losgelöst von allem anderen existieren, während Methoden (in der objektorientierten Welt) immer an eine bestimmte Klasse gebunden sind. Das sieht man zum Teil auch an der Aufrufsyntax: Eine Prozedur, die ein Fenster f auf eine andere Größe einstellt, würde in der prozeduralen Programmierung vielleicht geschrieben werden als Resize(f,newX,newY), in einem objektorientierten Ansatz als f.Resize(newX,newY).
- Beispiele in VB oder VB.NET fände ich persönlich nicht so passend, da sollte man lieber 'echte' objektorientierte Programmiersprachen verwenden. --Herbert Klaeren 08:57, 5. Feb. 2009 (CET)
C-Beispiel
Ich hab das C-Beispiel ausgebessert, da die Deklaration von Variablen in ANSI C nur am beginn eines Blocks erlaubt ist. -- Schurli99 10:32, 10. Mai 2011 (CEST)