Ich hätte auch noch einen Vorschlag. Mein verfahren geht den array durch und speichert in einem vergleichs array, wie oft die gefundene zahl vorkommt. Dannach prüfe ich, ob die werte alle gleich 1 sind.
Delphi-Quellcode:
var MyArray: array [1..9] of Integer;
{...}
procedure TestMyArray;
var i, CurrInt: integer;
TestArray: array [1..9] of integer;
Valid: boolean;
begin
//Erstmal alles im testarray auf 0 setzen.
for i:=1 to 9 do
TestArray[i]:=0;
Valid:=true; //fangen wir mal positiv an
for i:=1 to 9 do
begin
CurrInt:=MyArray[i]; //die aktuelle zahl auslesen
try
TestArray[CurrInt]:=TestArray[CurrInt]+1; //und im testarray eintragen
if TestArray[CurrInt]<>1 then //prüfen, ob die zahl schon
begin
Valid:=false; //mal vorgekommen ist
break;
end;
except
Valid:=false; //wenn was nicht stimmt
end;
end;
if Valid=true then
ShowMessage('Alles stimmt!')
else
ShowMessage('Nix is!');
end;