INSIDETecBase3rdPartyDie Logik hinter Bedingungen richtig verstehen

Die Logik hinter Bedingungen richtig verstehen

Der Computer arbeitet bei der Ausführung eines Programms rein logisch. Logik entspricht aber nicht immer der menschlichen Denkweise. Wir meinen, etwas sei doch "logisch", in Wirklichkeit ist es aber nur vernünftig.

Als Beispiel ein Makro, das z.B. jede Minute abläuft:

Die SONST-Falle


wenn 
ErschütterungssensorBabybett = "an" und Mami = "anwesend" dann
 TüütTüütMami einschalten
sonst
 TüütTüütPapi einschalten
endewenn

Vernünftig ist: Schreit das Baby und Mami ist zu Hause, soll die Mami geweckt werden; sonst der Papi.

Logisch ist: Der arme Papi kommt nur zur Ruhe, wenn die Mami da ist und das Baby schreit. Ist die Mami abwesend, wird er auf jeden Fall geweckt. Ist sie anwesend, und das Baby schläft ganz ruhig, wird er auch geweckt.

Warum? In beiden Fällen ist nur eine der mit UND verknüpften Bedingungen erfüllt, weshalb das SONST ausgeführt wird.

MERKE:

Bei mit UND verknüpften Bedingungen ganz besonders vorsichtig mit SONST umgehen! Im Zweifelsfalle verschachteln, dann ist alles vernünftig und logisch.

wenn ErschütterungssensorBabybett = "an" dann
 wenn Mami = "anwesend" dann
 TüütTüütMami einschalten
 sonst
 TüütTüütPapi einschalten
 endewenn
endewenn

Die UND/ODER-Falle


Ein ähnlicher Unterschied wie zwischen Vernunft und Logik besteht zwischen Vernunft und Mathematik.

Wir Menschen denken immer mit, wenn wir eine Reihe von Bedingungen auswerten. Der Computer befolgt aber die Regeln der Mathematik und da gibt es ein "Gesetz", das da lautet UND bindet stärker als ODER.

wenn Mami = "anwesend" oder Papi = "anwesend" und Uhrzeit = "20:00:00" dann
 TVSteckdose einschalten
endewenn

Vernünftig ist: Wenn Mami oder Papi zuhause ist, Tagesschau einschalten.

Mathematisch richtig ist: Mami sieht eh den ganzen Tag fern, also läuft der Kasten immer, wenn sie da ist. Papi interessiert sich nur für die Tagesschau.

MERKE:

Im Zweifelsfall besser gleichzeitige UND und ODER in einer WENN-Bedingung vermeiden, da man in Homeputer in WENN-Bedingungen keine Klammern setzen kann. Solche Konstrukte werden immer nach mathematischen Gesetzen ausgewertet. Auch hier im Zweifelsfalle verschachteln.

wenn Mami = "anwesend" oder Papi = "anwesend" dann
 wenn Uhrzeit = "20:00:00" dann
 TVSteckdose einschalten
 endewenn
endewenn

Kommentare  

+2 # MIRO 2010-05-11 18:09
Hi,
ich suche jemanden, der sich mit der Programmierung von HOMEPUTER CL auskennt.
Bitte um
Hilfe

VG
Miro
Antworten Antworten mit Zitat Zitieren
0 # anli 2010-06-08 22:15
Hallo Miro!
Hast Du es schon bei www.fhz-forum.de probiert? Dort gibt es einen
speziellen Bereich rund um homeputer. Andernfalls kannst Du Dich sicherlich auch direkt an den Hersteller wenden - dort ist man ebenfalls sehr hilfsbereit!
Ich selbst habe mich leider noch nicht
genügend mit homeputer auseinandergesetzt um Dir qualifiziert helfen zu können...
Liebe Grüße, André
Antworten Antworten mit Zitat Zitieren

Neue Kommentare:

  • Hallo zusammen, ich versuche seit Tagen verzweifelt, für die Einbindung von FS20 Komponenten an der Homematic Zentrale (1.505), den CUL-Stick (V3.3) von BUSWARE zu konfigurieren. Ich bin streng nach Anleitung aus dem Net... Weiter lesen
  • Hallo, ich habe nun den cux Daemon installiert und die Firmware des CUL geschrieben, bei Status wird folgendes angezeigt: ======================================== USB 1-2 - {CUX} CUL868 [COMM] - /dev/ttyACM0 - V 1.44 CUL... Weiter lesen
  • Hallo, ich habe bei mir den Dimmer HM-LC-Dim1TPBU-FM in Betrieb. Soweit funktioniert alles.Wie komme ich aber an die weiteren Känäle des Dimmers. Bei mir werden in den Geräteeinstellungen die Kanäle Ch:2 und Ch:3 nicht a... Weiter lesen
Kommentare