Sparen in Raten

matti123

Mitglied
Ich muss als Hausaufgabe folgendes Programm schreiben: 1666707369455.png
Bis jetzt bin ich so weit(kann mir jemand sagenn was ich falsch gemacht habe?):

Java:
public class SparenInRaten {

 

    public static double readDouble(String text) {

        System.out.print(text);

        return (new java.util.Scanner(System.in)).nextDouble();

    }



    public static void main(String[] args) {

        // TODO Auto-generated method stub

        System.out.println("Sparen in Raten");

        System.out.println("===============");

        double g = readDouble ("Geben Sie das Guthaben am Jahresanfang ein:");

        double r = readDouble ("Geben Sie die Monatsrate ein:");

        double j = readDouble ("Geben Sie den Jahreszinssatz ein:");

        double m = 1;

        while (m<=12) {

            g = (r+(g+(g/100.*j)));

            m++;

        }

        System.out.println("Das Guthaben am Ende des Jahres beträgt: "+g);

    }

}
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Du hast doch die Hinweise zu der Verzinsung der Raten in keiner Weise benutzt.

Zinsrechnung ist aber doch prinzipiell bekannt, oder?

Dann kannst Du ja mal die folgenden Fälle berechnen:
  • Du hast am Jahresanfang Betrag x auf dem Konto und der Betrag wird einfach mit einem Zinssatz verzinst.
  • Du hast die xte Rate, diese wird mit x/12 Jahreszinsen verzinst

Wenn Du diese Fälle berechnen kannst, dann kannst Du auch die Summe betrachten.
 

Jw456

Top Contributor
Java:
int m = 12;
double summeZinsen = 0;

        while (m > 0) {
            double zinsMonat = zinsJahr * m / 12;
            summeZinsen = summeZinsen + monatsRate*zinsMonat/100;
            m--;
        }
        guthaben = guthaben + guthaben * zinsJahr/100;
        guthaben = guthaben + monatsRate*12 + summeZinsen;

etwas ausfürlich etwa so
 

matti123

Mitglied
Du hast doch die Hinweise zu der Verzinsung der Raten in keiner Weise benutzt.

Zinsrechnung ist aber doch prinzipiell bekannt, oder?

Dann kannst Du ja mal die folgenden Fälle berechnen:
  • Du hast am Jahresanfang Betrag x auf dem Konto und der Betrag wird einfach mit einem Zinssatz verzinst.
  • Du hast die xte Rate, diese wird mit x/12 Jahreszinsen verzinst

Wenn Du diese Fälle berechnen kannst, dann kannst Du auch die Summe betrachten.
Jetzt bin ich schon näher dran:
Java:
public class SparenInRaten {
    
    public static double readDouble(String text) {
        System.out.print(text);
        return (new java.util.Scanner(System.in)).nextDouble();
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Sparen in Raten");
        System.out.println("===============");
        double g = readDouble ("Geben Sie das Guthaben am Jahresanfang ein:");
        double r = readDouble ("Geben Sie die Monatsrate ein:");
        double j = readDouble ("Geben Sie den Jahreszinssatz ein:");
        double m = 1;
        double m2 = 12;
        while (m<=12 && m2>=1) {
            j = j/12 *m2;
            g = (r+(g+(g/100.*j)));
            m++;
            m2--;
        }
        System.out.println("Das Guthaben am Ende des Jahres beträgt: "+g);
    }
}
 

KonradN

Super-Moderator
Mitarbeiter
Wieso unterteilst Du es nicht in mehrere Berechnungen? Der wichtigste Grundsatz bei jeder Programmierung ist KISS: Keep It Simple, Stupid!
Und das bekommt man am einfachsten hin mit Teile und Herrsche. Teile ein Problem, das komplex ist, in mehrere kleine, einfache Probleme auf!

Daher: Teile das Problem auf und löse dann die einfachen Teilprobleme und führe die Ergebnisse zusammen. Dann hast Du auch einen einfachen Code, den Du auch verstehen kannst und in dem Du mögliche Fehler finden kannst.

Dazu gehört dann auch der Punkt: Wieso nutzt Du keine Variablen, die lesbar sind? m, m2, g, r, j ... Du willst mir doch nicht erzählen, dass Du da wirklich auf Anhieb weisst, was was ist. Evtl. ist das auch ein Teil des Problems.

Nebensächlich ist dann schon fast: Bei Dir ist die Variable m unnötig. Diese führst Du zwar in der Schleife mit aber die Variable wird sonst nirgends verwendet. Das ist also schlicht ein unnötiges Verkomplizieren des Codes.
 

Jw456

Top Contributor
einige Fehler.
zb. das j = j/12 *m2;
du willst ein zwöftel vom Jahreszinssatz haben, jetzt weist du das dem Jahreszinssatz zu, falsch
Schaue warum ich eine neue Variable benutzt habe.
 
Zuletzt bearbeitet:

Neue Themen


Oben