Diskussion:Prozedur (Programmierung)

message: 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)
thread_title:  zu den Rückgabewerten: 

message: 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)
thread_title:  Überarbeiten 

message: 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)
thread_title:  Wie ist es jetzt? 

message: 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)
thread_title:  Keine Rückgabewerte: Jein!! 

message: 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.
: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)
thread_title:  Methoden und Prozeduren 

message: 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)
replies: text: Siehe ISO/IEC 9899-1999, Punkte 6.8.5 und 6.8.5.3. --Daniel5Ko 11:13, 10. Mai 2011 (CEST)
replies: text:  da hast du allerdings recht, hatte auf C99 vergessen und nur C90 im Kopf -- Schurli99 19:13, 11. Mai 2011 (CEST)
replies: text:  Und das bei dem Benutzernamen! Schäm dich! :D --Daniel5Ko 00:04, 13. Mai 2011 (CEST)
thread_title:  C-Beispiel