Bedingungen in X/Y Matrix abbilden

OP #7051879
Lesenswert?

Ich habe mal vor über 25 Jahren ein Programm in Clipper geschrieben und 
bin an einer Stelle nicht mehr weiter gekommen. Nach sehr langer 
Programmierabstinenz versuche ich mich heute mal wieder an einem kleinen 
Programm :-)
Es geht darum z.B. folgende Abfragen zu erstellen:
WENN Land=Deutschland UND es ist kein Wochenende UND die Uhrzeit ist 
18Uhr OR später DANN rufe Funktion yxz auf.
...
...

Diese Mehrfachabfrage von Bedingungen hatte mich damals zum verzweifeln 
gebracht und ich bat einen Kollegen um Hilfe. Der hat kurz überlegt und 
gemeint da gebe es was was er mal im BBL Studium gelernt hat, und 
zeichnet eine Matrix (x/y Diagramm) auf ein Blatt Papier und bildet da 
die ganzen Abfragen ab und ruck zuck konnte man damit die 
IF/THEN/ELSE/AND/OR Abfragen programmiertechnisch definieren und alles 
lief sauber durch.

Weiß jemand wie man diese Matrix erstellt bzw. wie diese "Technik" 
heist?
Gast #7051943
Lesenswert?

Solche Diagramme kann man einsetzen, wenn man das Regelsystem 
vereinfachen will (z.B. auf minimale Anzahl Vergleiche).  Dazu muss es 
aber erstmal vereinfachbar sein.  Dein Beispiel ist es nicht - dazu 
bräuchtest du viele solcher Bedingungen, die sich teilweise überlappen 
(z.B. mehrere Länder mit gleicher Uhrzeit).  Man könnte sagen: dein 
Beispiel ist, durch das Trennen des Zeitpunkts in Wochentag und Uhrzeit, 
bereits die optimierte Version.

Dein Beispiel schreibt man einfach runter:
1
  if (land == DEUTSCHLAND && wochentag < SAMSTAG && zeit >= 18*60)
2
    xyz()

Ich persönlich habe solche Diagramme in meinem Leben nie gebraucht - mit 
etwas Überlegen kommt man meist auf gute Lösungen (wie deine oben). 
Dazu kommt, dass die optimalen oft ohne diese Diagramme nicht mehr 
nachvollziehbar oder erweiterbar sind.  Wo es (automatisiert) genutzt 
wird, ist in Optimierern zur Codegenerierung 
(PAL/FPGA/Programmiersprachen).  Dann schreibt man aber das 
verständliche Regelwerk und überlässt dem Compiler die Optimierung.
#7052168
Lesenswert?

Früher hiess das mal Wahrheitswertetabelle.

Brauchen aber nur Anfänger und das ist Schulstoff in Mathematik. D.h. 
man sollte sich das aus einem guten Schulbuch rauslesen können, 
inklusive Fingerübungen.

Die Klammersetzung ist nicht-trivial sobald mehrere AND und OR 
Verknüpfungen in der Bedigung aufrtreten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren