Frage von HansQuarkWurf, 36

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

Antwort
von Dory1, 20

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);
Kommentar von HansQuarkWurf ,

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.

Antwort
von triopasi, 20

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....

Kommentar von HansQuarkWurf ,

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.

Kommentar von triopasi ,

1. Ohne Code kann dir keiner sagen, was an deinem Code falsch is...

2. Dann hast du iwas vergessen... siehe 1.

Kommentar von HansQuarkWurf ,

Ich habe den Quellltext als Antwort gepostet.

Kommentar von triopasi ,

Formatier deinen Code mal bitte ordentlich, das ist ja grauenhaft.

Zudem: Überdenke mal wie du die Prüfungen machst... da fehlt definitiv was...

Antwort
von HansQuarkWurf, 14

@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...

Antwort
von Dory1, 12
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.

Kommentar von HansQuarkWurf ,

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.

Kommentar von Dory1 ,

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.



Kommentar von HansQuarkWurf ,

Verstehe.

Keine passende Antwort gefunden?

Fragen Sie die Community