Ich brauche Hilfe bei einem Lazarus Programm. Kann mir jemand weiterhelfen?
Hallo,
Ich muss für den Unterricht ein Programm mit Lazarus erstellen, bei welchem die größte von 3 Zahlen ausgegeben wird. Diese Zahlen kann ich mir selbst aussuchen. Ich habe schon einiges herumprobiert, jedoch hat es nicht geklappt. Weiß jemand weiter?
LG
4 Antworten
Du sollst auf 3 Zahlen dir größte raussuchen? Denk mal nach... wie machst du das von Hand? Und genau das tippst du jetzt in den Code....
Formatier deinen Code mal bitte ordentlich, das ist ja grauenhaft.
Zudem: Überdenke mal wie du die Prüfungen machst... da fehlt definitiv was...
Ich bin soweit, dass ich jeweils 3 mal 2 Zahlen miteinander vergleiche und doch stimmt etwas nicht. Das Programm funktioniert nur wenn die größte Zahl nicht die erste ist. Deswegen bin kich sehr verwirrt.
1. Ohne Code kann dir keiner sagen, was an deinem Code falsch is...
2. Dann hast du iwas vergessen... siehe 1.
uses Math;
procedure TForm1.Button1Click(Sender:TObject); var zahlen: Array[0..2] of Float; begin zahlen[0] := strtofloat(edit1.text); zahlen[1] := strtofloat(edit2.text); zahlen[2] := strtofloat(edit3.text); edit4.text := floattostr(MaxValue(zahlen)); end.
Hab hier leider gerade keinen ObjectPascal-Compiler zur Hand aber das sollte doch funktionieren. Vergiss bitte die manuelle Prüfung mit if/else. Quasi jede Programmiersprache bietet hierfür entsprechende Funktionen.
Ich habe das ausprobiert und es funktioniert. Jetzt habe ich noch eine Frage aus reinem Interesse: Wofür steht bei den Variablen das of Float? Vielen Dank nochmals.
Float steht für Kommazahl - ein Array aus Zahlen mit (möglicherweise) Nachkommastellen. Wenn du nur Ganzzahlen erlauben willst musst du den Datentyp Integer wählen und strtoint anstatt strtofloat verwenden.
http://www.freepascal.org/docs-html/rtl/math/maxvalue.html
Maxvalue returns the largest value in the data array with integer or float values
uses Math; ... MaxValue(zahlen_array);
Tut mir wirklich leid, aber das verstehe ich leider nicht wirklich, weil wir das in der Schule noch nicht hatten. Aber trotzdem Danke für deine Hilfsbereitschaft.
@triopasi Ich weiß, dass ist nicht sehr professionell, aber wiegesagt haben wir noch nicht soviel dazu gelernt. Aber vielleicht kannst du mir ja trotzdem helfen...

Ich habe den Quellltext als Antwort gepostet.