Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Zinseszins-Berechnung (https://www.delphipraxis.net/187618-zinseszins-berechnung.html)

timbou 15. Dez 2015 11:56

AW: Zinseszins-Berechnung
 
Das habe ich auch nicht verstanden. Sollte so eine Aufgabenstellung in der Arbeit drankommen, mache ich eben einmal mit While und einmal mit Repeat. Vielleicht dann auch noch ne Begründung, warum das Schreiben des Codes mit zwei Schleifentypen unnötig ist... Ich hoffe mal, dass das reichen würde

Sir Rufo 15. Dez 2015 11:57

AW: Zinseszins-Berechnung
 
Einen Mehrwert würde es aber bringen, wenn du deinen Code in eine Funktion auslagern würdest:
Delphi-Quellcode:
function ZinsesZinsBerechnungLaufzeit( const StartKapital, ZinsSatz, ZielKapital: Currency ) : Integer;
var
  AktuellesKapital: Currency;
  Laufzeit: Integer;
begin
  AktuellesKapital := StartKapital;
  Laufzeit := 0;
  while AktuellesKapital < ZielKapital do
  begin
    AktuellesKapital := AktuellesKapital + ( AktuellesKapital * Zinssatz ) / 100;
    Inc( Laufzeit );
  end;
  Result := Laufzeit;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LaufzeitLabel.Caption := IntToStr( 
    ZinsesZinsBerechnungLaufzeit( 
      StrToCurr( StartKapitalEdit.Text ),
      StrToCurr( ZinsSatzEdit.Text ),
      StrToCurr( ZielKapitalEdit.Text ) ) );
end;
Im Übrigen macht dieser Code exakt das, was in der Aufgabe steht. Denn dort sehe ich nichts von der Ausgabe der Zwischenschritte ;)

Ein Umbau auf
Delphi-Quellcode:
repeat
sollte problemlos möglich sein. Allerdings musst du auf die Kopf-Bedingung achten ;)

timbou 15. Dez 2015 12:00

AW: Zinseszins-Berechnung
 
Habe im Internet davon auch schon gelesen. Allerdings sind wir wegen ständigen Ausfällen wegen "Krankheit" des Lehrers noch nicht so weit gekommen, wodurch dies auch nicht verlangt ist.

Aber natürlich wäre es verdammt souverän, nach paar Stunden Unterricht solche Codes rauszuhauen :D

Sir Rufo 15. Dez 2015 12:04

AW: Zinseszins-Berechnung
 
Zitat:

Zitat von timbou (Beitrag 1324526)
Habe im Internet davon auch schon gelesen. Allerdings sind wir wegen ständigen Ausfällen wegen "Krankheit" des Lehrers noch nicht so weit gekommen, wodurch dies auch nicht verlangt ist.

Aber natürlich wäre es verdammt souverän, nach paar Stunden Unterricht solche Codes rauszuhauen :D

Verlangt ist das bestimmt nicht, aber wie du siehst ist alles auf einmal viel übersichtlicher und handlicher :)

Und für eine vernünftige Namesgebung sollte eigentlich kein Unterricht nötig sein ;)

timbou 15. Dez 2015 12:06

AW: Zinseszins-Berechnung
 
Ist wirklich viel übersichtlicher :) Ich mache es dann in der Kursarbeit nach den vom Lehrer gegebenen Methoden. Sollte ich noch Zeit haben, kann ich ja nach etwas nach dieser Methode schreiben. Extrapunkte sind immer gut:-D

p80286 15. Dez 2015 14:43

AW: Zinseszins-Berechnung
 
Zitat:

Zitat von Daniel (Beitrag 1324523)
Unser Lehrer damals hatte uns eine ähnliche Aufgabe gestellt und wollte dabei auf den Unterschied zwischen "while" und "repeat" hinaus. Wir sollten damals eine Lösung tatsächlich auf verschiedene Arten implementieren.
Hier nun einen Weg finden zu wollen, der auf Teufel komm raus beide Schleifen-Typen in ein und demselben Code-Schnipsel berücksichtigt, hielte ich für wenig hilfreich.

Mir scheint eher das es um Renten und Zins-Berechnung geht. Wenn ich mich richtig erinnere wird Rente am (zins-)Jahresbegin und Zinsen am Jahresende gezahlt. es könnte sein daß das gemeint ist.
(Bitte nicht schlagen, ist mehr als 40 Jahre her, daß ich mich damit beschäftigt habe)

Gruß
K-H

Amateurprofi 16. Dez 2015 00:11

AW: Zinseszins-Berechnung
 
Zitat:

Zitat von Sir Rufo (Beitrag 1324525)
Einen Mehrwert würde es aber bringen, wenn du deinen Code in eine Funktion auslagern würdest:
Delphi-Quellcode:
function ZinsesZinsBerechnungLaufzeit( const StartKapital, ZinsSatz, ZielKapital: Currency ) : Integer;
var
  AktuellesKapital: Currency;
  Laufzeit: Integer;
begin
  AktuellesKapital := StartKapital;
  Laufzeit := 0;
  while AktuellesKapital < ZielKapital do
  begin
    AktuellesKapital := AktuellesKapital + ( AktuellesKapital * Zinssatz ) / 100;
    Inc( Laufzeit );
  end;
  Result := Laufzeit;
end;

Probier das mal mit StartKapital = 0.01 und Zinssatz=0.1;
Beides Werte die durchaus vorkommen können.

Um eine Endlosschleife zu vermeiden, sollte geprüft werden, ob die Zinsen = 0 sind.
Weiterhin sollten die angefallenen Zinsen auf 2 Stellen gerundet werden, denn Banken schreiben keine Zinsen gut, wenn der (gerundete) Zinsertrag < 1 Cent ist.

Sir Rufo 16. Dez 2015 00:36

AW: Zinseszins-Berechnung
 
Ich muss die Aufgabe nicht abgeben ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 Uhr.
Seite 2 von 2     12   

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