![]() |
Mehrere Variablen auf Ungleichheit prüfen
Also ich hab mehrere Variablen (10stück) und will prüfen ob keine davon mit einer der anderen identisch ist, also keine der 10 vars darf gleich sein... hat jemand ne idee? oder gar nen algo :gruebel: :drunken:
:dp: |
Re: Mehrere Variablen auf Ungleichheit prüfen
Hallo,
sind die 10 Variabeln in einem Array? Weil dann würd es leicht gehen
Delphi-Quellcode:
Hab's nicht getestet....// variabelngleich: boolean; // variabelspeicher: array [1..10] of string; variabelngleich:=false; for i:=1 to 10 do for i2:=1 to 10 do if i2<>i then if variabelspeicher[i] = variabelspeicher[i2] then variabelngleich:=true; |
Re: Mehrere Variablen auf Ungleichheit prüfen
Die if-Bedingung wird wohl immer Gleicheit ergeben, da du immer die gleichen Arrayelemente vergleichst. ;) Du musst dir das erste Elemente nehmen, es mit allen anderen vergleichen, dann das nächste und so weiter.
|
Re: Mehrere Variablen auf Ungleichheit prüfen
Hallo,
wieso tu ich doch, oder???? |
Re: Mehrere Variablen auf Ungleichheit prüfen
Hallo Luckie,
aber das macht er doch. Ok ist nicht toll eingerückt aber eigentlich ok. Gruss Thorsten |
Re: Mehrere Variablen auf Ungleichheit prüfen
Hallo,
denk ich mir ja, dass das stimmt, jetzt war ich total verwiert, aber ich habs ausprobirt, mit eingerückten Text :-) und es geht
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,i2: byte; variabelngleich: boolean; variabelspeicher: array [1..10] of string; begin variabelspeicher[1]:='hfeo'; variabelspeicher[2]:='hoda1'; variabelspeicher[3]:='ho2wwe1'; variabelspeicher[4]:='ho321'; variabelspeicher[5]:='ho4w2'; variabelspeicher[6]:='how426'; variabelspeicher[7]:='hosda426'; variabelspeicher[8]:='hofswe426'; variabelspeicher[9]:='1'; variabelspeicher[10]:='fas1'; variabelngleich:=false; for i:=1 to 10 do for i2:=1 to 10 do if i2<>i then if variabelspeicher[i] = variabelspeicher[i2] then variabelngleich:=true; if variabelngleich then showmessage('Is was gleich'); end; |
Re: Mehrere Variablen auf Ungleichheit prüfen
Blödsinn gelöscht...
Gruss Thorsten |
Re: Mehrere Variablen auf Ungleichheit prüfen
Hallo,
wieso, das kommt ja auf's selbe hinaus... ich sage variabelngleich:=false; also keine Variabeln sind gleich und sobald Variabeln in der Schleife gleich sind, heißt es, es sind Variabeln gleich... also für mich ist das logisch |
Re: Mehrere Variablen auf Ungleichheit prüfen
Du hast recht...
Gruss Thorsten |
Re: Mehrere Variablen auf Ungleichheit prüfen
Hallo,
also ich blick nicht ganz durch... aber ich bin auch schon Hunde müde, kann gar nicht mehr gscheit denken, leg mich jetzt hin und les mir das morgen noch mal durch, vieleicht versteh ic hdann warum mein Ansatz unlogisch ist..... Also ich geh jetzt pennen, gut nacht' |
Re: Mehrere Variablen auf Ungleichheit prüfen
Hallo Green,
falls es Strings sind, stecke sie in eine sortierte TStringList (Duplicates=dupIgnore!) und prüfe, ob die Länge der Stringliste mit der Anzahl deiner Elemente übereinstimmt. Integerwerte kannst du ja zuvor mit IntToStr umwandeln. Gruß Hawkeye |
Re: Mehrere Variablen auf Ungleichheit prüfen
Zitat:
Delphi-Quellcode:
Die Funktion gibt True zurück, wenn keine gleichen Werte gefunden wurden
// var
// variabelspeicher: array [1..10] of string; FUNCTION CheckNotEqual:boolean; var i,j:integer; begin result:=false; for i:=Low(variabelspeicher) to High(variablenspeicher)-1 do for j:=i+1 to High(variablenspeicher) do if variabelspeicher[i]=variabelspeicher[j] then exit; result:=true; end; Vorteil: Es werden nicht 10*10=100 Vergleiche durchgeführt, sondern im worst case 45 und im best case nur 1 Vergleich. |
Re: Mehrere Variablen auf Ungleichheit prüfen
ich würde sagen eine SEHR unelegante lösung wäre so....
Delphi-Quellcode:
var a,b,c,d,e,f,g,h: Irgendwas;
if (a <> b) AND (a <> c) AND ..... (b <> a) AND ( b <> c)... then irgendwas |
Re: Mehrere Variablen auf Ungleichheit prüfen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz