• Gruß zum Sonntag,
    hier mal eine UDF zum lösen einer PLA-Matrix. Wer Lust und Laune hat, der kann gerne einen Simulator schreiben, mit dem man PLAs bauen kann und entsprechend die Ergebnisse durchkalkuliert und ausgibt.
    Da Dokumentation nicht ganz meine Stärke ist, versuche ich mich hier mal so klar wie möglich auszudrücken.

    Der erste Parameter ist ein PLA-Array, 3-Dimensional.
    Die erste Dimension des Arrays bestimmt die Anzahl der Reihen des PLA-Feldes.
    Die zweite Dimension des Arrays bestimmt die Anzahl der Spalten des PLA-Feldes.
    Die dritte Dimension besitzt 3 Elemente, welche die Eigenschaften & Zustände des PLA-Feldes angeben:
    [0] ist das Gatter, welches dieses Feld vertritt.
    [1] ist das X, welches dieses Feld annimmt
    [2] ist das Y, welches dieses Feld annimmt.
    Zur Initialisierung des Arrays wird das Feld mit [Zeilen] x [Spalten] aufgespannt und danach die Gatter belegt, also [0] einer Zeile x Spalte.
    Der zweite Parameter ist ein eindimensionales Array, in welchem ihr die Zustände eurer Eingabevariablen gespeichert sind. Hier entspricht die erste Zeile auch der ersten Zeile eures Gatters (in der Pdf: [0] = x, [1] = y, [2] = z).

    Die solvePLAMatrix Funktion errechnet selbst, wo sich die UND und ODER Ebene voneinander trennt. Daher muss lediglich die Matrix sowie die Eingabevariablen übergeben werden.

    Als Ergebnis erhaltet ihr einen 1-Dimensionalen Array zurück, der folgenden Aufbau hat:
    [0...Anzahl der Eingabevariablen] = die Rückgabewerte der UND-Zeilen, also im Prinzip x1, x2, x3, x...
    [/\ + 1] = "---" - Einfach nur ein Trennstrich, falls man die Ergebnisse durchlaufen will ohne die Matrix zu kennen
    [/\ + 1..Größe der ODER-Zeilen] = das Ergebnis der Funktion f1, f2, f3, ...
    [/\ + 1] = "---" wieder ein Trennstrich, falls man die Ergebnisse der Funktionen durchlaufen will ohne die Matrix zu kennen
    [/\ + 1..Anzahl der Spalten] = Die Ausgabe der einzelnen Konjunktionen

    Viel Gerede, vermutlich nicht ganz einleuchtend, also habe ich mal was kleines aufgemalt um es verständlich(er) zu machen:
    [Blockierte Grafik: http://i.epvpimg.com/xCFxd.png]

    UDF:

    plaMatrixSolver.au3


    Damit es vielleicht einleuchtend wird, wie alles aufgebaut ist, hier auch nochmal ein Script welches es für das Beispiel auf dem Papier zeigt:

    Beispiel.au3

    Wer Lust und Laune hat kann ja einen Simulator schreiben, mit dem man die PLAs sowie Eingabewerte direkt in der GUI erstellen kann und sich die Ergebnisse ausgeben lassen kann.
    Grüße - Xorianator