So, habe es nocheinmal programmiert. Bin mir aber nicht sicher, ob man es so machen kann.
Paar Punkte vielleicht:
a.) ich bin traurig, dass du keine Klasse geschrieben hast
Ist aber nicht wirklich schlimm
b.) Du verwendest den Variablennamen "Result". Ist zwar nicht verboten, aber der hat bei Funktionen eine Bedeutung. Ich würde es wegen einem besseren Verständnis nicht nehmen. Ist aber an dieser Stelle aber nicht wirklich schlimm.
c.) Real als Variablentyp.
- nach meiner Kenntnis ist der Typ veraltet. Er wird zwar nie verschwinden, bleibt aber wohl nur aus Kompatibilitätsgründen da. Besser ist Double.
- Aber auch Double ist hier nicht richtig, da es sich um Währung handelt. Bei kleinen Zahlen fällt das nicht auf, aber wenn ich diesen Rundungsfehler hätte 1,24E8 €, bzw. das was hier durch runden weggefallen ist, wäre ich ein reicher Mann. Für Währungen nimmt man Currency als Typ. Da wird nichts gerundet.
d.) über das
Dauer:=StrToInt(Edit1.Text);
brauchen wir nicht groß reden, im Zweifelsfall kommt eine Fehlermeldung.
e.)
if (Dauer > 3) and (Dauer < 10) then
Hier bekommt auch der eine Prämie, der lediglich einen Arbeitsvertrag hat. Denn hier bekommen auch die eine Prämie, die 0 Jahre gearbeitet haben.
f.) Noch besser ist das:
Dauer,Alter:Integer;
Hier kommen nach e. auch die dran die -3 Jahre gearbeitet haben (wie das gehen soll weiß ich zwar nicht, aber rein rechnerisch ginge es). Dann aber kämen auch die dran, die noch nicht geboren sind ca. -1 Jahr
Integer ist gut, Word ist besser, da er keine negativen Werte zulässt.
Ist alles nicht so wild wenn keine Fehler bei der Eingabe passieren. Ansonsten gut gemacht
Hmm... und könntet ihr mir vielleicht sagen, ob es notwendig ist später zum Beispiel als Hobbyprogrammierer selber Klassen zu definieren und zu schreiben oder werden die Klassen reichen, die Delphi oder FreePascal einem vorgeben ?
Du wirst auch ohne auskommen können. Aber ab einem bestimmten Punkt wird dir etwas fehlen und du wirst anfangen zu basteln um auf eine (eigene) Klasse zu verzichten. Es wird dann aufwendiger zu programmieren, nicht unmöglich.