Programmierung in TURBO-PASCAL 7.0
Document Sample


Unterprogramme
Prozeduren und Funktionen
1
Unterprogrammtechnik
Es kommt sehr häufig vor, das einzelne Anweisungen mehrfach
innerhalb eines Programms vorkommen.
Um die Übersichtlichkeit zu erhöhen, den Programmieraufwand zu
verringern, die Laufgeschwindigkeit zu erhöhen und die
„Teamprogrammierung“ zu ermöglichen existieren in Pascal zwei
Möglichkeiten der Gestaltung von „Unterprogrammen“. Dies sind
Prozeduren und Funktionen.
Wichtig bei der Arbeit mit Prozeduren und Funktionen ist es, die
Variablenbelegung und –verwendung genau zu beachten.
Es existieren vordefinierte Prozeduren (Standardprozeduren) wie
clrscr, writeln, readln usw.
2
Prozeduren
Eine Prozedur besteht aus einem Prozedurkopf und einem
Prozedurblock.
Der Prozedurkopf besteht aus dem reservierten Wort procedure und
einem Bezeichner. Z. B. procedure eingabe;
Der Prozedurblock besteht aus
Deklarationsteil (analog zum Hauptprogramm, meist
Variablendeklaration)
Anweisungsteil (mit begin und end;)
Die Prozedure wird immer nach der Variablenvereinbarung und vor
Beginn des Hauptprogramms geschrieben.
3
Prozeduren Syntax
4
Prozeduren
Als Beispielprozedur soll in einem Programm der Bildschirm beim
Löschen mit einer Farbe überschrieben werden. Es sollen die
Löschprozeduren clrgreen und clrred geschrieben werden.
5
Übung Prozeduren
In einem Pascal-Programm sollen zwei einzugebende Zahlen zuerst
getauscht werden, dann wird die eine Variable verdoppelt und die andere
verdreifacht und am Ende werden die Variablen wieder getauscht und
ausgegeben.
Entwerfen Sie ein Programmablaufplan für diese Aufgabe.
Welche Anweisungen können in einer Prozedur zusammengefasst werden?
Schreiben Sie ein entsprechendes Pascal-Programm.
Zusatz: Verwenden Sie auch für die Verdopplung/Verdreifachung eine
Prozedur.
6
Prozeduren und
Parametern
Verwendet die Prozedur Variablen (Parameter) ist eine sorgfältige
Programmierung notwendig.
Es gibt zwei Arten von Variablen (lokale und globale Variablen).
Globale Variablen gelten im übergeordneten Block (meist das
Hauptprogramm) auch.
Lokale Variablen gelten nur
innerhalb der Prozedur.
7
Prozeduren mit
Parametern
Schreiben Sie eine Pascal Programm welches zwei Variablenwerte
vom Nutzer eingeben lässt, diese Variablen tauscht und dann
wieder ausgibt.
Der Tauschvorgang soll in einer Prozedur durchgeführt werden. Die
notwendige Hilfsvariable soll nur lokal in der Prozedur definiert
werden.
Bildschirmbeispiel:
8
Parameterübergabe
Die Verwendung von globalen Variablen scheint zwar sehr einfach
und unkompliziert, wird aber in der modernen Programmiertechnik
häufig nicht verwendet, da so das modulare Arbeiten erschwert
wird.
Werden hauptsächlich lokale Variablen verwendet, können diese
auch in weiteren Prozeduren (oder von anderen Programmieren)
verwendet werden, ohne das sich deren Wert ändert.
Sollen Parameter von Hauptprogramm auf Variablen des
Unterprogramms übertragen werden, unterscheidet man zwei
Arten:
Wertparameter
Variablenparameter
9
Wertparameter
Wertparamter werden im Prozedurekopf deklariert, indem Name
und Typ angegeben werden.
Bsp.: procedure wertpar (a,b : real; i,j : integer);
Wertparameter dienen der Übertragung von Daten ausschlieslich
von außen nach innen. Beim Aufruf der Prozedure werden die
Varibalen entsprechend belegt.
Eine Rückgabe der Werte aus der Prozedur in den aufrufenden
Block ist nicht möglich.
10
Wertparameter
11
Variablenparamter
Mittels Variablenparamter ist eine Übergabe eines Variablenwertes
aus dem Unterprogramm in das Hauptprogramm möglich.
Syntax: procedure varpar (var i : integer);
Die im Prozedurekopf deklarierte Variable hat innerhalb der
Prozedure lokale Eigenschaften, gibt aber ihren Wert an das
aufrufende Programm zurück.
12
Anwendung
Variablenparamter
Schreiben Sie ein Programm, welches den Binomialkoeffizienten
berechnet. n n!
=
k k!(n − k )!
Verwenden Sie zur Berechnung der Fakultät eine prozedure fak mit
einem Variablenparameter zur Übergabe.
13
Lösen quadratischer
Gleichungen
Schreiben Sie ein Programm, welches als Prozedur eine „Löser“ für
quadratische Gleichungen enthält. Sämtliche Berechnungen und
Fallunterscheidungen sollen innerhalb der Prozedur ablaufen.
Die Prozedur erhält vom aufrufenden Hauptprogramm die
Parameter a, b und c als Eingabe (Koeffizienten der zugehörigen
quadratischen Gleichung) und soll als Ausgabe die Lösungen x1 und
x2 sowie eine Variable d enthalten, welche angibt ob es eine (d=1),
zwei (d=2) oder keine (d=0) reellen Lösungen gibt.
Gestalten Sie das zugehörige Hauptprogramm mit Ein- und Ausgabe
optisch ansprechend.
Die Prozedur muss die Diskriminante auswerten und das
Hauptprogramm entsprechend der Variable d die Lösung
kommentieren.
14
Unterprogrammtechnik
mittels Funktionen
Eine weitere Möglichkeit Unterprogramme (und so genannte
Routinen) zu erstellen sind FUNKTIONEN.
Im Gegensatz zu Prozeduren sollten Funktionen immer dann
eingesetzt werden, wenn (wie im mathematischen Sinne) eine
Anzahl von Eingabevariablen so verarbeitet wird, dass eine Ausgabe
zu erwarten ist.
Die Funktionen in Pascal sind auch als so genannte mehrstellige
Funktionen deklarierbar. (Nicht nur x y sondern auch a,b,c y
bzw. f(a,b)=y).
15
Funktionen
Die Deklaration eine Funktion erfolg analog zu der einer Prozedur,
mit dem Unterschied, dass hinter der Variablenliste noch der TYP
der Funktion deklariert werden muss. (Der Typ der Funktion
entspricht dem Variablentyp des zu erwartenden Funktionswertes.)
Bsp.:
16
Funktionen
Schreiben Sie ein Programm, welches zu einem eingegebenen Winkel im
Gradmaß (0°<= winkel <360°) den Sinus, Kosinus, Tangens, Kotangens
berechnet und in Tabellenform (horizontal ausgibt.)
Beachten Sie dabei, dass nur die Standardfunktionen Sin und Cos in Pascal
zur Verfügung gestellt werden und Sie die Funktionen Tan und Cot noch
erstellen müssen.
Beachten Sie weiterhin, dass die Pascal Funktionen Sin und Cos das
Argument (Winkel) im Bogenmaß erwarten und Sie somit noch die Funktion
conv schreiben müssen, die das Grad- in das Bogenmaß konvertiert.
Benutzen Sie dazu die Beziehung: Bog/Pi = Grad/180.
17
Trigonometrie Bsp.
Gestalten Sie die Ausgabe entsprechend dieses Beispiels.
18
Anwendung Funktionen
und Prozeduren
Schreiben Sie ein Pascal-Programm zur Berechnung an Kreisen.
Es ist der Radius einzugeben und der Umfang und Flächeninhalt
auszugeben. Weiterhin, soll der Nutzer auf Wunsch, den
Flächeninhalt eines Kreissektors ermitteln können.
Schreiben Sie eine PROZEDUR, die die Bildschirmansicht steuert.
Schreiben Sie eine FUNKTION, die den Flächeninhalt von
Kreissektoren berechnet. Die Funktion soll als Eingabe den Radius
und den Sektorenwinkel erhalten.
19
Anwendung Funktionen
Schreiben Sie ein Programm, welches das Würfeln mit zwei Würfeln
simuliert.
Die Augenzahlen sind einzeln auszugeben.
Das Würfeln soll so lange fortgesetzt werden, wie der Nutzer es wünscht.
Die Anzahl der erzielten Augenzahlen der einzelnen Würfel sind in einer
Tabelle kumulativ anzuzeigen.
Die Standardfunktion random(6) liefert eine natürlichzahlige Zufallszahl.
0<= Zahl <6 (D. h. eine zusätzliche Addition von 1 ist notwendig.)
20
Related docs
Get documents about "