Lerntippsammlung Headergrafik
Linie
Abstandshalter

Suchbegriff:

Arbeiten mit Unterstrukturen - Referat



Unterprogramme

Funktionen und Prozeduren werden als Unterprogramme bezeichnet.

1. Funktionen

Syntax: Function Funktionsname[(Parameterliste)]:Typname;
[Vereinbarungen];
Begin
Anweisungsblock;
Funktionsname:=......;
End;
[ ] – diese Angaben können gemacht werden, sind aber nicht zwingend notwendig
- Funktionen ohne Parameterliste wurden jedoch nicht behandelt.

Erläuterungen:
Die Parameterliste enthält alle Eingabeparameter der Funktion und deren Typ.
Parameter gleichen Typs werden durch Komma getrennt, Parameter verschiedenen Typs durch Semikolon. Die Angabe des Typs erfolgt wie gewohnt nach dem Doppelpunkt.
Der Typname legt fest, von welchem Typ das Ergebnis der Funktion ist.

Beispiele: Function Summe(Summand_1, Summand_2 : real):real;

Diese Funktion hat den Namen Summe.
Sie enthält zwei Eingabeparameter vom Typ real.
Das Ergebnis der Funktion ist ebenfalls vom Typ real.

Function Potenz(Basis : real; Exponent : integer):real;
Dies Funktion hat den Namen Potenz.
Sie enthält zwei Eingabeparameter, einen vom Typ real und einen vom Typ integer.
Das Ergebnis der Funktion ist vom Typ real.

Im Vereinbarungsteil der Funktion können zusätzlich Variablen und Konstanten vereinbart werden.
Im Anweisungsblock wird vereinbart, welche Anweisungen durch die Funktion ausgeführt werden. Hier ist es wichtig, dem Funktionsnamen einen Wert als Ergebnis zuzuweisen.

Beispiele: Function Summe(Summand_1,Summand_2:real):real;
Begin
Summe:=Summand_1+Summand_2; {Wertzuweisung}
End;

Function Potenz(Basis:Real;Exponent:integer):real;
VAR i : integer; {Festlegung von Variablen }
hilf : real;
Begin
hilf:=1;
For i:=1 To Exponent Do
hilf:=hilf*Basis;
Potenz:=hilf; {Wertzuweisung}
End;

Funktionen werden im laufenden Programm durch ihren Funktionsnamen aufgerufen.
Da wir nur Funktionen mit Parameterliste behandelt haben, muss beim Funktionsaufruf dem Funktionsnamen die Parameterliste folgen. Die Funktion gibt stets einen Wert als Funktionsergebnis an das Programm zurück. Dieses Ergebnis muss beim Aufruf der Funktion stets einer Variablen zugewiesen bzw. direkt zur Ausgabe gebracht werden.

Wir unterscheiden in diesem Zusammenhang die Begriffe formale Parameter und aktuelle Parameter voneinander.

Formale Parameter :Dies sind die Parameter, die in der Kopfzeile der Deklaration der Funktion angegeben sind.

Aktuelle Parameter: Die sind die Parameter, die im Aufruf der Funktion stehen. Die Namen der formalen und aktuellen Parameter können unabhängig voneinander gewählt werden. Wichtig ist, dass die Parameter im Typ übereinstimmen. Dabei ist zu beachten, dass die Parameter entsprechend ihrer Reihenfolge einander zugeordnet werden.

Beispiele:
WriteLn(... Summe(Zahl_1,Zahl_2)...) oder
Sum:=Summe(Zahl_1,Zahl_2)

hier wird die Funktion Summe aufgerufen,
Zahl_1 wird der Variablen Summand_1 und Zahl_2 der Variablen Summand_2 zugeordnet.

... Potenz(Zahl_2,Zahl_3) ...

hier erfolgt der Aufruf der Funktion Potenz,
Zahl_2 wird der Variablen Basis und Zahl_3 der Variablen Exponent zugeordnet.


Die in der Funktion Potenz zusätzlich vereinbarten Variablen
i und hilf sind sogenannte
lokale Variablen. Im Unterschied dazu sind die im Deklarationsteil eines Programms vereinbarten Variablen sogenannte globale Variablen.


Lokale Variablen :werden innerhalb eines Unterprogramms deklariert. Sie gelten nur im Unterprogramm. Da man hier außer Variablen auch Konstanten und wiederum Unterprogramme deklarieren kann spricht man auch von einer lokalen Deklaration.
Parameter sind automatisch als lokale Variablen deklariert.
Lokale Variablen überdecken globale Variablen.

Globale Variablen: werden im Hauptprogramm, zu Beginn des Programmblocks deklariert. Sie gelten im gesamten Programm. Auch hier kann man, wie bekannt, Konstanten und Unterprogramme deklarieren. Man spricht von einer globalen Deklaration.

Bei der Deklaration von Funktionen gibt es bei der Festlegung der formalen Parameterliste zwei grundsätzlich voneinander verschiedene Möglichkeiten.
Wird die formale Parameterliste wie in den vorangegangenen Beispielen deklariert, so handelt es sich hier um die Deklaration von Wertparametern. Wird die formale Parameterliste mit VAR eingeleitet handelt es sich um Variablenparameter.
Wertparameter: Beim Aufruf der Funktion werden die Werte der aktuellen Parameter der Funktion übergeben. Innerhalb der Funktion wird nun mit diesen Werten gerechnet. Nach Ausführung der Funktion werden die Werte wieder an das Hauptprogramm zurückgegeben. Die Werte die an das Hauptprogramm zurückgegeben werden sind gleich den Werten, die bei Aufruf der Funktion an die Funktion übergeben wurden.
Es werden lokal neue Speicherplätze reserviert und die Werte der aktuellen Parameter dort eingetragen.

Variablenparameter: Beim Aufruf der Funktion werden die aktuellen Parameter der Funktion übergeben. Innerhalb der Funktion wird nun mit diesen aktuellen Parametern gearbeitet. Dabei ändert sich deren Wert. Nach Ausführung der Funktion werden diese aktuellen Parameter an das Hauptprogramm zurückgegeben. Dabei hat sich der Inhalt dieser Parameter unter Umständen geändert.
Es werden Lokal keine neuen Speicherplätze benötigt!

2. Prozeduren

Syntax: Procedure Prozedurname[(formale Parameterliste)];
[Vereinbarungen];
BEGIN
Anweisungen;
END;

Im Gegensatz zu Funktionen geben Prozeduren keinen Wert als Ergebnis aus.
Hier ist es möglich eine Reihe von Anweisungen, die wiederholt ausgeführt werden sollen zu Vereinbaren. Diese Anweisungen werden unter dem Prozedurnamen zusammengefasst. Bei Aufruf durch den Prozedurnamen werden diese Anweisungen nacheinander ausgeführt. Eine Zuweisung eines Ergebniswertes ist nicht notwendig.

Die Aussagen über Parameter und Variablen treffen für Prozeduren genau so zu wie für Funktionen.

Beispiele: Procedure Programmerklärung; {keine Parameterliste}
Begin
WriteLn(´ Dieses ist eine einfache Prozedure.`);
WriteLn(´ Sie dient nur dazu Text auf den Bildschirm zu schreiben! ´);
End;

Wird diese Prozedur aufgerufen, so werden diese beiden Zeilen auf den Bildschirm geschrieben.

Dieses Referat wurde eingesandt vom User: April



Kommentare zum Referat Arbeiten mit Unterstrukturen: