Ha dann hätte ich das wohl richtig gelöst *juhu* 🙂.
Ich hab das zu SS04:
Aus der Aufgabenstellung lesen wir dass das Geld das jährlich investiert wird auch 0 sein kann (Zinsen für den Rest sollten wir dann natürlich trotzdem ausrechnen) und der Zinssatz mit dem Verzinst wird ist 6%.
Wir beginnen im Jahr 2004 und investieren -1.000.000 Euro.
Unser Zähler m ist in dem Fall 0, da das unser erstes Jahr ist in dem wir Geld investieren.
n beschreibt die Gesamtinvestitionszeit, in dem Beispiel 8 Jahre.
Im Jahr 2004 rechnen wir also (erstmal die Tabelle kapieren)
-1.000.000 / 1.06 ^0 = und weil „hoch null“ = 1 ist, haben wir einen Barwert von -1.000.000 🙂.
Im Jahr 2005 ist m = 1
=> -10.000 / 1,06^1 = 9433,96
Im Jahr 2006 ist m = 2 und der Fuzzi investiert 200.000
=> 200.000 / 1,06² = 177999,29
Das heißt also im ersten Jahr ist m = 0, im zweiten 1, im dritten 2 und n wird von Jahr zu Jahr kleiner 🙂.
Struktogramm 1:
Einlesen von q, m und n – soweit in Ordnung
K = 0, macht zu Beginn Sinn
j = m , ist auch noch ok
While j < m => die Prüfung wird niemals wahr werden, weil in der Zeile oben drüber j = m gesetzt wurde. Die While-Schleife wird also niemals durchlaufen und es wird K = 0 ausgegeben.
Das ist also falsch.
Struktogramm 2:
Einlesen von q, m und n – soweit in Ordnung
K = 0, macht zu Beginn Sinn
j = m , ist auch noch ok
while j <= n => ist korrekt, denn j mit J zählen wir wie viele Jahre seit Beginn der Investierung verstrichen sind und n ist die Maximallaufzeit. Der einzige Unterschied zu Struktogramm 4 ist der, dass in der While-Bedingung in Str.2 <= und in Str.4 < steht. Es ist also die Frage, welche Bedingung hier richtig ist.
Wir investieren von Jahr 2004 bis 2012.
Die Laufzeit beträgt 2012 – 2004 = 8
Jahr
Laufzeit (n)
j
M
2004
8
0
0
2005
7
1
0
2006
6
2
0
2007
5
3
0
2008
4
4
0
2009
3
5
0
2010
2
6
0
2011
1
7
0
2012
0
8
0
Das heißt im Jahr 2012, das letzte Jahr in dem wir investieren ist die Restlaufzeit = 0 und wir sind im 8.ten Investitionsjahr. Würden wir auf j < n prüfen, würden wir bei 7 < 8 aufhören mit der Berechnung, deswegen fällt meiner Meinung nach Struktogramm 4 auch weg. Außerdem fällt es weg, weil j zu früh nach oben gezählt wird. Im ersten Schleifendruchlauf von Struktogramm 2 wird q^0 berechnet wird, in Struktogramm 4 wird gleich q^1 gerechnet.
Zurück zu Struktogramm 2:
Wenn j <= n ist, wird Z eingelesen, das Geld das investiert werden soll.
Danach wird der Barwert berechnet
B = Z / q ^j – m
m ist immer null. Der Wert wird nur am Anfang einmal eingelesen und ist da = 0. Also rechnet das Programm im Jahr 1
0 – 0 = 0
1 – 0 = 1
2 – 0 = 2
Wenn B berechnet wird, wird der Kapitalwert ausgerechnet, das ist auch richtig. Der Kapitalwert ist immer der vorhandene Kapitalwert + der neue Barwert. Und j wird um eins nach oben gezählt, weil es dann in das nächste Jahr geht.
Im achten Jahr wird auch noch mal ein neuer Barwert berechnet und auf den Kapitalwert addiert, danach ist die While-Schleife beendet und K wird ausgegeben.
Struktogramm 2 ist also korrekt 🙂.
Struktogramm 3 ist wohl auch richtig, es kommt jedenfalls das richtige Ergebnis raus. Hier wird nur nach der Eingabe von Z zusätzlich überprüft ob Z <> 0 ist, wenn nicht, wird nichts weiter berechnet, sondern nur j um eins nach oben gezählt. Das macht auch insofern Sinn dass Z / q ^j-m immer 0 ergibt und so der Barwert der zu K addiert wird = 0 ist.
Tolle Wurst, wo isn meine Tabelle hin? 4 Spalten und die Werte dann jeweils reinschreiben.. fängt mit dem jahr vorne an.