28.10.2013 Aufrufe

Bedingte Wiederholung mit Anfangsbedingung

Bedingte Wiederholung mit Anfangsbedingung

Bedingte Wiederholung mit Anfangsbedingung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Informatik 10 <strong>Bedingte</strong> <strong>Wiederholung</strong><br />

<strong>Bedingte</strong> <strong>Wiederholung</strong> <strong>mit</strong> <strong>Anfangsbedingung</strong><br />

Aufgabe 1<br />

Wie viele Jahre dauert es, bis ein Kapital (z. B. 1000 €) bei einer Verzinsung von p (z. B.<br />

4 %) auf den Endbetrag (z. B. 2000 €) angewachsen ist?<br />

Erzeuge ein neues Projekt <strong>mit</strong> einer Klasse ZINSRECHNUNG. Die Klasse besitzt eine<br />

Methode berechneLaufzeit(), die die Parameter anfangskapital, endkapital<br />

und zinssatz besitzt, die Berechnungen durchführt und die Zahl der Jahre zurückgibt.<br />

Lösung Methode berechneLaufzeit:<br />

public int berechneLaufzeit(double anfangskapital, double endkapital, double zinssatz)<br />

{<br />

}<br />

int zaehler = 0; // zählt die Jahre<br />

double kapital = anfangskapital; // kapital ist das aktuelle guthaben<br />

while (kapital < endkapital)<br />

{<br />

}<br />

kapital = kapital * (1+zinssatz);<br />

zaehler = zaehler + 1;<br />

return zaehler;<br />

Für die obigen Beispielzahlen muss die Methode wie folgt aufgerufen werden:<br />

berechneLaufzeit(1000,2000,0.04)<br />

Aufgabe 2<br />

Gegeben seien zwei natürliche Zahlen a und b.<br />

Solange a größer oder gleich b ist, soll a um b verkleinert werden.<br />

Am Ende soll a zurückgegeben werden.<br />

Erstelle dafür ein Struktogramm.<br />

Solange a>=b wiederhole<br />

Welche Bedeutung hat das Ergebnis?<br />

Das Ergebnis ist der ganzzahlige Rest der Division von a durch b.<br />

Aufgabe 3<br />

a = a -b<br />

Wie Aufgabe 2. Allerdings soll die Anzahl der Subtraktionen ausgegeben werden.


Informatik 10 <strong>Bedingte</strong> <strong>Wiederholung</strong><br />

Lösung:<br />

Aufgabe 4<br />

Übersetze die Java-Zeilen in ein Struktogramm. Welchen<br />

Sinn könnte dieser Programmteil haben?<br />

Teste die Zeilen eventuell in einem Java-Programm.<br />

Der Programmteil liefert den größten gemeinsamen Teiler<br />

von a und b.<br />

Aufgabe 5<br />

int a,b;<br />

...<br />

while (a!=b)<br />

{ if (a>b) {a=a-b;}<br />

else {b=b-a;}<br />

}<br />

Ein Kredit wird in gleichen Jahresraten getilgt. Der Zinssatz ist über die gesamte Laufzeit<br />

fest.<br />

Für jedes Jahr wird der Zins aus der Restschuld berechnet und zu dieser addiert sowie die<br />

Jahresrate davon subtrahiert.<br />

Erstelle ein Struktogramm zur Berechnung der Tilgungsdauer und zur Berechnung der letzten<br />

(i. Allg. kleineren) Jahresrate.<br />

Schreibe eine neue Methode der Klasse ZINSRECHNUNG, die die beiden Werte auf der<br />

Konsole ausgibt.<br />

public void TilgungsdauerBerechnen(double kredit, double rate, double zinssatz)<br />

{<br />

zaehler = 0<br />

Solange a>=b wiederhole<br />

a = a -b<br />

zaehler = zaehler +1<br />

return zaehler<br />

Solange a!=b wiederhole<br />

Ist a > b<br />

?<br />

ja nein<br />

a = a – b b = b - a<br />

int jahre = 0;<br />

while (kredit > rate)<br />

{<br />

if (rate > kredit*zinssatz) // zusätzliche Abprüfung, da<strong>mit</strong> die Rate nicht


Informatik 10 <strong>Bedingte</strong> <strong>Wiederholung</strong><br />

{<br />

}<br />

else<br />

{<br />

kredit = kredit* (1+zinssatz) - rate;<br />

// zu klein gewählt wird<br />

System.out.println("kredithöhe: " + kredit);<br />

jahre = jahre + 1;<br />

System.out.println("Die Jahresrate muss höher als die Jahreszinsen sein!<br />

Jahreszins aktuell:" + (kredit*zinssatz));<br />

}<br />

}<br />

}<br />

rate = kredit*zinssatz +1;<br />

System.out.println("Tilgungsdauer: " + jahre);<br />

System.out.println("Restrate im letzten Jahr: " + kredit);

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!