Parameter Prozeduren Funktionen Unterprogramme: Prozeduren und Funktionen

Schnellstart – Das Wichtigste - Unterprogramme: Prozeduren und Funktionen www.delphi-treff.de 33

3.5. Unterprogramme: Prozeduren und Funktionen

Und noch ein grundlegender Bestandteil der Programmierung: Prozeduren und Funktionen. Code sollte in kleine Einheiten unterteilt werden, die einen sprechenden Namen haben, der besagt, was der enthaltene Code tut. Diese kleinen Einheiten werden Prozeduren und Funktionen genannt, wobei sich diese nur darin unterscheiden, ob sie nach ihrer Abarbeitung einen Ergebniswert zurückliefern Funktionen oder nicht Prozeduren.

3.5.1. Parameter

Sowohl Funktionen als auch Prozeduren kann man beim Aufruf Parameter mitgeben, mit denen dann gearbeitet wird. Im Kopf der Prozedur wird in Klammern angegeben, welche Parameter beim Aufruf übergeben werden müssen. Beispiel: procedure PrintNamename: String; Das ist der Kopf die Signatur einer Prozedur. Sie erwartet beim Aufruf einen String-Wert. Innerhalb der Prozedur kann dieser String- We t u te de Va ia le a e „ a e e e det e de . “o ald die P ozedu zu Ende ist, i st die Va ia le „ a e i ht eh eka t. De We t a de Auf uf-Stelle ändert sich nicht. Beispiel eines Aufrufs: PrintName‘Agi‘; Erwartet eine Prozedur oder Funktion mehrere Parameter, werden sie im Kopf der Prozedur durch Semikolon getrennt angegeben. Beim Aufruf müssen die Werte in exakt der gleichen Reihenfolge angegeben werden. Die Typen müssen übereinstimmen. Beispiel mit zwei Parametern: procedure PrintNamename: String; alter: Integer; Aufruf: PrintName‘Agi‘, 128;

3.5.2. Prozeduren

Beispiel: Die Schleife aus vorigem Beispiel soll in eine Prozedur verschoben werden, der die Anzahl der Schleifendurchläufe mitgegeben werden kann: Schnellstart – Das Wichtigste - Unterprogramme: Prozeduren und Funktionen www.delphi-treff.de 34 program Project1; {APPTYPE CONSOLE} {R .res} uses System.SysUtils; procedure PrintHelloWorldcount: Integer; var i: Integer; begin for i := 1 to count do Writeln Hallo Welt ; end; begin Aufruf: PrintHelloWorld42; end. In diesem Zusammenhang noch eine wichtige Ergänzung zum Thema Variablen: Bis zu diesem Kapitel haben wir Variablen auf oberster Ebene in unserem Programm definiert, direkt nach der Uses-Klausel. Damit waren sie ü e all i u se e A e du g e ei h a . Ma e t sie „globale Variablen . Das Gege stü k sehe i i o ige Beispiel: Die P ozedu „P i tHelloWo ld hat ih e eige e a -A s h itt o de „ egi de Prozedur. Alles, was hier definiert wird, ist nur innerhalb dieser Prozedur bekannt. Deshalb nennt man diese Va ia le „lokale Variablen .

3.5.3. Funktionen

Funktionen werden genauso verwendet wie Prozeduren mit zwei Unterschieden: Sie werden mit dem “ hlüssel o t „fu tio ego e statt „p o edu e u d ha e ei e ‘ü kga e e t, desse T p i de e ste eile de Fu ktio a sp i ht o de „“ig atu steht: function GetNamename: String: String; begin result := ‘Ich heiße ‘ + name; end; Aufruf: WriteLnGetName ‘Agi‘ ; Ausgabe: Ich heiße Agi Die Funktion GetName erwartet also einen Namen als Aufrufparameter und liefert ihn auch wieder zurück, fügt dabei aber noch einen Text vorne an. result ist eine spezielle Variable, die automatisch in Funktionen zur Verfügung steht. Ihr wird der Rückgabewert der Funktion zugewiesen. Schnellstart – Das Wichtigste - Benutzereingaben