Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Prozentrechnungs Programm programmieren HILFE


Liesel - Di 21.10.08 14:00
Titel: Prozentrechnungs Programm programmieren HILFE
Hi, ich brauche ganz dringend eure Hilfe!
Ich sitze schon seit 2 Tagen an dieser aufgabe und ich schaff es einfach nicht damit das programm richtig Läuft!
Bitte Helft Mir :(

Aufgabe:
Ein Bestand wachst jährlich um p%. Nach wie vielen Jahren ist der doppelte Bestand erreicht?
Entwickeln Sie ein Programm, das dem Nutzer gestattet, den Zusammenhang zwischen Wachstumsrate und
Verdoppelungszeit durch Experimentieren mit dem Programm zu ermitteln.

Der Dialog könnte sich wie folgt abspielen:
Anfangsbestand (in EUR): 100
Wachstumsrate (in %): 10

Bestandsentwicklung:
Jahr Bestand
0 100,00 EUR
1 110,00 EUR
2 121,00 EUR
3 133,10 EUR
4 146,41 EUR
5 161,05 EUR
6 177,16 EUR
7 194,87 EUR

Nach 8 Jahren ist der doppelte Bestand erreicht.


Siluro - Di 21.10.08 14:04

Hi,
wo hast du denn Probleme? Ohne Problembeschreibung ist es schwer Hilfestellung zu geben.

Gruß

Björn


Xentar - Di 21.10.08 14:09

Wenn du schon seit zwei Tagen an dieser Aufgabe werkelst, hast du doch bestimmt schon einen Ansatz.
Zeig uns den mal, und schreib noch dazu, wo dein aktuelles Problem liegt, dann können wir dir sicher helfen.


Christian S. - Di 21.10.08 14:13

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian


Liesel - Di 21.10.08 14:36

Ja das ist mein Ansatz:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
program Aufgabe13;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var Geldbetrag,WR  :integer;
    Jahr           :integer;
begin
  write('Gib deinen Geldbetrag ein:'); readln(Geldbetrag);
  write('Gib deine Wachstumsrate ein:'); readln(WR);

begin
  while Geldbetrag<=200 do
        Geldbetrag:=Geldbetrag*WR
end;
   writeln('Nach ',Jahr,' Jahren ist doppelte Bestand erreicht.');
   readln;

end.


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Gausi - Di 21.10.08 14:43

Hallo und :welcome: in der Entwickler-Ecke

Na, das ist doch schon was. Wenn due die Wachstumsrate in Prozent angeben willst, dann fehlt da noch ein / 100, und in der Schleife muss man das Jahr hochzählen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Jahr := 0;
while Geldbetrag <= 200 do 
begin
  Geldbetrag := Geldbetrag + Geldbetrag * (WR / 100);
  Jahr := Jahr + 1;
  // evtl. auch
  writeln(Geldbetrag);
end;

Zusätzlich macht es wohl Sinn, den Geldbetrag (und WR) nicht als Integer, sondern als Float-Typen zu definieren (also z.B. Single), damit auch Kommazahlen möglich sind.

Edit: Upps, die Formel war Quatsch - so isses besser.


Agawain - Di 21.10.08 14:44

hi

ansich ja schon ganz nett (programmtechnisch), nur solltest Du Dich mal mit Zinsrechnung beschäftigen.

Schnapp Dir Dein Mathebuch und schau da nach?


Siluro - Di 21.10.08 14:47

Hi,

hier mal zwei Vorschläge:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
{$APPTYPE CONSOLE}

uses
SysUtils;

var Geldbetrag,WR :integer;
Jahr :integer;
begin
write('Gib deinen Geldbetrag ein:'); readln(Geldbetrag);
write('Gib deine Wachstumsrate ein:'); readln(WR);

begin
while Geldbetrag<=200 do  //warum hier ein fester Wert und nicht "Geldbetrag <= (ursprünglicher Geldbetrag * 2)"
Geldbetrag:=Geldbetrag*WR //Geldbetrag := Geldbetrag*((WR+100)/100)
end;
writeln('Nach ',Jahr,' Jahren ist doppelte Bestand erreicht.');
readln;

end.


Gruß

Björn

Edit: is ja schon gelöst


Liesel - Di 21.10.08 15:01

Dankeschön für eure Hilfe jetzt geht es! :)


Delete - Di 21.10.08 15:27

Wundert mich direkt, da ich mit den Positionen der div. begins und ends nichts anfangen kann :gruebel:


Gausi - Di 21.10.08 15:36

Na, man wird doch noch zwischendurch im Code ein paar begins und ends einfügen dürfen :zwinker:. Wirklich Sinn machen die nicht alle, aber falsch wird der Code dadurch nicht.


Delete - Di 21.10.08 15:47

Stimmt, mich hatte die Passage
Zitat:

Delphi-Quelltext
1:
2:
3:
4:
begin
while Geldbetrag<=200 do  //warum hier ein fester Wert und nicht "Geldbetrag <= (ursprünglicher Geldbetrag * 2)"
Geldbetrag:=Geldbetrag*WR //Geldbetrag := Geldbetrag*((WR+100)/100)
end;
allerdings irritiert.