Was sind Unterprogramme und wie funktionieren sie?

Abbildung zum Unterprogramm - (Computer, Studium, Informatik)

3 Antworten

Am besten versteht man Unterprogramme, indem man ein paar schreibt.

Unterprogramme dienen dazu, dass man das Rad nicht mehrfach neu erfinden muss. Ein Verfahren wird an einer Stelle programmiert, und an mehreren Stellen verwendet.

Letztlich hast du schon bei den ersten Programmierübungen Unterprogramme verwendet - jede Ein- und Ausgabe besteht aus Dutzenden von Einzeloperationen, um die man sich glücklicherweise nicht jedesmal einzeln kümmern muss.

Dein Programm sagt z. B. dem Ausgabe-Unterprogramm, "Hallo, ich hab hier was, das auf den Bildschirm geschrieben werden soll, kümmer dich mal drum", und das Unterprogramm sagt, "Ok, sag mir noch, was da stehen soll, dann erledige ich das".

Die Unterscheidung in "offene" und "geschlossene" Unterprogramme scheint mir nach der Grafik zu sein, dass "geschlossene" Unterprogramme an genau zwei Stellen mit der übrigen Welt kommunizieren - wenn sie aufgerufen werden und wenn sie sich beenden ("zurückkehren"). Ein Makro kann dagegen auch noch Benutzereingaben anfordern oder nebenbei Ausgaben machen. (Wobei diese Unterscheidung m. E. völlig künstlich ist - man kann auch Funktionen so gestalten, dass sie den Benutzer fragen, im Internet nachschauen etc. und Makros so gestalten, dass sie einfach eine Aneinanderreihung von ein paar einfacheren Befehlen sind - das ist übrigens die ursprüngliche Bedeutung von "Makro" / "Makrobefehl".)

Andere Begriffe für Unterprogramm sind Routine, Methode und vermutlich noch weitere, die mir jetzt aber nicht einfallen. Letztlich bedeuten diese Begriffe alle dasselbe, werden jedoch bevorzugt in bestimmten Kontexten verwendet. (Wie in der Grafik gesagt, Funktionen nennt man Unterprogramme mit genau einem Rückgabewert, Prozeduren ohne direkten Rückgabewert; Makro für Hilfsprogramme von Anwendungen wie Tabellenkalkulationen, Routine ist vermutlich inzwischen veraltet und Methode nennt man Unterprogramme, die einem "Objekt" zugeordnet sind.)

Hallo!

Ich bin Softwareentwickler und sag zu deiner pdf-Darstellung, man kann wirklich die einfachsten Sachen unnötig verkomplizieren.

Wie der Name sagt, ist das Unterprogramm in der Hierachie unter dem Hauptprogramm, wird also vom Hauptprogramm aufgerufen. Funktionen, Methoden kannst du alles als Unterprogramme bezeichenen sogar Klassen selbst.

Üblicherweise wird das Startprogramm (z.B der erste "vernünftige" Bildschirm, bei einem Windowsprogramm) als Hauptprogrmm bezeichnet. Der Teil des Programmes, der alles steuert, der das Hauptmenü enthälte (z.B. schau dei Excel an, oder irgendein mp3-Wiedergabeprogramm).

Unterprogramme können sich natürlich auch gegenseitig aufrufen -- die Unterscheidung zwischen geschlossenen und offenen Unterprogrammen habe ich noch nie gehört, aber es könnte sein, das er damit Programme meint, die Rückgabewerte an den aufrufenden Programmteil liefern und geschlossen liefern eben keine, sondern liefern ihre Daten, falls nötig z.B. in eine Datenbank.

Wobei du oder er Funktionen zu geschlossenen U-Programmen gesetzt hat, wenn es so ist, wie ich es verstehe müssen Funktionen offen sein, da sie (im Normalfall) Rückgabe werte liefern.

Wieso Makro bei offenen U-Ps steht -- keine Ahnung, Hirngespinst -- das stimmt ganz bestimmt nicht.

Makros kannst du dir (weit hergeholt) wie Plugins vorstellen, die bestimmt Funktionen eines Hauptprogrammes erweitern (z.B. in Excel werden Makros geschrieben) aber diese können genauso wie "normale" Unterprogramme Rückgabewerte leifern oder nicht ...

Also, völlig aus der Luft gegriffen ...

Gruß


Irgendwer1501 
Beitragsersteller
 28.11.2015, 19:49

Vielen vielen lieben Dank! :) 

Ich werde mir das später nochmal durchlesen. aber schon nach flüchtiger Lektüre habe ich mehr verstanden als in 90 Minuten Vorlesung.

0
DarkPhantom  28.11.2015, 21:08

Genau was ich meinte! =p

Naja... vielleicht auch nicht ganz, das mit den makros hätte ich nicht sagen können :D

0

Kannst du in etwa wiedergeben was der gesagt hat? =)
(Habe nicht Informatik studiert, vielleicht kann ich dir trotzdem helfen ;) )

Ich meine der Begriff "Unterprogramm" ist ja weit fassbar und könnte so erstmal nur eine eigenständige Funktion meinen, die nicht in den Restkontext verstrickt ist, wie eine Verschlüsselungsfunktion eines Chatprogramms ;)


Irgendwer1501 
Beitragsersteller
 28.11.2015, 18:58

also, das was ich noch weiß bezog sich auf eine Prozedur. Er meinte, dass man sie aufruft um Funktionen zu definieren oder so... Leider wars das schon und ich weiß nicht einmal ob ich das richtig verstanden habe :/ 

0
DarkPhantom  28.11.2015, 19:26
@Irgendwer1501

Das ist relativ kryptisch und würde für mich höchstens mit Lambda-Funktionen Sinn ergeben :o

0