Aufgaben zum Programmierkurs FORTRAN

Werbung
Aufgaben zum Programmierkurs FORTRAN
Aufgabe 1
Eingabe:
Ausgabe:
Erläuterung:
Lösung:
(Schwierigkeitsgrad: 1)
Radius r
Kreisumfang, Kreisfläche, Kugelfläche, Kugelvolumen jeweils mit
Radius r
Der Kreisumfang ist 2πr, die Kreisfläche πr2 , die Kugelfläche 4πr2
und das Kugelvolumen 4πr3 .
KreisKugel.f90
Aufgabe 2
Eingabe:
Ausgabe:
Erläuterung:
(Kreis und Kugel)
(Zinsen)
(Schwierigkeitsgrad: 1)
Betrag x, Zins (r) und Wachstum (w) in Prozent , Periodenzahl n
Barwert, Endwert
Der Barwert ist definiert als
n
1 − 1+w
1+r
x · BW F , BW F =
.
r−w
Der Endwert ist definiert als
x · BW F · (1 + r)n .
Lösung:
Zinsen.f90
Aufgabe 3
Teilaufgabe 1:
Eingabe:
Ausgabe:
Erläuterung:
(Annuitätendarlehen)
(Schwierigkeitsgrad: 2)
Darlehenshöhe D, Zins in Prozent r, Laufzeit L
Annuität Ann und Tilgung til
Die Annuität ist definiert als
Ann =
die Tilgung als
til =
1
D
,
BW F
A
− r.
D
Teilaufgabe 2:
Eingabe:
Ausgabe:
Erläuterung:
Darlehenshöhe D, Zins in Prozent r, erste Tilgung til in Prozent
Annuität Ann, Laufzeit L und letzte Rate lRate
Sei T il1 = D · til die erste Tilgung in Euro, dann gilt:
n
T ilj = T1
j=1
(1 + r)n − 1
.
r
Die beiden Teilaufgaben sollen in einem einzigen Programm verarbeitet werden. Dabei soll der Benutzer zwischen der Eingabe von
Laufzeit und Tilgung wählen können.
Lösung:
Annuitaetendarlehen.f90
Aufgabe 4
(Funktionen)
(Schwierigkeitsgrad: 2)
Erläuterung:
Es sollen die Funktionen absE, modE, moduloE, signE, dimE, maxE,
minE geschrieben werden (Erläuterungen dieser Funktionen, siehe
Blatt „Vordefinierte Funktionen in FORTRAN“, abs, mod, modulo,
sign, dim, max, min). Für die Funktionen modE und moduloE dürfen Umwandlungsfunktionen benutzt werden. Die Funktionen maxE
und minE sollen mit einem Array und der dazugehörigen Dimension aufgerufen werden. Für jede Funktion soll ein exemplarischer
Aufruf geschrieben werden.
Lösung:
Funktionen.f90
Aufgabe 5
Eingabe:
Ausgabe:
Erläuterung:
(Nullstellen quadratischer Polynome)
(Schwierigkeitsgrad: 2)
Die Koeffizienten a, b, c eines quadratischen Polynoms ax2 +bx+c.
Die Nullstellen des Polynoms.
Die Nullstellen des Polynoms können mit Hilfe der Formel
√
−b ± b2 − 4ac
x1,2 =
2a
berechnet werden. Dabei ist die Anzahl der Nullstellen zu beachten.
Die Anzahl der Nullstellen kann mit Hilfe der Diskriminante D =
b2 − 4ac bestimmt werden. Es gilt
D > 0 ⇒ Das Polynom besitzt 2 Nullstellen,
D = 0 ⇒ Das Polynom besitzt 2 Nullstelle,
D < 0 ⇒ Das Polynom besitzt keine Nullstelle.
Die Ausgabe der Nullstellen soll entsprechend ihrer Anzahl formatiert werden.
Lösung:
NullstellePol.f90
2
Aufgabe 6
(Nullstelle der Exponentialfunktion)
(Schwierigkeitsgrad: 2)
Eingabe:
Ausgabe:
Erläuterung:
Die Koeffizienten a, b der Funktion a · ex + b.
Die Nullstelle der Funktion.
Im Gegensatz zur vorhergehenden Aufgaben soll hier die Nullstelle
in einem Iterationsverfahren berechnet werden. Zu beachten ist,
dass die Funktion für a · b ≥ 0 keine Nullstelle besitzt. (nähere
Hinweise in der Veranstaltung)
Lösung:
NullstelleExp.f90
Aufgabe 7
(Standardabweichung)
(Schwierigkeitsgrad: 3)
Eingabe:
Ausgabe:
Erläuterung:
Eine Menge von n real–Zahlen als Array.
Die Standardabweichung der Zahlenmenge.
Die Anzahl n der Zahlen soll zuerst eingelesen werden. Danach können die einzelnen Zahlen eingegeben werden. Die Standardabweichung einer Zahlenmenge von n Zahlen ist definiert als
n
n
1 1
2
(xi − x̄) , x̄ =
xi .
σ=
n i=1
n i=1
Lösung:
Standardabw.f90
Aufgabe 8
(Bubble–Sort)
(Schwierigkeitsgrad: 3)
Eingabe:
Ausgabe:
Erläuterung:
Eine Menge von n integer–Zahlen als Array.
Die n Zahlen als Array aufsteigend sortiert.
Zu verwenden ist der Algorithmus Bubble–Sort. Man durchläuft
wiederholt den Array von 1 bis i, wobei i bei der Länge des Arrays
beginnt und in jeder Iteration um 1 abnimmt. Es werden bei jedem
Schritt die Elemente an der Stelle j und j+1, j von 1 bis i-1,
verglichen. Ist das Element an der Stelle j größer als das an der
Stelle j+1, so werden die beiden Elemente getauscht.
Lösung:
BubbleSort.f90
Aufgabe 9
Eingabe:
Ausgabe:
(Nutzenfunktion)
(Schwierigkeitsgrad: 4)
Wertebereich von X (minX, maxX, schrittweiteX), Wertebereich
von Y (minY, maxY, schrittweiteY) und Funktionsparameter
alpha.
Eine Wertetabelle für die Cobb–Douglas–Funktion
U (X, Y ) = X α · Y 1−α .
Erläuterung:
Die Wertetabelle ist für die Wertebereiche von X und Y als zweidimensionales Feld in einer Outputdatei Werte.txt auszugeben.
Lösung:
Nutzenfunktion.f90
3
Aufgabe 10 (Glücksspiel)
(Schwierigkeitsgrad: 4)
Erläuterung:
Es soll ein Würfelspiel implementiert werden. Der Anwender besitzt
einen Anfangskontostand von 100. Er darf die ganzzahlige Höhe seines Einsatzes und die Zahl auf die er setzt wählen. Zu beachten ist,
dass der Einsatz nicht größer sein darf als der Betrag auf dem Konto. Wird die Zahl gewürfelt, auf die gesetzt wurde, so erhält der
Anwender das fünffache seines Einsatzes auf sein Konto, sonst wird
der Einsatz von seinem Konto abgezogen. Nach jedem Spiel soll der
Anwender entscheiden können, ob er ein weiteres Spiel durchführen
oder abbrechen möchte. Verloren hat der Anwender, wenn sei Kontostand 0 beträgt. (Hinweis zu Zufallszahlen in der Veranstaltung)
Lösung:
üGlcksspiel.f90
Aufgabe 11 (Türme von Hanoi)
(Schwierigkeitsgrad: 5)
Erläuterung:
Es soll das Spiel „Türme von Hanoi“ (Erklärung des Spiels unter http://de.wikipedia.org/wiki/Türme_von_Hanoi) implementiert werden. Der Anwender soll dabei die Möglichkeit haben das
Spiel selbst zu steuern. Ein Lösungsalgorithmus für das Spiel soll
nicht programmiert werden. Allerdings soll dem Anwender nach
Beendigung des Spiels seine benötigten Züge sowie die optimale
Zugzahl ausgegeben werden. Die Gestaltung der Benutzeroberfläche beleibt dem Programmierer überlassen.
Lösung:
Hanoi.f90
4
Herunterladen