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)