Die Unterprogrammtechnik - lehrer
Die Unterprogrammtechnik - lehrer
Die Unterprogrammtechnik - lehrer
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Der Aufbau von Prozeduren:<br />
Der Aufbau einer Prozedur entspricht größtenteils dem eines Turbo Pascal Programms. Einem<br />
Unterprogrammkopf (mit dem Prozedurnamen) folgt ein Anweisungsteil (zwischen den beiden<br />
Schlüsselwörtern BEGIN und END).<br />
procedure Prozedurname; Statt PROGRAM steht PROCEDURE !!<br />
begin<br />
Anweisung 1;<br />
Anweisung 2;<br />
...<br />
Anweisung n;<br />
end; Kein PUNKT sondern STRICHPUNKT !!<br />
In einem Turbo Pascal Programm folgt nach dem Programmkopf der Vereinbarungsteil und erst<br />
dann der Anweisungsteil. Auch bei Unterprogrammen kann dem Unterprogrammkopf ein Vereinbarungsteil<br />
folgen. Alle Variablen, die im Vereinbarungsteil des Unterprogramms stehen, sind<br />
allerdings nur für das Unterprogramm verwendbar. In Zusammenhang mit Unterprogrammen<br />
müssen deshalb verschiedene Arten von Variablen und Konstanten unterschieden werden.<br />
Lokale und globale Variable (Konstante, Datentypen):<br />
globale Variable (Konstanten):<br />
Unter globalen Variablen (global = gesamt) werden Variablen verstanden, die dem gesamten<br />
Programm (also dem Hauptprogramm und allen Unterprogrammen) bekannt<br />
sind. Sie werden im Vereinbarungsteil des Hauptprogramms wie üblich vereinbart. Jedes<br />
Turbo Pascal Programm besitzt einen globalen Datenraum, in dem alle globalen Variablen<br />
abgelegt sind. Im vorigen Beispiel sind a, b und summe globale Variablen. Sie<br />
sind allen Unterprogrammen und dem Hauptprogramm bekannt.<br />
lokale Variable (Konstanten):<br />
Lokale Variablen (lokal = örtlich) hingegen sind Variablen, die nur jenem Unterprogramm<br />
bekannt sind, in dessen Vereinbarungsteil sie deklariert worden sind. Sie sind den<br />
anderen Unterprogrammen und dem Hauptprogramm unbekannt und können dort nicht<br />
verwendet werden. Jedes Unterprogramm hat seinen eigenen lokalen Datenraum, in dem<br />
die lokalen Variablen abgelegt sind. <strong>Die</strong>ser existiert jedoch nur zur Laufzeit des<br />
Unterprogramms.<br />
Machen Sie möglichst oft Gebrauch von lokalen Variablen. Dadurch ist die Prozedur<br />
nicht mehr so stark abhängig von Gegebenheiten des Hauptprogramms und kann leichter<br />
in anderen Programmen eingesetzt werden.<br />
Beispiel: Das Programm soll nach der Eingabe der beiden Radien den Umfang und den Flächeninhalt<br />
eines Kreisrings berechnen.<br />
program proz_2;<br />
uses crt;<br />
var r1,r2 : real; <br />
procedure eingabe; <br />
begin<br />
write ('Außenradius eingeben: ');<br />
readln (r1);<br />
write ('Innenradius eingeben: ');<br />
readln (r2);<br />
end;<br />
procedure berechnung;<br />
const pi=3.14; <br />
var u,a : real; <br />
begin<br />
writeln;<br />
u:=2*pi*(r1+r2);<br />
a:=pi*(sqr(r1)-sqr(r2));<br />
writeln ('Umfang = ',u:1:2);<br />
writeln ('Fläche = ',a:1:2);<br />
end;<br />
begin<br />
clrscr;<br />
writeln ('Berechnung des Kreisrings');<br />
eingabe; <br />
berechnung;<br />
readln;<br />
end.<br />
Wolfgang Demel | TP Upro Skriptum Querformat.doc | Seite 2<br />
Im Vereinbarungsteil des Hauptprogramms stehen r1 u. r2. Sie sind daher globale<br />
Variablen.<br />
<strong>Die</strong> Prozedur eingabe hat keinen eigenen Vereinbarungsteil und kennt daher nur die globalen<br />
Variablen.<br />
In berechnung wird π durch die lokale Konstante pi auf den Wert 3.14 festgelegt.<br />
Für den Umfang und die Fläche werden die lokalen Variablen u und a vereinbart.<br />
Im Hauptprogramm werden die Unterprogramme mit ihren Namen aufgerufen<br />
Übungen 1:<br />
(1) Schreibe HERON.PAS mit den Unterprogrammen EINGABE und BERECHNUING<br />
(speichern als HERON_2.PAS).<br />
(2) Schreibe das Programm TRAPEZ_1.PAS, das nach Eingabe der Seitenlängen Umfang,<br />
Höhe, Fläche und die Diagonale e eines gleichschenkligen Trapezes berechnet. Verwende<br />
die Unterprogramme EINGABE, UMFANG, HOEHE, FLAECHE und DIAGONALE.<br />
Anleitung:<br />
a + c<br />
m =<br />
2<br />
A = m ⋅h<br />
2<br />
2 2 ⎛ a − c ⎞ 2 2 ⎛ a + c⎞<br />
h = b − ⎜ ⎟ e = h + ⎜ ⎟<br />
⎝ 2 ⎠<br />
⎝ 2 ⎠<br />
2<br />
D<br />
A a<br />
B<br />
Kontrolle: a = 32 | b = 18 | c = 25 ⇒ U = 93,00 | h = 17,66 | FL = 503,21 | e = 33,53<br />
Prozeduren mit Parameterübergabe:<br />
Um die Verwendung von Unterprogrammen noch flexibler zu gestalten, erlaubt es Turbo Pascal,<br />
Werte (die sogenannten Parameter) an die Unterprogramme zu übergeben. Dadurch wird ein<br />
gezielter Datenaustausch mit dem Hauptprogramm ermöglicht. Auch bei den in Turbo Pascal<br />
bereits definierten Standardprozeduren gibt es solche mit und solche ohne Parameterübergabe.<br />
So wird zum Beispiel die Prozedur für das Bildschirmlöschen CLRSCR ohne Parameter aufgerufen.<br />
Um hingegen mit der Prozedur WRITELN einen Wert x am Bildschirm auszugeben, muß der<br />
Prozedur auch der Wert als Parameter übergeben werden, was durch den Aufruf WRITELN(X)<br />
geschieht. Der zu übergebende Wert steht dabei in Klammern nach dem Namen der Prozedur.<br />
b<br />
m<br />
c<br />
e<br />
h<br />
C<br />
b