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