8 Integer Werte vergleichen

HarryH

Level-1
Beiträge
142
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe acht Integervariablen in einem Datenbaustein. Die Werte der Variablen können 0, 1, 2, 11,12,13,14,15,16 annehmen. Die Werte können in den acht Integervariablen in beliebiger Reihenfolge und Menge vorkommen.

Meine Aufgabenstellung ist, herauszufinden, ob sich in den acht Integervariablen zwei oder mehr gleiche Werte befinden. Andersherum ausgedrückt: Ich muss sicherstellen, das in den acht Integerwerten alle Werte ungleich sind.

Gibt es eine elegantere Möglichkeit als jeden Integerwert mit jedem zu vergleichen? :ROFLMAO:

Gruß HarryH
 
Nö, nur die Art und Weise wie du es machst kann elegant sein.
Die SPS kann immer nur mit 2 Zahlen gleichzeitig arbeiten.
Mehr kannst du also nicht vergleichen.

Gruß wolder
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde die Werte sortieren (Suche hier im Forum nach "Sortieren" oder auch "Bubble Sort"). Danach braucht man nur noch in aufsteigender Reihenfolge nachsehen, ob zwei Werte gleich sind.

1. Sortieren.
2. Vergleichen, ob Wert1 <> Wert 2, Wert 2 <> Wert 3 ...

Sind zwei Werte gleich, kann man Abbrechen, da die o.g. Bedingung dann nicht erfüllt ist.
 
Alternativ könnte man auch 9 Bits definieren, eins für jeden Wert, da es ja recht wenig Werte sind. Dann einfach vor jedem Durchlauf alle 9 ablöschen und die 8 Int Werte abfragen.
Also z.b. Int1 =0 (erstes Bit abfragen ob gesetzt, wenn nicht erstes Bit setzen).
Int2 = 0 -> erstes Bit abfragen ob gesetzt. Bit ist schon gesetzt -> 2 gleiche werte -> dann einfach die gewünschte Reaktion.

Nicht die eleganteste Lösung, aber für 9 Werte durchaus realisierbar und auch wesentlich schneller als z.B. Bubblesort.

Gruß
Matthias
 
Ich bin zwar nicht Kaulquappe, aber ja. Der Loop-Befehl geht nur in AWL oder SCL.

Mit FUP könntest du auch mit Sprüngen arbeiten, was in etwa gleich wäre, nur viel schwerer und unübersichtlicher.

Gruß wolder
 
Zurück
Oben