Wir interpretieren den Aufruf einer Prozedur als Erteilung eines Auftrages. Die für die Erfüllung eines Auftrages benötigten Daten werden bei der Auftragserteilung über Parameter weitergegeben. Gehört zur Erfüllung eines Auftrages die Berechnung neuer Daten, werden auch diese Daten über Parameter ausgetauscht.
Bei der Festlegung, wie ein Auftrag erfüllt wird (Prozedurdeklaration), werden die Parameter hinter dem Prozedurnamen in einer Parameterliste aufgezählt; die hier auftretenden Namen heißen formale Parameter. Sie übernehmen die bei der Auftragserteilung (Aufruf der Prozedur) übergebenen sog. aktuellen Parameter.
Die Zuordnung zwischen formalen und aktuellen Parametern ist durch ihre Reihenfolge in den Parameterlisten bestimmt. Die aktuellen Parameter müssen hinsichtlich Anzahl, Reihenfolge und Typ mit den formalen Parametern in der Prozedurdeklaration übereinstimmen. Zwei formale Parameter verschiedenen Typs werden in der Parameterliste durch ein Semikolon getrennt, aktuelle Parameter dagegen durch ein Komma.
Formale Parameter sind - wie lokale Variablen - nur innerhalb der zugehörigen Prozedur bekannt. Sie können beliebig umbenannt werden, ohne die Wirkung der Prozedur zu ändern. Beispielsweise haben die Prozeduren
PROCEDURE vertausche (VAR x,y: integer); VAR merke:integer; BEGIN merke :=x; x :=y; y:=merke END |
PROCEDURE vertausche (VAR a, b: integer) VAR c : integer; BEGIN c := a; a := b; b := c END |
gleiche Wirkung.
Deklaration der Prozedur berechneggt Hier wird festgelegt,wie die Prozedur den ihr erteilten Auftrag ausführt. Die Liste der formalen Parameter lautet: (var ggtwert:Integer; alok,blok :Integer) |
procedure TForm1.berechneggt (var ggtwert:Integer; alok,blok :Integer); var rest :Integer; begin while blok <> 0 do begin rest := alok mod blok; alok := blok; blok := rest end; ggtwert := alok end; |
|||||||||
Das Folgende ist übrigens auch eine Prozedurdeklaration. In ihr wird festgelegt, wie das Formular reagiert, wenn das Ereignis "Klicken auf den Button Btggt" eintritt. |
... | |||||||||
lokale Datenobjekte dieser Prozedur -> Die aktuellen Parameter a und b besitzen hiernach konkrete Werte Erteilung eines Auftrages durch Aufruf der Prozedur berechneggt Ausgabe des Prozedurergebnisses Kontrollausgabe Kontrollausgabe |
procedure TForm1.BtggTClick(Sender: TObject); var a,b,ergebnis:Integer; begin a := StrToInt (EdA.text); b := StrToInt (EdB.text); berechneggt(ergebnis, a, b); Edggt.text := IntToStr(ergebnis); EdA.text := IntToStr(a); EdB.text := IntToStr(b); end; |
|||||||||
|
![]() |
|
![]() |
|
![]() |
Zur
nächsten Seite
![]() |
© 2000 LK 12 If und G. Kubitz | Hannah-Arendt-Gymnasium, Lengerich |