Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Mehrere Variablen vergleichen (https://www.delphipraxis.net/151574-mehrere-variablen-vergleichen.html)

Delphi-Narr 23. Mai 2010 17:31


Mehrere Variablen vergleichen
 
Hallo, ich möchte gerne 9 Variablen vergleichen (alles integer).
Bedingung ist, dass alle unterschiedlich sind, also kein Wert doppelt vorkommen darf.
Leider kann ich nicht schreiben

Delphi-Quellcode:
if a<>b<>c<>d<>e<>f<>g<>h<>i then ...
Gibt es eine andere Möglichkeit, das zu überprüfen?

Liebe Grüße!

daywalker9 23. Mai 2010 17:38

Re: Mehrere Variablen vergleichen
 
Wenn du die in einem Array speichern würdest, wäre das für dich einfacher. Dann könntest du das mit for Schleifen lösen

Delphi-Narr 23. Mai 2010 17:42

Re: Mehrere Variablen vergleichen
 
Ok, danke. Dann werde ich das in ein Array packen...

himitsu 23. Mai 2010 18:25

Re: Mehrere Variablen vergleichen
 
Jupp, die Schleife ist keine Schlechte Idee, ansonsten mußt du ja so oder so jede Variable mit Jeder vergleichen, was natürlich 9*(9-1) Vergleiche ergibt.
Optimiert, durch Auslassung der äquivalenten Vergleiche ( a<>b = b<>a ), ergibt das ein bissl weniger:
Delphi-Quellcode:
if (a<>b) and (a<>c) and (a<>d) and (a<>e) and (a<>f) and (a<>g)
  and (a<>h) and (a<>i) and (b<>c) and (b<>d) and (b<>e) and (b<>f)
  and (b<>g) and (b<>h) and (b<>i) and (c<>d) and (c<>e) and (c<>f)
  and (c<>g) and (c<>h) and (c<>i) and (d<>e) and (d<>f) and (d<>g)
  and (d<>h) and (d<>i) and (e<>f) and (e<>g) and (e<>h) and (e<>i)
  and (f<>g) and (f<>h) and (f<>i) and (g<>h) and (g<>i) and (h<>i) then
PS: Bei der Schleife mußt du natürlich die selben Vergleiche durchführen, aber dieses läßt sich sehr leicht über zwei verschachtelte For-Schleifen in 3 Zeilchen lösen.

Wolfgang Mix 23. Mai 2010 18:49

Re: Mehrere Variablen vergleichen
 
Viel weniger Code wird dabei aber auch nicht herauskommen :(

mkinzler 23. Mai 2010 18:52

Re: Mehrere Variablen vergleichen
 
Aber auf jeden Fall übersichtlicher. Oder sorgt vorher dafür, dass die Variablen keinen vorhandenen Wert annehmen können

Matze 23. Mai 2010 18:53

Re: Mehrere Variablen vergleichen
 
Zitat:

Zitat von Wolfgang Mix
Viel weniger Code wird dabei aber auch nicht herauskommen :(

Die Code-Länge spielt überhaupt keine Rolle. Wichtig ist vorwiegend die Übersichtlichkeit und die Wartbarkeit bzw. Wiederverwendbarkeit des Codes.

Edit: Da war Markus schneller.

Wolfgang Mix 23. Mai 2010 18:57

Re: Mehrere Variablen vergleichen
 
Volle Zustimmung, kein Widerspruch :)

blauweiss 23. Mai 2010 19:05

Re: Mehrere Variablen vergleichen
 
Ich werfe folgende Idee in den Raum:

StringList verwenden mit Sorted auf TRUE und Duplicates auf dupError
alle Integer-Variablen per IntToStr dieser StringList hinzufügen
und das Ganze innerhalb try - except
-> wenn's kracht, gab's ne Doublette
oder alternativ, wenn man Exceptions nicht mag: Duplicates auf dupIgnore
-> hinterher Count überprüfen: falls kleiner als Anzahl Variablen, gab's ne Doublette

Grüße,
blauweiss

mkinzler 23. Mai 2010 19:09

Re: Mehrere Variablen vergleichen
 
Lieber eine Liste mit Integern oder Extendedwerten


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz