19.07.2013 Aufrufe

Die Unterprogrammtechnik - lehrer

Die Unterprogrammtechnik - lehrer

Die Unterprogrammtechnik - lehrer

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

program funkt_1;<br />

uses crt;<br />

var a,b,c : integer;<br />

frage : char;<br />

procedure eingabe (ch:char;var x:integer);<br />

begin<br />

write ('<strong>Die</strong> ',ch,'. Zahl eingeben: ');<br />

readln (x);<br />

end;<br />

function max(x,y,z:integer):integer; <br />

var m : integer; <br />

begin<br />

m:=x;<br />

if y>m then m:=y;<br />

if z>m then m:=z;<br />

max:=m; <br />

end;<br />

begin<br />

repeat<br />

clrscr;<br />

eingabe('1',a);<br />

eingabe('2',b);<br />

eingabe('3',c);<br />

writeln ('Maximum der drei Zahlen = ',max(a,b,c)); <br />

write ('Noch eine Berechnung (j/n)?');<br />

readln (frage);<br />

until upcase(frage)='N'<br />

end.<br />

<strong>Die</strong> Vereinbarung einer Funktion wird mit dem Schlüsselwort FUNCTION eingeleitet, dem der<br />

Name der Funktion folgt. Danach folgt optional die Parameterliste mit Wertparametern (in<br />

unserem Beispiel die drei INTEGER-Zahlen) und Variablenparametern (wieder mit VAR). Zusätzlich<br />

muß in der FUNCTION-Vereinbarung der Typ der Funktion festgelegt werden. <strong>Die</strong>ser<br />

entspricht dem Datentyp des Funktionsergebnisses und kann jeder einfache Datentyp<br />

(INTEGER, REAL, CHAR, BOOLEAN, STRING) sein. Der Typ der Funktion wird nach der<br />

Parameterliste, getrennt durch einen Doppelpunkt, angegeben.<br />

Für lokale und globale Variablen gelten alle Aussagen wie bei den Prozeduren.<br />

Wichtig ist, daß im Anweisungsteil der Funktion dem Funktionsnamen das Funktionsergebnis<br />

in einer Wertzuweisung zugeordnet wird.<br />

funktionsname:=funktionsergebnis;<br />

Aufruf der Funktion direkt in der WRITELN-Zeile. Der Ausdruck max(a,b,c) wird dann<br />

durch den Funktionswert ersetzt. Ebenso möglich ist auch die Zuweisung des<br />

Funktionswertes an eine Variable:<br />

...<br />

var a,b,c,ergebnis : integer;<br />

...<br />

ergebnis:=max(a,b,c);<br />

writeln ('Maximum der drei Zahlen = ',ergebnis);<br />

...<br />

Funktionsaufrufe können in Ausdrücken direkt verwendet werden, wie z.B.:<br />

ergebnis:=3*(max(a,b,c)+15);<br />

Aufbau einer Funktion (reservierte TP - Wörter in Großbuchstaben):<br />

Wolfgang Demel | TP Upro Skriptum Querformat.doc | Seite 5<br />

FUNCTION Funktionsname (Parameterliste):Ergebnistyp; {Funktionskopf}<br />

{Vereinbarungsteil}<br />

CONST ... {Vereinbarung von lokalen Konstanten}<br />

VAR ... {Vereinbarung von lokalen Variablen}<br />

BEGIN {Anweisungsteil}<br />

Anweisung 1;<br />

Anweisung 2;<br />

...<br />

Anweisung x;<br />

Funktionsname:=Funktionsergebnis; {Zuordnung des Funktionswertes}<br />

END; {Ende der Funktion}<br />

Wie wichtig benutzerdefinierte Funktionen sind, erkennen wir, wenn wir uns den Vorrat an Funktionen<br />

ansehen, den uns Turbo Pascal standardmäßig zur Verfügung stellt.<br />

Turbo Pascal Standardfunktionen:<br />

Ergebnis- Ergebnis der Funktion Beispiel<br />

typ Argument Ergebnis<br />

ABS(x) REAL Absolutbetrag von x -3.25 3.25<br />

SQR(x) REAL Quadrat von x 5.0 25.0<br />

SQRT(x) REAL Quadratwurzel von x (x ≥ 0) 25.0 5.0<br />

SIN(x) REAL Sinus von x (in Radiant) PI/2 1.0<br />

COS(x) REAL Cosinus von x (in Radiant) PI -1.0<br />

ARCTAN(x) REAL Arcustangens von x (in Radiant) PI 1.262...<br />

PI REAL die Konstante π ----- 3.141...<br />

LN(x) REAL Natürl. Logarithmus von x (positiv) 100 4.605...<br />

EXP(x) REAL Exponentialfunktion von x (e x ) 1.0 2.718...<br />

TRUNC(x) INTEGER Umwandlung in INTEGER durch abschneiden<br />

der Dezimalstellen<br />

11.8 11<br />

ROUND(x) INTEGER Rundung auf ganzzahligen Wert 11.8 12<br />

INT(x) REAL ganzzahliger Anteil von x 11.234 11.0<br />

FRAC(x) REAL nicht-ganzzahliger Anteil von x 11.234 0.234<br />

Es fehlen viele oft gebrauchte Funktionen. Als Beispiele sollen die Winkelfunktion Tangens und<br />

die Berechnung von Potenzen herausgegriffen werden.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!