1204 boolver Vereinfachen von bool'schen Ausdrücken
Kategorie:String
Klasse:mittel
Eingabe:String
Ausgabe:String
Abzugebende Files: boolver.txt, boolver.java

Kurzbeschreibung:

Vereinfachen von Boolschen Ausdrücken (Disjunktion von 2 Vollkonjunktionen)

Allgemeine Hinweise:

Aufgabenstellung:

Ihr Programm soll einen Boolsche Ausdruck der Form einlesen und wenn möglich vereinfachen.

Die in den beiden Klammern befindlichen Ausdrücke sind Vollkonjunktionen.

Die Vereinfachung kann nur dann durchgeführt werden, wenn sich die beiden Vollkonjunktionen nur durch genau eine Negierung voneinenader untescheiden.

Sind die Bedingungen für eine Vereinfachung erfüllt, so ist das Ergebnis der Vereinfachung der 1.Teilausdruck ohne die sich im 1. und 2. Teilausdruck unterscheidende Variable.

Bsp.:

bzw., wenn die beiden Ausdrücke identisch sind dann ist das Ergebnis der 1. Teilausdruck.

Eingabedaten:

Ein zu vereinfachender Ausdruck wird als String der Form "(<1.Ausdruck>)(<2.Ausdruck>)" eingelesen.
Die Konjunktionen (UND-Verknüpfungen) in den Teilausdrücken bestehen aus einer Auflistung von Variablen ("a" bis maximal "z" => maximal 26 verschiedenen Variablen) ohne Trennzeichen.
Variable in negierter Form haben ein vorgestelltes "-" Erlaubte Zeichen sind also '(', ')', '-' und die Kleinbuchstaben a-z.
In den Teilausdrücken darf jede Variable max. 1 mal auftreten.
Die Reihenfolge der Variablen in den Teilausdrücken muß nicht sortiert sein! Keiner der Teilausdrücke darf leer sein.

Ausgabedaten:

Bei korrekten Eingabesätzen soll Ihr Programm das Ergebnis der Vereinfachung entsprechend dem Eingabeformat bzw., wenn nicht vereinfachbar die Meldung "NICHT VEREINFACHBAR" gefolgt von einem Zeilenvorschub, ausgeben.

Fehlerbehandlung:

Sind die eingegebenen Daten inhaltlich nicht korrekt oder erfüllen nicht die Bedingungen (z.B. zuviele Spielzüge), so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
(abfg)(ac-b)

(acdb)(a-dcb)

Ausgabedaten
NICHT VEREINFACHBAR

(acb)

Bemerkung: Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:

java boolver < boolver.i1 > boolver.out1

Das erzeugte File boolver.out1 können Sie dann mit dem mitgelieferten Outputfile boolver.o1 vergleichen.