Step 7 Klammersetzung in SCL

spirit

Level-1
Beiträge
961
Reaktionspunkte
23
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi ihr Lieben,

ich hatte versucht was über das Klammersetzen in SCL zu finden - bin aber nicht ganz schlau geworden. Habe nämlich ab und an ein Zufallsprodukt und bin nicht sicher ob es an der Klammer liegt ...


Kann folgendes Beispiel so

Ventil := Merker_1 AND Merker_2 OR Eingang_1;

oder muss es so

Ventil := (Merker_1 AND Merker_2) OR Eingang_1;

programmiert werden?


Gibt es also in SCL auch so etwas wie Punkt vor Strich in der Mathematik? :confused:
 
Hallo!

Kommt drauf an wie du was verknüpfen willst.

Das erste und zweite ist identisch, da von der Rangfolge her zuerst die Klammer ausgewertet wird, dann AND, danach kommt OR.

Was anderes wäre das hier:
Ventil := Merker_1 AND (Merker_2 OR Eingang_1);


EDIT:

dies hat auch eigentlich nichts mit SCL zu tun, in anderen Programmiersprachen ist die Rangfolge gleich, also zuerst Klammer, und AND/UND kommt vor OR/ODER.
 
Zuviel Werbung?
-> Hier kostenlos registrieren

EDIT:

dies hat auch eigentlich nichts mit SCL zu tun, in anderen Programmiersprachen ist die Rangfolge gleich, also zuerst Klammer, und AND/UND kommt vor OR/ODER.


Ah ok, das eben wusste ich nicht so genau ...

Das würde also bedeuten in meinem Beispiel ohne Klammer schaltet der Ausgang nur dann, wenn entweder Merker_1 und Merker_2 TRUE sind oder Eingang_1 TRUE ist. Stimmt's so?
 
Ah ok, das eben wusste ich nicht so genau ...

Das würde also bedeuten in meinem Beispiel ohne Klammer schaltet der Ausgang nur dann, wenn entweder Merker_1 und Merker_2 TRUE sind oder Eingang_1 TRUE ist. Stimmt's so?

Genau. ;)

Also im Prinzip wie Mathe, zuerst Klammer, dann Punkt (AND) vor Strich (ODER).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... aber so ganz vorsichtshalber kann man (im Zweifel) die erwünschte Klammer auch unnötigerweise setzen - das schadet nie und erhöht manchmal sogar die Übersicht ...

Gruß
Larry
 
Das wollt ich auch erst vorschlagen, hab es dann aber gelassen, da es im Zweifelsfall sogar noch mehr Fehler bringen kann als ohne Klammer (z.B. Klammer falsch gesetzt).
 
Wie gesagt, wenn man, aus welchem Grund auch immer, die "unnötigen" Klammern falsch setzt.

Das Problem, dass man die Klammern falsch setzt, musst Du selber lösen. Der Compiler hält sich an die Regeln, die in der Hilfe und der allgemeinen Syntax akribisch genau definiert sind. Wer die Regeln nicht kennt oder beachtet wird umgehend durch das System bestraft.

Da ich in den verschiedenen Sprachen auf verschiedenen Systemen programmiere, setze ich IMMER Klammern, wo etwas komplizierter wird.

Die kleinen aber feinen Unterschiede zwischen PL/M, C, C++, C#, ST, PASCAL sind sonst eine Falle, in die man immer wieder tappt.
 
Zurück
Oben