Übungsblatt zu ergebnisgesteuerten Schleifen
Aufgabe 1: Ratenzahlung
Angenommen, Sie schulden Ihrer Kreditkartengesellschaft €1000.00. Die
Gesellschaft berechnet Ihnen monatlich 1.5% Zinsen auf den gewährten
Kredit. Sie entscheiden sich, die Kreditkarte nicht mehr zu verwenden
und Ihren Kredit monatlich mit einem bestimmten Betrag n
zurückzuzahlen.
Schreiben Sie ein Programm, das nach dem monatlichen Rückzahlungsbetrag
in ganzen Euros fragt, dann den Saldo und den aktuellen Gesamtbetrag der Zahlungen für
jeden Monat ausgibt, bis der Saldo Null oder weniger beträgt.
Berechnen Sie die monatlichen Zinsen auf Grund des Saldos. Berechnen
Sie dann den neuen Saldo, in dem Sie die Zinsen addieren und den
zurückgezahlten Betrag subtrahieren.
Beispielablauf:
Bitte geben Sie den monatlichen Betrag ein: 100
Monat: 1, Saldo: 915.0, Gesamtbetrag: 100.0
Monat: 2, Saldo: 828.73, Gesamtbetrag: 200.0
Monat: 3, Saldo: 741.16, Gesamtbetrag: 300.0
Monat: 4, Saldo: 652.27, Gesamtbetrag: 400.0
Monat: 5, Saldo: 562.06, Gesamtbetrag: 500.0
Monat: 6, Saldo: 470.49, Gesamtbetrag: 600.0
Monat: 7, Saldo: 377.55, Gesamtbetrag: 700.0
Monat: 8, Saldo: 283.21, Gesamtbetrag: 800.0
Monat: 9, Saldo: 187.46, Gesamtbetrag: 900.0
Monat: 10, Saldo: 90.27, Gesamtbetrag: 1000.0
Monat: 11, Saldo: -8.38, Gesamtbetrag: 1100.0
Verwenden Sie für die Berechnungen der Einfachheit halber
Gleitkommaarithmetik mit float.
Aufgabe 2: Wirksamkeit von Medikamenten
Jeden Monat, den ein bestimmtes Medikament gelagert wird,
verliere es
4% seiner Wirksamkeit. Wenn seine Wirksamkeit unter 50% fällt,
wird es
als unbrauchbar eingestuft und sollte entsorgt werden.
Schreiben Sie ein
Programm, welches für jeden Monat den Verlust an Wirksamkeit
ausgibt und beim Unterschreiten von 50% Wirksamkeit, dass das Medikament
entsorgt werden sollte.
Programmausgabe:
Monat: 0, Effektivität: 100.0%
Monat: 1, Effektivität: 96.0%
Monat: 2, Effektivität: 92.16%
Monat: 3, Effektivität: 88.47%
Monat: 4, Effektivität: 84.93%
Monat: 5, Effektivität: 81.54%
Monat: 6, Effektivität: 78.28%
Monat: 7, Effektivität: 75.14%
Monat: 8, Effektivität: 72.14%
Monat: 9, Effektivität: 69.25%
Monat: 10, Effektivität: 66.48%
Monat: 11, Effektivität: 63.82%
Monat: 12, Effektivität: 61.27%
Monat: 13, Effektivität: 58.82%
Monat: 14, Effektivität: 56.47%
Monat: 15, Effektivität: 54.21%
Monat: 16, Effektivität: 52.04%
Monat: 17, Effektivität: 49.96%
Entsorgen!
Aufgabe 3: ex
Der Grund, warum Rechner den Wert von Funktionen wie ex
berechnen können, liegt darin begründet, dass für diese Funktionen
Reihenentwicklungen existieren.
Die Exponentialfunktion
besitzt z. B. die folgende Potenzreihenentwicklung:
Dabei steht
für die Fakultät von
, d. h.:
Schreiben Sie ein Programm, welches einen
Wert für
eingeben lässt und ebenfalls die gewünschte
Genauigkeit
der Berechnung, in Stellen hinter dem Komma, und dann
mit Hilfe einer Schleife berechnet, solange der in jeder
Iteration zur Summe addierte Term größer ist als
. Vergleichen Sie schließlich den von Ihrem Programm
berechneten Wert mit dem von der offiziellen Mathematikmethode exp(x)
berechneten Wert.
Zwischen dem
-ten und
-ten Term besteht die folgende Beziehung:
Mit Hilfe dieser Beziehung können viele unnötige Berechnungen vermieden
werden, sodass die Lösung dieser Aufgabe am Ende überraschend einfach
ist.
Beispielablauf:
Aufgabe 4: sin(x)
Nicht nur für die Funktion
existiert eine Reihenentwicklung. Auch für die trigonometrische
Funktion sin(x), die schon Teil der Übungsaufgaben war, existiert eine
Potenzreihe:
Schreiben Sie ein Programm für sin(x) entsprechend der Lösung zur
vorigen Aufgabe.
Beispielablauf:
Wie Sie sehen, besitzt diese Reihe eine weitaus höhere
Konvergenzgeschwindigkeit, als die Reihe der vorigen Aufgabe,
was sich in der deutlich geringeren Anzahl an Iterationen
äußert, die zur Erreichung der geforderten Genauigkeit
erforderlich sind.