Registriert seit: 7. Nov 2004
639 Beiträge
|
Re: Prüfen ob Integer in Array?
14. Apr 2006, 09:31
Zitat von leddl:
"in" gibt es nur für Sets (Mengen).
Könntest aber auch einfach mal schauen, inwiefern sich dein Problem vielleicht auch mit Sets lösen lassen würde.
was ist denn genau der unterschied von sets und arrays?
ich habe gestern zum ersten mal mit arrays gearbeitet, und sets habe ich noch nie verwendet
aber mir ist es ja egal ob ich ein set oder ein array nehme, hauptsache es funktioniert.
EDIT: ich habs jetzt mal mit einem set probiert. hier die funktion, die überprüft ob jede zahl von 1 bis 9 einmal enthalten ist:
Delphi-Quellcode:
function TForm1.CorrectIntegers(i1, i2, i3, i4, i5, i6, i7, i8, i9: integer): boolean;
var s : set of 1..9;
begin
result := false;
Include(s, i1);
Include(s, i2);
Include(s, i3);
Include(s, i4);
Include(s, i5);
Include(s, i6);
Include(s, i7);
Include(s, i8);
Include(s, i9);
if (1 in s) and (2 in s) and (3 in s) and (4 in s) and (5 in s) and
(6 in s) and (7 in s) and (8 in s) and (9 in s) then result := true;
end;
und so habe ich die function dann getestet:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage(booltostr(correctintegers(5, 4, 6, 7, 2, 3, 8, 1, 9), true)); // das müsste true geben
showmessage(booltostr(correctintegers(1, 9, 2, 8, 3, 7, 4, 6, 5), true)); // das auch true
showmessage(booltostr(correctintegers(1, 2, 3, 4, 5, 6, 8, 8, 9), true)); // und das false
showmessage(booltostr(correctintegers(1, 2, 3, 4, 5, 5, 7, 8, 9), true)); // und nochmals false
end;
bei den ersten zwei showmessages steht true drin, stimmt ja auch so. beim dritten sollte false stehen, kommt aber true raus
das vierte stimmt wieder, da kommt false raus...
weiss jemand was das problem ist?
|