Programmierung in TURBO-PASCAL 7.0

W
Document Sample
scope of work template
							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