Zinsrechnung und Schleife



  • Swantje schrieb:

    würd ich ja gerne, aber wie get das? über die taste c# ??

    Fast - die Taste "C/C++" ist für C-Codes 😉

    Zu deinem Programm: Die Berechnungen "Zinsen=..." und die dazugehörige Ausgabe gehören in die innerste Schleife - an der Stelle bringen sie nicht viel. (und dadurch, daß im Inneren der Schleife nicht viel passiert, hast du eine Endlosschleife, die nur ständig auf Eingaben wartet)



  • Die Berechnungen "Zinsen=..." und die dazugehörige Ausgabe gehören in die innerste Schleife

    irgendwie bin ich gerade erritiert. Also in die for schleife oder wie? Oder was is eine innere Schleife? *lieb frag*

    Danke für deine gedult mit mir!!



  • Swantje schrieb:

    Die Berechnungen "Zinsen=..." und die dazugehörige Ausgabe gehören in die innerste Schleife

    irgendwie bin ich gerade erritiert. Also in die for schleife oder wie?

    Ja genau - dort wo der Kommentar "//Kreditdaten aktualisieren und ausgeben" steht.

    Oder was is eine innere Schleife? *lieb frag*

    Eine "innere Schleife" ist eine Schleife, die im Inneren einer anderen Schleife liegt (in diesem Fall die "for(i=0...)" im Inneren der "while(betr>=0)").



  • Eine "innere Schleife" ist eine Schleife, die im Inneren einer anderen Schleife liegt (in diesem Fall die "for(i=0...)" im Inneren der "while(betr>=0)").

    Danke

    Also ich hab das jetzt wie folgt hier bei mir stehen:

    /*------------------------------------*/
    /*   Programmteil Ausgabebildschirm   */
    /*------------------------------------*/
    
    btr=bet*1000;
    ztr=zin/100;
    laz=(int)x+(x-(int)x)*100/12;
    
    zr = zin/n/100;
    rat = (btr*zr)/(1-(1/pow(1+zr,n*laz)));
    
    printf("Rate          [EURO]   : %.2f", rat);
    
    printf ("\n\n");
    printf ("\n\n");
    
    gets (dummy);
    
    /*-----------------------------------*/
    /*  Tabellenkopf / Wertzuweisung     */
    /*-----------------------------------*/
    
    printf("RatenNr    Zinsen    Tilgung    Restschuld \n");
    printf("------------------------------------------ \n");
    
    while (bet>=0)
    {
    printf("%d",&i);
    
    while(betr>=0)
    {
    printf("RatenNr    Zinsen    Tilgung    Restschuld \n");
    printf("------------------------------------------ \n");
    
      for(int i=0;i<12 && betr>=0;++i,++num)
      {
         Zinsen=btr*zin/100/n;
         Tilg=rat-Zinsen;
         Rest=btr-Tilg;
    
    printf(" |  %2d  |%9.2f  | %9.2f   |  %9.2f %%    | \n", i, Zinsen, Tilg ,Rest); 
    
    btr=Rest;
    i+=i;
      }
      printf("Press return ->");
      getch();
    }
    }
    
    gets (dummy);
    
    {
    return 0;
    

    aber irgendwie rechnet mein Programm nichts... 😞



  • kanns sein, dass bet und betr irgendwie falsche werte erhalten? weil ja die schleifen abgebrochen werden, wenn diese kleiner 0 werden. von daher denke ich, dass es evtl daran hängen könnte, hast du die irgendwie initialisiert, hab jetz bloß mal im allgmeinen durch geschaut, bin nicht in die tiefe gegangen so



  • Danke für den Tip.

    ich hab es jetzt einheitlich gemacht:

    while (btr>=0)
    {
    printf("%d",&i);
    
    while(btr>=0)
    {
    printf("RatenNr    Zinsen    Tilgung    Restschuld \n");
    printf("------------------------------------------ \n");
    
      for(int i=0;i<12 && btr>=0;++i,++num)
    

    aber geht auch nicht 😞



  • Du solltest mal versuchen, die Variablennamen einheitlich zu verwenden ('betr' und 'btr' sind zwei verschiedene Variablen - und die Zählvariable i der for-Schleife kollidiert mit der außenstehenden Variablen i).



  • Okay, ich glaube ich hab den Durchblick verloren...



  • JAAAAAAAAAAAAAAAAAA!!!! Es funktioniert!!! Zumindest rechnet er... zwar noch nicht bis 0 aber die ersten 4 Wete rechnet er 😃

    Also er gibt mir die ersten 4 werte, dann muss ich enter drücken und dann kommen die nächsten 4. Solange bis ich einen betrag von 0 euro habe. Jetzt muss ich nur noch den Schritt weg bekommen, dass er immer nach 4 werten die enter taste zum weiter ausgeben braucht...



  • http://www.uploadarea.de/upload/15m5dygxvy2vjuoujekpr1gpi.html

    1. ich habe jetzt an Anfang meiner Ausgabe so zich tausend zahlen. Wie bekomme ich die weg? bzw. wo kommen die her?

    2. in der nächsten Spalte steht immer

    1
    3
    7
    1
    3
    7

    aber das muss eigentlich

    1
    2
    3
    4
    5
    werden...

    wie kann ich das ändern? bzw. wieso macht er das??



  • Schau dir mal an, welche Variablen wo inkrementiert (und initialisiert) werden.



  • ja, das mit den Zahlen 1-12 hab ich schon hinbekommen. Problem sind grad die aus der ersten Spalte. Diese 7-stellige Zahl...



  • OK hab's geschafft.
    Letztes Problem is nur, dass er nach 12Raten nicht unterbricht und auf der nächsten Seite fortsetzt

    Auf jedenfall vielen Dank soweit!!



  • Es ist wirklich hilfreich, das Struktogramm zu schreiben oder wenigstens zu skizzieren, bevor man sich an den Quelltext heranmacht. Zumindest bei Aufgabenstellungen die Ungeübte wegen mehrerer Schleifen und Abfragen überfordern können.
    Programmieren ist learning by doing und learning funktioniert bei vielen nicht durch "doing the große Aufgabe" ohne Vorwissen, denn diese Aufgabe setzt gewisse Kenntnisse und ein Verständnis für die Befehle und Abläufe voraus. Programmierung ist abstrakt - das macht sie zu lernen so schwer. Schau dir die vorangegangenen Übungen an, da werden Schritt für Schritt Schleifen, Eingaben, Ausgaben etc. eingeführt. (Ich muss das Programm auch schreiben :-))



  • wer bist denn du?



  • Ich bin einer von KIM-Inf.



  • Ahhh.... dann hast du aber nicht ganz genau die gleiche Aufgabe 🙂 Nur eine ähnliche.



  • Oh. Ok, das war mir nicht klar 🙂


Anmelden zum Antworten