19.07.2013 Aufrufe

Die Unterprogrammtechnik - lehrer

Die Unterprogrammtechnik - lehrer

Die Unterprogrammtechnik - lehrer

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!