Problem mit Sparbuch Aufgabe

Status
Nicht offen für weitere Antworten.

MaxPow3r

Mitglied
Hallo

ich habe eine Problem mit einer Aufgabe und zwar

Ausgangssituation ist das ich pro Jahr von meinem Geld 10% sparen soll und diese mit 5% p.a. verzinst werden (soweit hab ichs geschafft)


Jetzt mein Problem ich soll einen Wunschbetrag eingeben den ich mit der jährlichen Einzahlung des gleichen Betrages + Zins und Zinseszins... erreichen soll

Am Ende soll dann noch ausgegeben werden wieviele Jahre es dauert bis ich den betrag errreicht habe



habs bis jetzt so gemacht und iwie hauts nicht hin

i : soll die jahre zählen
summe : ist der sparbetrag der sich halt jährlich ändert
eingabeInt2 : ist der Betrag der jährlich eingezahlt werden soll
eingabeInt4 : ist der gewünschte Endbetrag



Code:
 for(int i=1; ;i++){
        	
        summe = (summe + eingabeInt2) * (1 + zins / 100) ^ i;
        
        if(summe >= eingabeInt4)
        break;}

weiß jemand wo mein Denkfehler liegt??

ausserdem habe ich das Problem das wenn ich im Anschluss an die Schleife i ausgeben will er die variable nicht mehr kennt

was kann ich dagegen tun???



Danke Im Voraus
 
ausserdem habe ich das Problem das wenn ich im Anschluss an die Schleife i ausgeben will er die variable nicht mehr kennt

Code:
       int i;
       for(i=1; ;i++){ 
            
        summe = (summe + eingabeInt2) * (1 + zins / 100) ^ i; 
        
        if(summe >= eingabeInt4) 
        break;}
 
wenn zins ein int ist, dann wird zins / 100 gerundet,
4 / 100 ist beispielsweise 0


^ gibts in Java nicht, Math.pow() vielleicht


ansonsten: 'hauts nicht hin' ist keine Fehlerbeschreibung, nenne genaue Compilerfehler, Exceptions oder was auch immer

die Schleifen-Variable ist nach der Schleife nicht mehr zu sehen, korrekt,
verwende lieber

int jahr = ..;
while (bedingung) {
..
jahr++;
}
// jahr hier sichtbar
 
danke für die schnelle hilfe hab jetzt einiges geändert

habe math.pow() benutzt und alle variablen als double deklariert

aber er rechnet jetzt falsch

d.h. die summe steigt zu stark an

im jahr 2 haut noch alles hin

aber ab dem jahr 3 ist das ergebnis viel zu hoch und der fehler potenziert sich mit steigenden jahren

also erstmal der code

Code:
for(int i=1; ;i++){
        	
        summe = (summe + eingabeInt2) * Math.pow(1.05, i);
        Jahr++;
        if(summe >= eingabeInt4)
        break;
        summe = Math.round( summe * 100. ) / 100.;




ist die formel immernoch falsch??

ich mein es gibt keinen abbruch oder sowas aber halt falsche ergebnisse




sorry ich stell mich glaub ich echt bescheuert an 😳
 
pro Jahr sollte die Summe nur um 1.05 steigen, nicht um 1.05^i
Code:
public class Test
{
    public static void main(String[] args)
    {
        double summe = 0;
        double eingabeInt2 = 50;
        double eingabeInt4 = 1000;
        int jahr = 0;
        for (int i = 1;; i++)
        {

            summe = (summe + eingabeInt2) * 1.05;
            System.out.println("jahr: " + jahr + ", summe: " + summe);
            jahr++;
            if (summe >= eingabeInt4) { break; } // edit für Hobbit // edit: quatsch, Schandro, Bild verwechselt
            summe = Math.round(summe * 100.) / 100.;
        }
    }
}

und du solltest dich entscheiden, i oder jahr, nicht beides, und schon gar nicht jahr groß schreiben
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben