Entwickler-Ecke

Sonstiges (Delphi) - Die kleinste/größte Zahl in einem Array finden


dkx - Mo 26.05.03 17:58
Titel: Die kleinste/größte Zahl in einem Array finden
Hallo,

da ich in der Schule Delphi lerne, stehe ich nun vor einer Klausur.
Es geht hierbei um (für euch) extrem leichte Dinge.
An einer dieser "leichten" Sachen hänge ich nun aber schon die ganze Zeit fest und kann mich nicht mehr erinnern wie ich es lösen kann:

Ein Array ist mit Zahlen gefüllt, nun möchte ich herausfinden, welche Zahl die größte/kleinste ist. Das kann doch nicht so schwer sein...

Also helft mir bitte schnell! Vielen Dank.
Anton

Moderiert von user profile iconTino: Titel geändert.


GruppeCN - Mo 26.05.03 18:03

Ein Integer Array???

Ich denke, dass es so eine Funktion gibt, kenne sie aber nicht.

Wie wäre es mit einer Schleife, die den ganzen Array durchläuft?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
    for i:=0 to 10 do begin
      if (zahlen[i] > zahl) then begin
        zahl := zahlen[i];
      end;
    end;
    Edit1.Text := Inttostr(zahl);
end;


Das Beispiel wurde mit einem Array mit 11 Integer werten gemacht.

// Edit Code hinzugefügt


dkx - Mo 26.05.03 18:08

ja genau, ein integer array.

und mit einer for-schleife hatte ich das in erinnerung - an recht viel mehr kann ich mich dann auch nicht erinnern.
Irgendwie wurde in der Schleife dann der Wert mit dem nächst größeren verglichen glaube ich.
Aber das bekomme ich jetzt nicht mehr hin :(


tommie-lie - Mo 26.05.03 18:14

Eine Funktion kenne ich nicht, aber die macht man sich selbst:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  num: Integer;
begin
  num := 0;
  for i := low(arrayto high(arraydo
    if array[i] > num then
      num := array[i];
end;

Ist jetzt ungetestet und aus'm Stehgreif, aber so in etwa sollte das klappen. In der Variable num ist dann am Ende der höchste Wert im Array.


dkx - Mo 26.05.03 18:30

ok, vielen Dank für die schnelle Hilfe !
Das war genau das was ich gesucht habe!


Brueggendiek - Di 27.05.03 02:19

Hallo Leute!

So wie hier zweimal prinzipiell gleich gepostet kann das nicht funzen!

Es wird ein Integer-Array verwendet - und da können auch negative Werte drin sein!!!

Mein Lösungsvorschlag:
die Ergebnisvariable mit dem 1. Arraywert vorbelegen (nicht 0) und dann vom 2. bis letzten Element vergleichen!

Gruß

Dietmar Brüggendiek


MKehrer - Di 27.05.03 07:50

wie wärs den mit fun MaxIntValue definiert in der Unit Math?

Trotzdem ist es besser wenn man sich alles erst mal selbst aus den Fingern saugt. So erkennt man oft erst, welche Probleme dahinterstecken.