Zinseszins

  • Habe folgende Problemstellung in Java, kann mir jemand bitte weiterhelfen, es is sehr dringend...

    Danke im Vorraus!

    Schreiben Sie eine Klasse Zinseszins, die vom Benutzer per Tastatur einen Startbetrag, einen Zielbetrag und einen jährichen Zinssatz erfragt. Berechnen Sie unter Verwendung einer geeigneten Schleife, nach wie vielen Jahren der Zielbetrag erreicht ist, und geben Sie Ihr Ergebnis in der Konsole aus.

    Zinsesformel: Kn = K0 * (1 + z)^n

    mit Kn...Endkapital, K0...Anfangskapital, z...Zinssatz, n...Anzahl der geltenden Zeiträume/Jahre

  • Einmal posten reicht, und dann bitte in einem neuen Thread im richtigen Forum...

    Zwei Möglichkeiten:
    1. Mit Math.pow direkt ausrechnen
    2. In einer Schleife das K mit (1 + z) wiederholt multiplizieren, und genau das sollst du machen, weil es so in der Aufgabe steht

    Und wie man Ein- und Ausgabe macht, solltest du wissen können.

  • package Block1;

    public class Zinseszins {

    public static void main(String[] args) {

    double startbetrag;
    double zielbetrag;
    double zinssatz;
    int jahre;

    startbetrag = 100;
    zielbetrag = 200;
    zinssatz = 0.06;
    jahre = 2;

    while(zielbetrag == 200);
    zielbetrag = startbetrag * Math.pow((1 + zinssatz), jahre);
    jahre++;

    }

    }

    so, das hab ich bis jetz, die Konsole sagt aber absolut gar nichts dazu....

    zur erklärung: ich hab versucht der while-schleife zu sagen dass sie so lange 1 zu jahre addieren soll bis der zielbetrag = 200....
    vielen dank im voraus!!

    mfg

  • bei zielbetrag == 200 wird die schleife nur ausgeführt, solange der zielbetrag = 200 ist.
    da er es am anfang nicht ist, wird die ganze sache nicht true...

    probier mal

    zielbetrag <= 200

  • Abgesehen davon dass in Deinem Code Beispiel einige Fehler drin sind, ergibt die Rechnung auch keinen Sinn. Darüberhinaus wird das Programm nie in diese while Schleife rein kommen, da Du ja die Bedingung schon ein der Deklaration von Zielbetrag erfüllst.

    Im folgendem Beispiel wird es laufen ohne Fehler, jedoch wird er sich in eine Endlosschleife verirren.

  • Da sind auch ein paar Denkfehler drin. Wenn du den Zielbetrag vom Benutzer entgegennimmst, kannst du ihn nicht in der Schleife neu errechnen lassen. Das heißt, du müsstest den vom Benutzer gegebenen Zielbetrag x nennen und den in der Schleife errechneten y, dann kannst du nämlich auch sagen while y <= x .
    Warum du für Jahre als Startwert 2 setzt, erschließt sich mir auch nicht ganz.
    Streng genommen müsste man das ganze mit Logarithmus ausrechnen oder wenigstens mit viertel Jahren, da der Zins eigentlich pro Quartal gezahlt wird.

    Einmal editiert, zuletzt von CLiff (7. April 2010 um 14:35)