FOR-Schleife Problem

thelighter2

Erfahrenes Mitglied
Hey Forum ,
Ich habe ein Zinsprogramm wie Folgt realisiert .

Mein Problem ist dass, das Programm nicht die einzelnen Durchgänge Ausgeben soll.

Wie schaffe ich es das Programm so zu ändern das er mir die Jährlichen Zinsen nicht einzelnd (1 Jahr ,2 Jahr ...) darstellt,sondern die Zinsen aller Durchgänge (Jahre) zusammenaddiert und als einzige Zahl (Gesamtzins) ausgibt.

brauche dringend Hilfe

MfG Alex :D
_____________________________________________________
#include <iomanip>
#include <iostream>
#include <stdio.h>

using namespace std;

void main()
{
int Tilgung,Kredit,Laufzeit,Zinssatz,Zinsen,Kredit1 ;


cout << " Geben sie ihren Kreditbetrag ein " << endl ;
cin >> Kredit ;

cout << " Geben sie ihren Zinssatz " << endl ;
cin >> Zinssatz ;

cout << " Geben sie ihren Jaehrlichen Tilgungbetrag ein " << endl ;
cin >> Tilgung ;

cout << " Geben sie die Laufzeit ein " << endl ;
cin >> Laufzeit ;

for (int i = 1 ; i <= Laufzeit; i ++)
{

Zinsen = (Kredit / 100 ) * Zinssatz ;
Kredit = Kredit - Tilgung ;

cout << left << setw(50) << "" << endl;
cout << i << ". Jahr betraegt:" << Zinsen << endl << endl;
}

cout << left << setw(20) << Tilgung * Laufzeit << endl<< endl ; // Tilgung

}
___________________________________________________
 
Zuletzt bearbeitet:
Du willst also die Variable Zinsen, die du in der for-Schleife ausgibst, summieren?
Setz die Variable Zinsen vor der Schleife einmal auf 0
In der Schleife schreibst du statt "Zinsen=" "Zinsen+=" (ohne Anführungszeichen natürlich)
Die cout-Ausgabe in der Schleife kommt weg, dafür kannst die Ausgabe nach der Schleife machen.
Das wars

PS: Bitte verwende in Zukunft die Codetags, das macht den Code übersichtlicher
[code=cpp]...[/code]
 
Ich hab mal gleich in den Code reingeschrieben per Kommentar, was suboptimal ist.

C++:
#include <iomanip>
#include <iostream>
#include <stdio.h> // überflüssig, iostream bindet die cstdlib ein, und stdio.h ist die C-Variante von cstdlib.

using namespace std; // Gefährlich und überflüssig! Besser:
using std::cout;
using std::cin;

void main() // In C++ gibt main einen Integer zurück, nicht void
{
 int 	Tilgung,Kredit,Laufzeit,Zinssatz,Zinsen,Kredit1 ; // Deklarationen am Blockanfang sind nur in C nötig


 cout << " Geben sie ihren Kreditbetrag ein " << endl ;
 cin >> Kredit ;

 cout << " Geben sie ihren Zinssatz " << endl ;
 cin >> Zinssatz ;

 cout << " Geben sie ihren Jaehrlichen Tilgungbetrag ein " << endl ;
 cin >> Tilgung ;

 cout << " Geben sie die Laufzeit ein " << endl ;
 cin >> Laufzeit ;

	 for (int i = 1 ; i <= Laufzeit; i ++)
	 {
		 
		 Zinsen = (Kredit / 100 ) * Zinssatz ;
		 Kredit = Kredit - Tilgung ;

		 cout << left << setw(50) << "" << endl;
		 cout << i << ". Jahr betraegt:" << Zinsen << endl << endl;
	 }

	 cout << left << setw(20) << Tilgung * Laufzeit << endl<< endl ; // Tilgung 
     
}
 
Seit wann ist stdio.h=cstdlib?
Wenn schon cstdio

Und lass die Variablen doch am Blockanfang, schadet doch nicht.
Ich zumindest finde es übersichtlicher
 
Ob cstdlib oder cstdio ist ja im Endeffekt egal, redundant ist es in jedem Fall.

Variabeln sollten so nahe wie möglich an ihrer ersten Verwendung deklariert werden. Jeder hat zwar einen anderen Geschmack, aber dass man es an den Blockanfang gebunden übersichtlicher findet kann ich mir fast gar nicht vorstellen.
 
erstmals vielen dank für eure Antworten :D

nun hab ich mein Programm verändert doch es ist mir Folgender fehler aufgefallen:

C++:
#include <iomanip>
#include <iostream>

 
using namespace std; 

 
int main() 
{
 int 	Tilgung,Kredit,Laufzeit,Zinssatz,Zinsen = 0.0  ; 
 
 
 cout << " Geben sie ihren Kreditbetrag ein " << endl ;
 cin >> Kredit ;
 
 cout << " Geben sie ihren Zinssatz " << endl ;
 cin >> Zinssatz ;
 
 cout << " Geben sie ihren Jaehrlichen Tilgungbetrag ein " << endl ;
 cin >> Tilgung ;
 
 cout << " Geben sie die Laufzeit ein " << endl ;
 cin >> Laufzeit ;
 
	 for (int i = 1 ; i <= Laufzeit ; i++)
	 {
         Zinsen += (Kredit / 100)  * Zinssatz ;
		 Kredit = Kredit - Tilgung ;
		 }
 
	 
	 cout << left << setw(20) <<"Gesamtvertilgung" << Tilgung * Laufzeit << endl<< endl ; // Tilgung 
	 cout << left << setw(20) << "Gesamtzinsen:" << Zinsen << endl ; // Zinsen
	 cout << left << setw(20) <<" Ihr noch zu Zahlender Betrag:\a" << Kredit-Tilgung << endl ;  //Noch zu zahlender Betrag        
 
}
Ich habe berechnet das bei diesen gegebenen Werten diese Ergebnisse rauskommen müssten:

Kreditbetrag eingeben (Euro): 100000
Zinssatz eingeben (Prozent): 4
Jaehrlichen Tilgungsbetrag eingeben (Euro): 1000
Laufzeit (Jahre):15

Ausgabe: Gesamtzinsen: 56800
Gesamte Tilgung: 15000
Verbleibender Kreditbetrag: 85000

Die Werte die das Programm ausgibt sind annährend richtig aber nicht zu 100% :-S .

Was habe ich Falsch gemacht?

MfG Alex :D
 
Bei manchen Compilern ist es notwendig auch die Konstanten mit denen du rechnest als float oder double anzugeben:

C:
Zinsen += (Kredit / 100.00)  * Zinssatz;
//oder
Zinsen += (Kredit / 100.0f)  * Zinssatz;
So habe ich glaube das Problem behoben gehabt bei dem avrgcc damals^^

MFG
 
Zurück