Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Repeat-Schleife zu einem Beispiel (https://www.delphipraxis.net/58110-repeat-schleife-zu-einem-beispiel.html)

Natalie 1. Dez 2005 14:51


Repeat-Schleife zu einem Beispiel
 
Hallo!

Wir haben in der Schule mit Delphi angefangen und schon verlangt unser Lehrer, eine Repeat-Schleife zum folgendem Beispiel zu machen!:

Nehmen wir mal an, eine Frau hat 2000€ auf ihrem Konto und jeden Monat werden 4% verzinst. Nach wievielen Jahren hat sie den doppelten Betrag?

Nun sollen wir zu dieser Aufgabe eine Repeat-Schleife reinbringen. Mir ist schon klar, was eine Schleife ist, aber ich verstehe nicht, wie man es lösen soll. :( Auch den Befehl mit repeat-until verstehe ich nicht so recht :(

Könnt ihr mir helfen?

Dankeschön im Vorraus :angel:

3_of_8 1. Dez 2005 14:59

Re: Repeat-Schleife zu einem Beispiel
 
Wieso nehmt ihr nicht while? Egal.

Delphi-Quellcode:
procedure Zinsrechnung;
var guthaben: Extended;
    jahre: Cardinal;
begin
guthaben:=2000;
jahre:=0;
repeat
inc(jahre);
guthaben:=1.04*guthaben;
until guthaben>=4000;
showmessage('Nach '+inttostr(jahre)+' Jahren verdoppelt sich das Guthaben.');
end;
EDIT: Delphi-Tag korrigiert.

Natalie 1. Dez 2005 15:08

Re: Repeat-Schleife zu einem Beispiel
 
Erstmal vielen lieben Dank für deine superflotte Antwort :kiss:

Ich habe da noch eine Frage: Was bedeutet genau das "Extended" und "Cardinal"?

3_of_8 1. Dez 2005 15:10

Re: Repeat-Schleife zu einem Beispiel
 
Extended: Ist der Fließkommatyp mit der höchsten Genauigkeit, also z.B. 3.62432
Cardinal: Wie Integer, aber nur Positiv, also von 0-~4 Milliarden.

Aber das ist doch eigentlich nicht so schwer, oder? Also ein besonders komplexer Algorithmus ist es ja wirklich nicht. (Bitte nicht falsch verstehen)

ibp 1. Dez 2005 15:23

Re: Repeat-Schleife zu einem Beispiel
 
Zitat:

Zitat von Natalie
Nehmen wir mal an, eine Frau hat 2000€ auf ihrem Konto und jeden Monat werden 4% verzinst. Nach wievielen Jahren hat sie den doppelten Betrag?

das konto möchte ich auch haben wo es 4% zinsen pro MONAT gibt! :shock:

du solltest den lösungsansatz oben dementsprechend anpassen, da er so nicht stimmt!

3_of_8 1. Dez 2005 15:25

Re: Repeat-Schleife zu einem Beispiel
 
Delphi-Quellcode:
procedure Zinsrechnung;
var guthaben: Extended;
    monate: Cardinal;
begin
guthaben:=2000;
monate:=0;
repeat
inc(monate);
guthaben:=1.04*guthaben;
until guthaben>=4000;
showmessage('Nach '+inttostr(jahre)+' Monaten verdoppelt sich das Guthaben.');
end;
Ändert sich ja nicht viel.

3_of_8 1. Dez 2005 15:39

Re: Repeat-Schleife zu einem Beispiel
 
Es geht auch leichter, aber halt ohne repeat:

Delphi-Quellcode:
showmessage('Nach '+floattostr(logn(1.04,2))+' Jahren/Monaten verdoppelt sich das Guthaben.');
Stinknormaler Logarithmus.

Natalie 1. Dez 2005 15:43

Re: Repeat-Schleife zu einem Beispiel
 
Ja, so normale Rechnungen kann ich, aber der Schwerpunkt liegt jetzt bei der Verwendung von Schleifen.


Sorry, bin aber noch ein fürchterlicher Anfänger :( Wozu bzw. wofür steht das "inc"?

Chegga 1. Dez 2005 15:47

Re: Repeat-Schleife zu einem Beispiel
 
Hi,

Delphi-Referenz durchsuchenInc :wink:
Inc = Inkrementieren = Hochzählen
In dem Fall wird "monate" in jedem Schleifendurchlauf um 1 erhöht.
Also anstatt Inc(Monate) könntest du auch
Monate := Monate + 1;
schreiben.

MfG Marc

RavenIV 1. Dez 2005 16:11

Re: Repeat-Schleife zu einem Beispiel
 
Zitat:

Zitat von Natalie
Sorry, bin aber noch ein fürchterlicher Anfänger :( Wozu bzw. wofür steht das "inc"?

Anleitung zur Selbsthilfe:
stell in Delphi den Cursor auf das unbekannte Wort und drücke <F1>, dann kommt die Hilfe und du kannst es nachlesen...

ibp 1. Dez 2005 16:56

Re: Repeat-Schleife zu einem Beispiel
 
Zitat:

Zitat von 3_of_8
Delphi-Quellcode:
procedure Zinsrechnung;
var guthaben: Extended;
    monate: Cardinal;
begin
guthaben:=2000;
monate:=0;
repeat
inc(monate);
guthaben:=1.04*guthaben;
until guthaben>=4000;
showmessage('Nach '+inttostr(jahre)+' Monaten verdoppelt sich das Guthaben.');
end;
Ändert sich ja nicht viel.

entspricht immer noch nicht der aufgabenstellung! wo kommen denn nun die jahre her?

Sidorion 1. Dez 2005 17:01

Re: Repeat-Schleife zu einem Beispiel
 
Die sind ein Überbleibsel aus der ersten Antwort.

Delphi-Quellcode:
showmessage('Nach '+inttostr(monate Div 12)+' Jahren verdoppelt sich das Guthaben.');

ibp 1. Dez 2005 18:38

Re: Repeat-Schleife zu einem Beispiel
 
Delphi-Quellcode:
showmessage('Nach '+inttostr((monate Div 12)+1)+' Jahren verdoppelt sich das Guthaben.');
so wirds was!

tigerman33 1. Dez 2005 19:02

Re: Repeat-Schleife zu einem Beispiel
 
Das ist aber zumindest unsauber. Ich habs zwar nicht nachgerechnet, aber wenn der Verdopplungszeitpunkt zufällig auf ein "volles" Jahr fallen sollte, ist dein Ergebnis falsch! Besser so:
Delphi-Quellcode:
showmessage('Nach '+inttostr(ceil(monate / 12))+' Jahren verdoppelt sich das Guthaben.');


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz