LabVIEWForum.de
Case-Structure mit Vergleich - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Case-Structure mit Vergleich (/Thread-Case-Structure-mit-Vergleich)



Case-Structure mit Vergleich - MelOl - 12.12.2007 13:24

Moin!
Vielleicht bin ich gerade zu vernagelt, aber ich finde keine Lösung:

Ich vergleiche zwei Zahlen (Fließkomma) und will in Abhängigkeit davon einen Case auswählen. Die drei Fälle sind A<B, A>B, A=B.
Ich kann jetzt natürlich dreimal nen Vergleich machen und drei true-false-Cases einbauen, aber ich wollte das elegant in einer Case-Struktur lösen. Nur klappt das nich so recht. Ich dachte mir, ich nehme die beiden Zahlen, ziehe sie voneinander ab und dann habe ich ja die Fälle "kleiner Null", "Null" und "größer Null". Ich kann aber in der Case-Struktur nur "..-1", "0", und "1.." eingeben. Da die Zahlen relativ kleine Kommazahlen sind, liegen die meisten zwischen Null und Eins.
Alle Möglichkeiten, die ich bis jetzt probiert hab, klappen nich.. ich hätte da halt gerne "<0", "0" und ">0" drinstehen, aber sowas wandelt LV in Strings um..

Ich hab so das Gefühl, als müsste das sehr einfach gehen, ist doch eigentlich ein gängiger Fall so ne Überprüfung.. ich glaub, ich geh jetzt erstmal eben Mittagessen, vielleicht kann ich danach auch wieder klar denken *g*

Gruß aus Oldenburg,
Melvin


Case-Structure mit Vergleich - jg - 12.12.2007 14:14

Hallo,

du wirst so oder so nicht um mindestens 2 Vergleiche herumkommen, da ein Vergleich ja nur True-False als Ausgabe hat, du aber 3 Cases haben willst.

Also Möglichkeit 1: 2 ineinanderverschachtelte Case-Strukturen, in der äußeren wird z.B. > Case und <= Case behandelt, im <= Case kommt dann eine weitere Case-Struktur, in der du dann = (Vorsicht mit dem = bei Float-Zahlen) und < behandelst.

Möglichkeit 2: Vor der Case-Struktur 2 Vergleiche, einmal > und einmal <. Dann aus diesen beiden Vergleichen irgendwie geschickt deine 3 Fälle zusammenbasteln, wobei du als Ausgang eine Integer-Variable brauchst. Aber da müsste ich erst mal die kleinen grauen Zellen anwerfen, und dazu fehlt mir momentan die Zeit.

Also, schneller ist auf jeden Fall Variante 1.

MfG, Jens


Case-Structure mit Vergleich - jg - 12.12.2007 15:07

OK, war doch recht einfach:

[attachment=10306]

MfG, Jens


Case-Structure mit Vergleich - MelOl - 13.12.2007 12:30

' schrieb:OK, war doch recht einfach:

[attachment=37321:Image01.png]

MfG, Jens

ja, danke, genau sowas wollte ich haben! :-)
hätte ich auch drauf kommen können, dass man sich das selber basteln muss, anstatt das direkt so eingeben zu können.. manchmal denke ich noch zu sehr in klassischen programmiersprachen *g*


Case-Structure mit Vergleich - jeffrey - 13.12.2007 13:00

' schrieb:ja, danke, genau sowas wollte ich haben! :-)
hätte ich auch drauf kommen können, dass man sich das selber basteln muss, anstatt das direkt so eingeben zu können.. manchmal denke ich noch zu sehr in klassischen programmiersprachen *g*
Hi,
wär doch noch einfacher gegangen. Beide Zahlen von einander abziehen und dann die sign- funktion, dann hat man als ausgang -1,0,1 genau das was gewollt war.
mfg jeffrey


Case-Structure mit Vergleich - jg - 13.12.2007 18:04

:wall:LOGISCH!


Case-Structure mit Vergleich - Achim - 14.12.2007 16:01

' schrieb:Alle Möglichkeiten, die ich bis jetzt probiert hab, klappen nich.. ich hätte da halt gerne "<0", "0" und ">0" drinstehen, aber sowas wandelt LV in Strings um..

Das ginge prinzipiell so: "..-1" oder "0" oder "1.."...geht halt leider nur mit Integers...

Gruß
Achim


Case-Structure mit Vergleich - MelOl - 17.12.2007 11:37

' schrieb:Hi,
wär doch noch einfacher gegangen. Beide Zahlen von einander abziehen und dann die sign- funktion, dann hat man als ausgang -1,0,1 genau das was gewollt war.
mfg jeffrey
stimmt, das is auch nich schlecht. werd ich mir mal merken, hier kommts nich auf ein paar millisekunden laufzeit an, aber vielleicht ja irgendwann mal schon :-)

' schrieb:Das ginge prinzipiell so: "..-1" oder "0" oder "1.."...geht halt leider nur mit Integers...

Gruß
Achim
ja, genau das war das problem, ich habe eben keine integer.. aber inzwischen läufts ja wunderbar, danke nochmal! :-)