AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Variablen vergleichen

Ein Thema von Delphi-Narr · begonnen am 23. Mai 2010 · letzter Beitrag vom 25. Mai 2010
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 17:31
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

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

Liebe Grüße!
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 17:38
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
Lars
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 17:42
Ok, danke. Dann werde ich das in ein Array packen...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#4

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 18:25
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 18:49
Viel weniger Code wird dabei aber auch nicht herauskommen
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 18:52
Aber auf jeden Fall übersichtlicher. Oder sorgt vorher dafür, dass die Variablen keinen vorhandenen Wert annehmen können
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 18:53
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.
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 18:57
Volle Zustimmung, kein Widerspruch
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#9

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 19:05
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Mehrere Variablen vergleichen

  Alt 23. Mai 2010, 19:09
Lieber eine Liste mit Integern oder Extendedwerten
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:53 Uhr.
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