Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 21.12.2005
Norbert Heidenbluth Blatt 10


Uni Logo



Allgemeine Informatik I für Mathematiker/Wirtschaftsmathematiker
(WS 2005/2006)



Abgabetermin: 11. Januar 2006

Auf diesem Übungsblatt beschäftigen wir uns erneut mit dem EVA-Prinzip. In der ersten Aufgabe stellen wir nochmals eine Verbindung zu Grammatiken bzw. Automaten her, die wie vor einigen Wochen bereits kennengelernt haben. Die zweite Aufgabe wartet als Besonderheit dann mit Vorgaben nicht nur für die Ein- sondern sogar auch für die (erwartete) Ausgabe auf. Man könnte bereits von einer kleinen ``Spezifikation'' sprechen, gegen die Ihr Programm geschrieben werden soll. Dies entspricht im Kern dem Vorgehen, das man auch oftmals bei ``realen'' Softwareprojekten vorfindet.

Aufgabe 21: Der Ulmer AI1-Automat reloaded (5 Punkte)

Erinnern Sie sich noch an den ``Ulmer AI 1-Automaten'' aus Aufgabe 12? Damals haben Sie sich Tage und Nächte den Kopf über ihn zerbrochen - und jetzt? Jetzt wärmen wir ihn wieder auf, indem wir ihn in Java simulieren! Denn Ihre Aufgabe lautet schlicht und einfach:

``Schreiben Sie ein Java-Programm, das den Automaten aus Aufgabe 12 von Übungsblatt 6 simuliert, d.h. eine (beliebig lange) Zeichenfolge (``Satz'') von der Standardeingabe liest und ausgibt, ob dieser Satz von dem Automaten erkannt wird oder nicht. Selbstverständlich soll er auch überprüfen, daß als Eingabe nur die erlaubten Zeichen (Terminal-Symbole) kommen.''

Beispiel:

theseus$ java Automata
Bitte geben Sie den zu bewertenden Satz ein:
100
Der eingegebene Satz gehoert zur Grammatik!

theseus$ java Automata
Bitte geben Sie den zu bewertenden Satz ein:
10000100
Der eingegebene Satz gehoert zur Grammatik!

theseus$ java Automata
Bitte geben Sie den zu bewertenden Satz ein:
10101010
Der eingegebene Satz gehoert nicht zur Grammatik!

theseus$ java Automata
Bitte geben Sie den zu bewertenden Satz ein:
01210
Der eingegebene Satz enthaelt das unerlaubte Zeichen: 2!

Aufgabe 22: Software Engineering light (5 Punkte)

Nach 10 Wochen Informatik fühlen Sie sich mittlerweile dermaßen fit, daß Sie bei einem großen Software-Konzern anheuern um sich ein wenig Ihr Taschengeld aufzubessern.

Mit der Human Resources-Abteilung (hieß früher einfach Personalabteilung) werden Sie sich schnell einig über das Salär, der Facility Manager (hieß früher Hausmeister) überreicht Ihnen die Personal Access Card (früher: Firmen-Ausweis) und schon finden Sie sich an Ihrem desktop (Schreibtisch) als Associate Junior Programmer (``der Neue'') wieder.

Nach dem Lunch mit dem gesamten Team bekommen Sie ihre Aufgabe, pardon - Ihren Task:

``Schreiben Sie ein Java-Programm, das drei Integer-Zahlen von der Standard-Eingabe liest. Als Ausgabe liefert Ihr Programm dann, ob es sich um ein Dreieck handelt und wenn ja, um welches. Wie Sie das machen, ist mir egal - Hauptsache, unser Testroboter liefert für unsere Testeingaben die in der Spezifikation stehende Ausgabe.''

Ihr Vorgesetzter muß sofort weg zu einem wichtigen Meeting und hat keine Zeit mehr für weitere Erklärungen.

Testroboter? Spezifikation? Drei Zahlen? Dreieck? Hä? Da stehen Sie nun und ärgern sich, daß Sie zum gleichen Lohn (plus ein freies Essen täglich inklusive) nicht doch beim Fast-Food-Laden um die Ecke angefangen haben. Aber zu Ihrer Rettung kommt die hübsche Praktikantin (die hier übrigens student apprentice heißt) und erklärt Ihnen alles nochmal in Ruhe:

Na bitte, wenigstens ein normaler Mensch in dem Laden! Jetzt, wo Ihnen die Aufgabe klar ist, können Sie sich ja sogleich an die Arbeit machen!

Noch ein paar Hinweise

\resizebox{!}{8.0cm}{\includegraphics{xmastree2.eps}}


Das SAI-Team wünscht Ihnen
ein frohes Weihnachtsfest
und alles Gute für das Jahr 2006!



Fußnoten

... bilden1
Dazu könnte man zum Beispiel die Dreiecksungleichung prima verwenden$\ldots$
... Datei2
Das ist hier natürlich sinnvollerweise die Datei testdaten!


Norbert Heidenbluth 2005-12-20