Nach diesem Kapitel sollten Sie
1. eine Prozedur deklarieren und aufrufen können,
2. die wesentlichen Vorteile von Prozeduren und Funktionen kennen,
3. die Unterschiede (in Syntax und Semantik) zwischen Prozeduren und Funktionen
nennen können,
4. die Realisierung einer Aufgabe als Funktion oder Prozedur begründen können,
5. das Parameterkonzept von ParaPascal beherrschen, die Wirkung der unterschiedlichen
Übergabearten (in, out und inout) beschreiben und problembezogen
einsetzen können,
6. die Umsetzung des allgemeineren Parameterkonzeptes von ParaPascal in das
Parameterkonzept von Standard-Pascal angeben können,
7. die Wirkung der Übergabearten von Standard-Pascal (Wertübergabe, Referenzübergabe)
kennen und problembezogen einsetzen können,
8. das Konzept der statischen und dynamischen Blockstruktur kennen sowie die
damit zusammenhängenden Begriffe (Schachtelung, Gültigkeitsbereich, globale
und lokale Variablen, Lebensdauer bzw. Existenz) verstanden haben,
9. die Begriffe Namenskonflikt und Seiteneffekt kennen, deren Auswirkungen
erläutern können und wissen, wie man sie vermeidet,
10. durch Einhaltung von Layoutregeln und geeignete Bezeichnerwahl Prozeduren
und Funktionen übersichtlich und verständlich formulieren können,
11. das Zeigerkonzept von Pascal verstanden haben,
12. grundlegende Operationen auf linearen Listen kennen und programmtechnisch
5.1 Prozeduren
5.1.1 Prozeduren und Parameterübergabe
Prozedur, Prozedurdeklaration:
Eine Prozedur (procedure) ist einer Funktion sehr ähnlich. Eine Prozedurdeklaration
unterscheidet sich von einer Funktionsdeklaration zunächst einmal durch das
Schlüsselwort procedure (an Stelle von function) und durch das Fehlen des
Ergebnistyps.
Prozeduraufruf: Angabe Prozedurname Liste Parameter
Parameterübergabe: Um unterscheiden Schlüsselwörter
Eingangsparameter: Schlüsselwort in. Lokale Konstante.
Formale und aktuelle Parameter können durch Funktion nicht
verändert werden. Formaler Parameter und aktueller Parameter können nicht
verändert werden.
out Parameter: Durch vorangestelltes Out charackterisiert. Lokale Variabel
deren Wert nicht abgefragt aver verändert werden kann.
Referenzparameters :sondern es wird der Verweis (Referenz) auf den aktuellen Parameter an den formalen Parameter übergeben. Technisch gesehen können wir uns einen Verweis vorstellen als die Adresse der Speicherzelle bzw. des Speicherbereichs, in dem der aktuelle Parameter abgelegt ist. Die Konsequenz ist, daß jede Änderung des formalen Parameters zu- gleich eine Änderung des aktuellen Parameters bedeutet, so daß nach Abarbeitung der Prozedur der letzte Wert des formalen Parameters zugleich der Wert des aktu- ellen Parameters ist. Wegen des Schlüsselwortes var sprechen wir auch von var-Parametern.
! Übersetzung Procedure Parapascal Standard Pascale Fig.>S.150
Gültigkeitsbereich und Lebensdauer fallen oft nicht zusammen. Dieinteger-Va- riable j aus Beispiel 5.2.2, die lokal zum Programm P deklariert ist, lebt während des gesamten Programmablaufs, ist aber in der Prozedur R nicht gültig, da hier eine lokale real-Variable mit demselben Bezeichner deklariert ist.