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?
Thorsten S. schrieb: > > Weiß jemand wie man diese Matrix erstellt bzw. wie diese "Technik" > heist? Eventuell Karnaugh-Veitch-Diagramm ?
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.
Google mal nach konjunktive disjunktive Normalform verienfachen oder Wahrheitstabelle https://de.m.wikipedia.org/wiki/Konjunktive_Normalform Sg
Thorsten S. schrieb: > Weiß jemand wie man diese Matrix erstellt bzw. wie > diese "Technik" heist? "Entscheidungstabellentechnik"?
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.
Suchst Du evtl. nach dem Begriff "Nassi-Shneiderman-Diagramm"? Gruß WIRO
Ich danke euch vielmals. Ich bin jetzt auf dem richtigen Weg :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.