Aussagenlogische Formel in C implementieren?

1 Antwort

Im Grunde ist F ein Ausdruck und kann in vielen Programmiersprachen auch als solcher implementiert werden.

In C ginge das folgendermaßen:

  • Klammern sind Klammern
  • Unds sind "&&"
  • Oders sind "||"
  • Negationen sind "!"

Und das kannst du dann per Substitution auf den gegebenen Ausdruck anwenden um den Ausdruck in C zu bekommen. Die Operatorpräzedenz sollte auch passen.

Eine Funktion, die den Ausdruck auswertet sähe dann so aus:

bool <funktionsname>(bool <parameter0>, bool <parameter1>, ...){
    return <ausdruck>;
}

Den Bool-Typ musst du evtl. erst inkludieren. Gegebenenfalls selber definieren (einfach als int).

Um alle erfüllenden Belegungen zu finden iterierst du über alle Lösungen und gibst alle aus für die die Bedingung erfüllt ist.