Zum Inhalt springen

BlueJ-Zinsrechnung


Empfohlene Beiträge

Geschrieben

hallo,

ich muss unter bluej folgende aufgabe programmieren:

wie viele jahre dauert es, bis ein kapital bei einer verzinsung auf den endbetrag angewachsen ist ?

bisher hab ich folgendes schon geschrieben:

public class ZINSRECHNUNG

{

private double anfangskapital; //in Euro

private double endkapital; //in Euro

private double zinssatz; //in Prozent

private double laufzeit; //in Jahre

private double anfangskapitalneu;

private double laufzeitneu;

public ZINSRECHNUNG()

{

anfangskapital=10;

endkapital=11.025;

zinssatz=5;

}

public ZINSRECHNUNG(double anfangskapitalstart, double endkapitalstart, double zinssatzstart)

{

anfangskapital = anfangskapitalstart;

endkapital = endkapitalstart;

zinssatz = zinssatzstart;

}

public double berechneLaufzeit()

{

anfangskapitalneu=(zinssatz/100+1)*anfangskapital;

do

{

anfangskapitalneu = (zinssatz/100+1)*anfangskapital;

laufzeit = laufzeitneu + 1;

}

while(anfangskapitalneu==endkapital);

return laufzeit;

}

}

ich weiß jetzt jedoch nicht, wie man die anzahl der jahre zurückgeben lässt!

vielleicht habt ihr eine Lösung! vielen dank schonmal!

Geschrieben (bearbeitet)

Moin, ich hoffe ich blamier mich nicht, aber ich möchte behaupten, dein Lösungsweg ist erstmal ziemlich falsch.

- Mir ist der Sinn der Variable "anfangskapitalneu" nicht einleuchtend. Diese initialisierst Du, indem Du Dein anfangskapital schon verzinst (da müsste laufzeit ja schonmal größer werden) und initialisierst sie in der Schleife gleich nochmal?

- Du durchläufst die Schleife, solange anfangskapitalneu (was ebengrad initialisiert wurde) gleich dem endkapital ist?

- Deine Laufzeit wird so jedes Mal 1.0 sein, da nur ein Schleifendurchlauf erfolgt, laufzeit bekommt seinen (falschen) Wert und das war's.

Zu Deiner Frage: mit return laufzeit gibst du den Wert doch zurück!

Bearbeitet von Ulfmann
Geschrieben

wie würde dann deiner meinung nach die methode berechneLaufzeit() lauten?

wenn ich laufzeitneu = laufzeit + 1 lösche und dann die methode aufrufe gibt er mir als laufzeit 0.0 zurück!

mit laufzeit meine ich ob es eine methode/Möglichkeit gibt die mir anzeigt wie oft die Wiederholung wiederholt wird?!

Geschrieben

Hier, so geht's zum Beispiel:


public static void main (String [] args)

{

	Zinsen testZins = new Zinsen(10, 11.025, 5);

	System.out.println("Die Laufzeit beträgt " + testZins.berechneLaufzeit() + " Jahre");

}


public double berechneLaufzeit()

{

	while (anfangskapital < endkapital)

	{

		anfangskapital *= (zinssatz/100+1);

		laufzeit++;

		System.out.println("Laufzeit ist " + laufzeit);

	}

	return laufzeit;

}

Laufzeit ist in diesem Fall gleich der Anzahl der Schleifendurchläufe:

Laufzeit ist 1.0

Laufzeit ist 2.0

Die Laufzeit beträgt 2.0 Jahre

Geschrieben

die aufgabe hat jedoch noch eine 2.teilaufgabe, wo ich auch nicht ganz zu recht komme: "ein kredit wird in gleichen jahresraten getilgt. der zinssatz ist über die gesamte laufzeit fest. Für jedes jahr wird der zins aus der restschuld berechnet und zu dieser addiert und die jahresrate subtrahiert.

Schreibe eine methode, die die Tilgungsdauer und die letzte Jahresrate berechnet."

Bisher hab ich folgendes:

public double berechneTilgungsdauerJahresrate()

{

do

{

rate=restschuld*(zinssatz*100);

restschuld *= anfangskapital-rate;

tilgungsdauer++;

System.out.println("Die Tilgungsdauer ist: " + tilgungsdauer);

}

while (restschuld==0);

return tilgungsdauer;

}

die methode funktioniert leider nicht! hast Du eine idee?

wie lässt sich denn die letzte jahresrate berechnen?

schonmal vielen dank!

Geschrieben

Nun lass Dir doch nicht alles vorkauen und überleg ein bisschen. Der Tipp, was falsch sein könnte wurde doch schon gegeben. Nimm doch mal an, Du hast einen Kredit von 1000 und einen Prozentsatz von 5%. Wie riesen groß wäre deine rate denn dann? Gleiches mit restschuld.

while(restschuld ==0) liest Du so: "Wiederhol die Schleife so lange, wie restschuld 0 ist. Sobald dies nicht mehr zutrifft, verlasse die Schleife". Was passiert? Die Scheife wird nach dem ersten Mal verlassen. Schau Dir da mein Beispiel nochmal an.

Dazu vielleicht noch ein Hinweis.

Geschrieben

Wenn du den Prozess einmal mit Papier + Stift + Taschenrechner durchrechnest, würde dir das sofort auffallen.

Wenn dir hier eine fertige Lösung präsentiert wird, konvergiert dein Lernerfolg gegen Null.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...