Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Delphi Aufgabe - Prämien

  Alt 7. Feb 2012, 21:47
Eigentlich kann man das direkt nach der Textvorgabe herunter programmieren:
Delphi-Quellcode:
function PraemieBerechnen( Dauer : integer ) : Currency;
begin
  Result := 0;

  // Wenn die Dauer kleiner 1 Jahr, dann gibt es nichts, also raus hier :o)
  // Steht zwar so nicht direkt im Text, kann man aber zwischen den Zeilen lesen

  if Dauer < 1 then
    Exit;

  // Bis zu 10 Jahren gibt es immer mindestens 100,00€

  if Dauer <= 10 then
    begin
      Result := 100;

      // bei mehr als 3 Jahren, kommen noch pro Mehr-Jahr 50,00€ hinzu

      if Dauer > 3 then
        Result := Result + 50 * ( Dauer - 3 );
    end

  else // mehr als 10 Jahre, für jedes Jahr 60,00€

    begin
      Result := Dauer * 60;

      // ab 50 Jahren gibt es die Hälfte noch mal oben drauf

      if Dauer >= 50 then
        Result := Result + Result / 2;
    end;
end;

// Nun der Aufruf über den Button

procedure TForm1.Button1Click( Sender : TObject );
var
  Dauer : integer;
  Praemie : Currency;
begin
  if TryStrToInt( Edit1.Text, Dauer ) then
    begin
      Praemie := PraemieBerechnen( Dauer );
      Edit3.Text := FloatToStr( Praemie );
    end
  else
    ShowMessage( Edit1.Text + ' ist keine gültige Zahl' );
end;
Dies ist auch ein gutes Beispiel, warum man Code und Darstellung trennen sollte.
Es ist einfach übersichtlicher
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat