You are not logged in.

  • Login

1

Friday, November 12th 2010, 9:24am

c++ hausaufgabe problem

Hallo Leute,
ich versuche mich nun schon seid stunden an meiner hausaufgabe und verzweifle langsam.

Die Aufgabe lautet:
"Im Jahr 1987 hatte Indien 700 Millionen Einwohner, China dagegen 990 Millionen. Die jährliche
Wachstumsrate Indiens beträgt 2,1%, die Chinas nur 1,4%. Schreiben Sie ein Programm, das
ermittelt, wann die Einwohnerzahl Indiens größer ist als die Chinas."

Mein Lehrer hat gesagt, dass wir dafür die do-while schleife und if/else benötigen. Was anderes haben wir bis jetzt auch noch nicht gelernt.

Mein Code sieht bis jetzt wie folgt aus:

Quoted

#include<conio.h>
#include<iostream.h>


void main() {
double wachstumsrateIndien,wachstumsrateChina;
double indien1987,china1987,indienPlus,chinaPlus,china,indien;

wachstumsrateIndien = 0.021;
wachstumsrateChina = 0.014;

cout <<"Einwohnerzahl von Indien 1987: ";
cin >> indien1987;

cout <<"Einwohnerzahl von China 1987: ";
cin >> china1987;

do{
indienPlus = indien1987 * wachstumsrateIndien;
chinaPlus = china1987 * wachstumsrateChina;

indien = indien1987 + indienPlus;
china = china1987 + chinaPlus;

}while (indien>china);

if (indien>china) {
cout << indien << endl;
cout << china << endl;
cout <<"Die Einwohnerzahl Indiens ist nun groeßer als die Chinas! ";
}

getch();
}



PS: Der Code funktioniert ja auch soweit, nur rechnet er zwischen do+while die ganze zeit nur die einwohnerzahl nach einem jahr aus. Dann ist es ja klar dass die einwohnerzahl von indien niemals größer wird als die von china.
Deshalb meine Frage: Wie kriege ich das hin, dass er immer wieder auf das ergebnis 2,1% drauftut.

2

Friday, November 12th 2010, 12:05pm

Du hast < und > verwechselt :sleeping:

Wo hast du den Quelltext her: Es ist der alte C++ Stil

Dann hast du in der Schleife noch Fehler.
In der Schleife ist eventuell ein Zähler interessant ;)

Nimm beim Quelltext einstellen den C&C++ Button.

MfG bcc-fan

3

Wednesday, November 17th 2010, 1:07pm

Dein Fehler liegt in der Schleife (suchen darfst du aber selbst)

Tipp:
lass dir in jedem Schleifendurchgang alle Werte mal ausgeben, dann findest du den Fehler sehr schnell

z.B. so:

C/C++ Quellcode

1
2
3
4
cout << "wert1: " << wert1 << endl;
cout << "wert2: " << wert2 << endl;
//...
cout << "-------------------------" << endl << endl;



Viel Erfolg

[EDIT]

und google mal danach was man mit
+=
-=
*=
/=
%=


so alles machen kann. Du wirst erfreut sein :D

4

Saturday, December 11th 2010, 10:51pm

zinsrechnung....

wenn ich mir recht erinnere ist das Endkapital nach ablauf eines Jahres mit 5% Zinsen 100% Grundkapital + 5% zinsen, wären nach einem jahr 105%, nach 2 jahren 110,25 nach 3 jahren 110,25 * 1.05=117,7625....
Also von der logik ist die Gesamtbevölkerung 100%+0,0x % und nicht 0,0x prozent...

5

Monday, December 13th 2010, 5:08pm

Ist auch so. Sonst rechnet man VON dem Jeweiligem Kapital den Zinssatz aus. Allerdings will man gleich hinzu addieren. Also 100% + X,YZ%.
Beispiel:

100€*1,00% = 1€
100€* 101% = 101€

Ich weiß das, hab noch genug Mathematik in der Schule..... :D
Allerdings wird hier nicht mit "Zinsvokabeln" gerechnet, mehr mit "Prozentvokabeln". Also:
Kapital = Grundwert;
Zinssatz = Prozentsatz;
Zinswert = Prozentwert;
Zeit = Zeit;

Hab den Fehler jetzt auch gefunden. 8)
Ahja, ich hasse diese besonders besondere Art von Fehlern. :thumbdown:

This post has been edited 1 times, last edit by "Checkmateing" (Dec 13th 2010, 5:15pm)


Similar threads

Social bookmarks