leopard Geschrieben 21. Dezember 2009 Teilen Geschrieben 21. Dezember 2009 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 21. Dezember 2009 Teilen Geschrieben 21. Dezember 2009 (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 21. Dezember 2009 von Ulfmann Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
leopard Geschrieben 21. Dezember 2009 Autor Teilen Geschrieben 21. Dezember 2009 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?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 21. Dezember 2009 Teilen Geschrieben 21. Dezember 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
leopard Geschrieben 21. Dezember 2009 Autor Teilen Geschrieben 21. Dezember 2009 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 21. Dezember 2009 Teilen Geschrieben 21. Dezember 2009 Die Berechnung von "rate" und "restschuld" ist falsch. Die Abbruchbedingung in der Schleife auch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
leopard Geschrieben 21. Dezember 2009 Autor Teilen Geschrieben 21. Dezember 2009 wie würde denn dann die methode berechneTilgungsdauer heißen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ulfmann Geschrieben 21. Dezember 2009 Teilen Geschrieben 21. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 21. Dezember 2009 Teilen Geschrieben 21. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.