Prozedurale Programmierung (PPG)

Transcrição

Prozedurale Programmierung (PPG)
Prozedurale
Programmierung (PPG)
HS 2009
Praktikum 9:
Arrays
Aufgabe 1: Temperaturmessungen
Eine Wetterstation misst in regelmässigen Abständen die Temperatur in °Celsius. Die Messungen
eines Tages werden Ihnen als Array zur Verfügung gestellt.
Schreiben Sie jeweils eine Methode, welche Ihnen die (a) Maximaltemperatur, (b) Minimaltemperatur
und (c) den Tagesmittelwert berechnet.
Aufgabe 2: Fibonacci
Die Fibonaccifolge wurde vom Mathematiker Leonardo von Pisa (genannt Fibonacci) 1202 definiert.
Sie basiert auf einem Problem, dass er im dritten Teil seiner Publikation Liber abaci formulierte:
"[...] A certain man put a pair of rabbits in a place surrounded on all sides by a wall. How many pairs
of rabbits can be produced from that pair in a year if it is supposed that every month each pair begets
a new pair which from the second month on becomes productive?".
In der Reihe der Fibonacci-Zahlen ergibt sich jede Zahl als die Summe der beiden vorhergehenden,
wobei die ersten beiden Zahlen Eins sind:
Fn = Fn-2 + Fn-1, wobei F0=1 und F1=1
Erstellen Sie eine Methode createFibonacci, welche ein Array der ersten N Elemente der
Fibonaccifolge erstellt und zurückgibt, wobei die Grösse (N) des Arrays als Parameter übergeben wird
(z.B. 30).
Wie lautet die 10te Zahl der Fibonacci-Folge?
Aufgabe 3: DrawPath
Als Vorgabe erhalten Sie eine Folge von X/Y-Koordinaten. Diese Liste wird als 2-dimensionales Array mit jeweils einer X- und einer Y-Koordinate pro Punkt (also zwei Spalten pro Zeile) erstellt.
a) Schreiben Sie eine Methode drawPath() welche diese Kordinatenfolge als Pfad (Folge von
Linien g.drawLine()) in einem Applet ausgibt. Um was für eine Figur handelt es sich beim
angegebenen Pfad?
b) Erweitern Sie diese Funktion in einer zweiten Methode drawRelativePath(), in der Sie,
neben der Punkteliste, noch einen x- und y-Offset und einen Skalierungsfaktor übergeben, mit
dem sie die Position und Grösse der Figur anpassen können. Als weiteren Wert können Sie
noch die Farbe der Linie übergeben in welcher diese gezeichnet werden soll.
c) Die Graphics-Klasse (http://java.sun.com/javase/6/docs/api/java/awt/Graphics.html) bietet bereits die Methode drawPolyline(). Diese erwartet jedoch die Koordinaten in einem anderen
Format – als je ein Array von X-Werten und ein Array von Y-Werten, sowie der Anzahl zu
zeichnenden Punkte. Erstellen Sie eine neue Methode drawPolylinePath() welche die
gleiche Funktion wie (b) hat, jedoch zur Ausgabe die Methode drawPolyline() verwendet.
mach
(Dezember 2009)
1
Praktikum9.doc