<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Prozedur_%28Programmierung%29</id>
	<title>Prozedur (Programmierung) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Prozedur_%28Programmierung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Prozedur_(Programmierung)&amp;action=history"/>
	<updated>2026-06-01T07:11:49Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Prozedur_(Programmierung)&amp;diff=105451&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Prozedur_(Programmierung)&amp;diff=105451&amp;oldid=prev"/>
		<updated>2025-06-14T22:49:15Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Prozedur&amp;#039;&amp;#039;&amp;#039; ist ein Begriff aus der [[Programmierung]] von [[Computer]]systemen. Im Allgemeinen versteht man darunter eine Variante zum Begriff „[[Unterprogramm]]“: Die [[Anweisung (Programmierung)|Anweisungen]] einer Prozedur können über ihre Benennung aufgerufen und dadurch [[Wiederverwendbarkeit|mehrfach verwendet]] werden.&lt;br /&gt;
&lt;br /&gt;
== Terminologie und Details unterschiedlich ==&lt;br /&gt;
Je nach [[Programmiersprache]] und [[Programmierparadigma]] gibt es Unterschiede in der Definition des Begriffs &amp;#039;&amp;#039;Prozedur&amp;#039;&amp;#039; und zur Abgrenzung zum Begriff der &amp;#039;&amp;#039;Funktion&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[Fortran|FORTRAN77]] beispielsweise fasst unter &amp;#039;&amp;#039;procedures&amp;#039;&amp;#039; Funktionen und prozedurale Unterprogramme (&amp;#039;&amp;#039;subroutines&amp;#039;&amp;#039;) zusammen.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://www.fortran.com/F77_std/rjcnf0001-sh-15.html#sh-15 |titel=FORTRAN77-Standard, Kap. 15 |hrsg=fortran.com |sprache=en |offline=1 |archiv-url=https://web.archive.org/web/20100124143401/http://www.fortran.com/F77_std/rjcnf0001-sh-15.html#sh-15 |archiv-datum=2010-01-24 |archiv-bot= |abruf=2010-09-20}}&amp;lt;/ref&amp;gt; In der [[Terminologie]] des C-Standards heißen Unterprogramme &amp;#039;Funktion&amp;#039;, unabhängig davon, ob das aufgerufene Unterprogramm einen Rückgabewert ermittelt oder ob der Rückgabewert verwendet wird.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf |titel=C99-Standard |hrsg=open-std.org |format=PDF; 3,8&amp;amp;nbsp;MB |sprache=en |abruf=2010-09-12 |kommentar=nicht-normatives Arbeitsdokument}}&amp;lt;/ref&amp;gt; In der [[Objektorientierte Programmierung|objektorientierten Programmierung]] werden beide Konzepte oft unter dem Sammelbegriff [[Methode (Programmierung)|Methode]] zusammengefasst.&lt;br /&gt;
&lt;br /&gt;
Nach anderer Definition kann eine Prozedur im Unterschied zu einer [[Funktion (Programmierung)|Funktion]], die genau einen [[Funktion (Mathematik)|Funktionswert]] als Rückgabewert liefert, ihre Ergebnisse nur indirekt zurückgeben, also über [[Globale Variable|globale Variablen]] oder über [[Referenzparameter]] im aufrufenden Programm.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://www.gdv.informatik.uni-frankfurt.de/lehre/ws2005/PRG1/Folien/V07-Prozeduren-Funktionen-Methoden.pdf |titel=Prozeduren-Funktionen-Methoden |hrsg=uni-frankfurt.de |format=PDF; 309&amp;amp;nbsp;kB |abruf=2015-12-01}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.uni-koeln.de/rrzk/kurse/unterlagen/java/javaref/funcs/index.htm |titel=Prozedurale Abstraktion, Funktionen |hrsg=uni-koeln.de |abruf=2010-09-20}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen kann eine Prozedur [[Parameter (Informatik)|Parameter]] besitzen und auch die Werte von [[Variable (Programmierung)|Variablen]] ändern, um dort Ergebnisse zu speichern. Man unterscheidet hier zwischen lokalen (nur innerhalb der Prozedur gültigen und von außen nicht direkt beeinflussbaren) und globalen (außerhalb der Prozedur deklarierten) Variablen. Das Ändern globaler Variablen innerhalb einer Prozedur kann die Übersichtlichkeit des Programms beeinträchtigen und die Fehlersuche erschweren.&lt;br /&gt;
&lt;br /&gt;
Ebenfalls sprachenabhängig können Prozeduren wie Funktionen in [[Programmbibliothek]]en zusammengestellt werden. Hierdurch besteht die Möglichkeit, eine Prozedur aus separaten Programmmodulen oder auch aus anderen [[Computerprogramm|Programmen]] heraus aufzurufen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Abweichende Bedeutungen:&amp;#039;&amp;#039; In [[COBOL]] sind Prozeduren lediglich die in der ‚Procedure Division‘ formulierten, durch ‚Paragraphen‘ benennbaren Anweisungen (Befehle), unabhängig davon, ob sie als [[Unterroutine]] verwendet werden oder nicht. Auch in [[PL/I]] bezeichnet man die im Befehlsteil des [[Quelltext]]es enthaltenen – prozedural (= ‚fortschreitend‘) zu verarbeitenden – Anweisungen als „Prozeduren“.&lt;br /&gt;
&lt;br /&gt;
In vielen Programmiersprachen ist der [[Rekursive Programmierung|rekursive Aufruf]] einer Prozedur durch sie selbst zulässig.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.studysmarter.de/schule/informatik/algorithmen-und-datenstrukturen/rekursion/ |titel=Rekursion: Definition, Formel und Funktion |sprache=de-DE |abruf=2025-06-01}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
&amp;lt;!-- Ob die Codebeispiele hier das Wesen einer &amp;#039;Prozedur&amp;#039; erläutern können??? --&amp;gt;&lt;br /&gt;
Die folgenden Beispiele definieren jeweils eine Prozedur zum Zeichnen einer Linie mit &amp;#039;&amp;#039;anzahl&amp;#039;&amp;#039; Punkten.&lt;br /&gt;
&lt;br /&gt;
=== Pascal ===&lt;br /&gt;
In der Programmiersprache [[Pascal (Programmiersprache)|Pascal]], die Prozeduren explizit als Sprachelement verwendet, gibt eine Prozedur im Gegensatz zu einer Funktion definitionsgemäß keinen Wert zurück:&lt;br /&gt;
&lt;br /&gt;
Beispiel einer Prozedur in [[Pascal (Programmiersprache)|Pascal]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure PunkteZeichnen(anzahl: Integer);&lt;br /&gt;
var&lt;br /&gt;
    i: Integer;&lt;br /&gt;
begin&lt;br /&gt;
    for i := 1 to anzahl do&lt;br /&gt;
        Write(&amp;#039;.&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel eines Prozeduraufrufs in Pascal:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
PunkteZeichnen(5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BASIC ===&lt;br /&gt;
Realisierung einer Prozedur in einer modernen [[BASIC]]-Variante (Subroutine ohne Rückgabewert):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbscript&amp;quot;&amp;gt;&lt;br /&gt;
public sub PunkteZeichnen(anzahl as Integer)&lt;br /&gt;
    for i as Integer = 1 to anzahl&lt;br /&gt;
        Debug.print(&amp;quot;.&amp;quot;)&lt;br /&gt;
    next i&lt;br /&gt;
end sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Beispiel eines Methodenaufrufes in Basic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;vbscript&amp;quot;&amp;gt;&lt;br /&gt;
call PunkteZeichnen(5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
Realisierung einer Prozedur in [[C (Programmiersprache)|C]]. Das Schlüsselwort &amp;lt;code&amp;gt;void&amp;lt;/code&amp;gt; legt fest, dass die Funktion keinen Rückgabewert liefert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
void punkte_zeichnen(int anzahl) {&lt;br /&gt;
    for (int i = 0; i &amp;lt; anzahl; ++i)&lt;br /&gt;
        putchar(&amp;#039;.&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Beispiel eines Funktionsaufrufs in C:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
punkte_zeichnen(5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
Realisierung einer Prozedur in [[Java (Programmiersprache)|Java]] (Methode ohne Rückgabewert):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Beispiel {&lt;br /&gt;
    public static void punkteZeichnen(int anzahl) {&lt;br /&gt;
        for (int i = 0; i &amp;lt; anzahl; ++i)&lt;br /&gt;
            System.out.print (&amp;quot;.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Beispiel eines Methodenaufrufs in Java:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  Beispiel.punkteZeichnen(5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Go ===&lt;br /&gt;
Realisierung einer Prozedur in Google [[Go (Programmiersprache)|Go]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
func punkteZeichnen(anzahl int) {&lt;br /&gt;
    for i:=0; i&amp;lt;anzahl; i++ {&lt;br /&gt;
        fmt.Print(&amp;quot;.&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Beispiel eines Methodenaufrufs in Go:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;go&amp;quot;&amp;gt;&lt;br /&gt;
  punkteZeichnen(5)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmierkonzept]]&lt;br /&gt;
[[Kategorie:Unterprogramm]]&lt;br /&gt;
[[Kategorie:Programmiersprachelement]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>