Viele Programmiersprachen gestatten das Ausgliedern von Teilproblemen in Unterprogramme. Diese Unterprogramme werden in der Programmiersprache Object - Pascal als Prozeduren bezeichnet. Der Einsatz der Unterprogrammtechnik scheint ist aus dreierlei Gründen sinnvoll:
- Die Benutzung von Unterprogrammen erhöht die Lesbarkeit und Übersichtlichkeit von umfangreichen Programmen.
- Unterprogramme eignen sich sehr gut für die Umsetzung des sogenannten Top - Down - Verfahrens. Dabei erfolgt die Problemlösung nach der Methode der algorithmischen Verfeinerung.
- Unterprogramme erleichtern die Teamarbeit, die bei allen größeren Software - Projekten Anwendung findet.
Die Prozeduren sind dementsprechend selbstständige Unterprogramme, die im Deklarationsteil des Hauptprogramms verfasst werden. Ihr Aufruf geschieht einfach durch Namensnennung (Unterschied zu Funktionen!).
Erarbeiten Sie sich anhand der folgenden Aufgabenstellungen einige grundlegende Begriffe, die für das Arbeiten mit Prozeduren von großer Bedeutung sind! Nutzen Sie dazu als Hilfestellung den Pascal-Kurs von Michael Frost.
- Welche Typen von Prozeduren unterscheidet man?
- Was sind globale und lokale Variable?
- Bei der Übergabe von Parametern an Prozeduren unterscheidet man Wert - Parameter (call by value) und Variablenparameter (call by reference). Worin liegt der Unterschied zwischen beiden begründet? Wann sind welche Parameter zu verwenden?
Ein Beispiel
Wir wollen uns zunächst an einem Beispiel den Unterschied zwischen Wert - und Referenzparametern verdeutlichen. Es sollen im Hauptprogramm zwei Zahlen eingelesen werden, die dann an eine Prozedur parametertest übergeben werden. Innerhalb der Prozedur soll zu beiden Variablen jeweils der Wert 1 addiert werden. Eine der Variablen soll als Wertparameter, die zweite als Referenzparameter übergeben werden. Wir wollen schauen, wie sich das nach der Rückgabe der Variablen an das Hauptprogramm auf die anschließende Ausgabe der Ergebnisse auswirkt.
Die aus Zeitgründen bereits von mir vorgefertigte Oberfläche finden Sie hier.
Musterlösung: Parametertest.zip
Übung 5
Schreiben Sie eine Prozedur, die zwei an sie übergebene Zahlen vertauscht. Betten Sie anschließend diese Prozedur in ein kleines Programm ein.
Musterlösung: uebung05.zip
Übung 6
An eine Prozedur soll eine Zahl übergeben werden. Die Prozedur soll die Wurzel und das Quadrat der übergebenen Zahl zurückgeben. Schreiben Sie eine solche Prozedur!
Musterlösung: uebung06.zip
Übung 7
Schreiben Sie ein Programm, das in einer eigenständigen Prozedur den Flächeninhalt eines Dreiecks sowie seinen Umfang berechnet. Das Programm soll außerdem testen, ob die drei eingegebenen Zahlen tatsächlich die Seiten eines Dreiecks bilden können. Berechnen Sie den Flächeninhalt des Dreiecks mit Hilfe der Heron'schen Formel:
Musterlösung: uebung07.zip
Die weiteren Übungsaufgaben in den Übungen 8 und 9 weisen einen erhöhten Schwierigkeitsgrad auf.
Übung 8
Beim Knobeln entscheidet sich der Spieler entweder für "Stein", "Schere" oder "Papier". Es gelten folgende Spielregeln: Schere schlägt Papier ("schneidet"), Papier schlägt Stein ("wickelt ein") und Stein schlägt Schere ("schleift"). Es ist ein Programm zu schreiben, um mit dem Computer Knobeln zu spielen. Dabei soll eine Prozedur zufällig für den Computer Stein, Schere oder Papier erzeugen, eine weitere Prozedur den Gewinnentscheid vornehmen.
Musterlösung: uebung08.zip
Übung 9
Zwei Zahlen (z und n), die den Bruch z/n darstellen, sollen gekürzt werden. Dazu muß der größte gemeinsame Teiler gefunden werden (ggT). Für die Ermittlung des ggT soll die schon programmierte Funktion euklid in das Programm eingebunden werden. Das Programm soll außerdem eine Prozedur benutzen, welche die Aufgabe des Kürzens übernimmt.
Musterlösung: uebung09.zip
Eine Seite von Mirko Hans