Freitag, 3. April 2009

 

Addieren von Binärzahlen mittels Automat

Schreiben Sie ein Programm, welches zwei Binärzahlen mit Hilfe eines Automaten addiert. Das Programm soll korrekt addieren, wenn die Eingabe in richtiger Weise aufbereitet ist, d.h. es kommen jeweils eine Ziffer der ersten Zahl und eine Ziffer der zweiten Zahl. Die Ziffern kommen richtig von rechts nach links. Ist eine Zahl kürzer, so wird sie mit Nullen aufgefüllt.

Sind die Zahlen z.B. 101101 und 1001, so muss die Eingabe 110010110010 sein.

101101
001001
Von rechts nach links bzw. von oben nach unten gelesen ergibt das die richtige Eingabe von 110010110010.

Der Automat erkennt und addiert dann jeweils zwei Ziffern, also

1 + 1     = 0 Ü 1
0 + 0 + 1 = 1 Ü 0
1 + 0 + 0 = 1 Ü 0
1 + 1 + 0 = 0 Ü 1
0 + 0 + 1 = 1 Ü 0
1 + 0 + 0 = 1 Ü 0
Die Ausgabe ist daher 011011. Umgedreht ergibt dies das Ergebnis von 110110.
Probe
101101
001001
------
110110
U U

Nennen Sie das Programm (die Klasse) Addierwerk.java und schreiben Sie zwei weitere Programme (Klassen) Input.java und Output.java, welche die Ein- und Ausgabe aufbereiten.

Input.java nimmt zwei (Kommandozeilen-)Argumente und gibt von rechts nach links gelesen jeweils ein Zeichen des ersten und ein Zeichen des zweiten Arguments aus. Ist ein Argument kürzer als das andere, so sind Nullen an dieser Stelle auszugeben.
Zum Beispiel:

java Input 1234 12
42312010
oder (richtige Zahlen)
java Input 101101 1001
110010110010
Input.java kümmert sich nicht um richtige Eingaben.

Output.java liest von stdin und gibt die Zeichen in umgekehrter Reihenfolge wieder aus.
Zum Beispiel:

java Output
1234
4321

Alle drei Programme kombiniert, ermöglichen es Binärzahlen zu addieren.
Zum Beispiel:

java Input 101101 1001 | java Addierwerk | java Output
110110

Bild Addierwerk 2 Ziffern + Übertrag
Automat, der 2 Ziffern addiert und bei Übertrag weitere 2 Ziffern berücksichtigt (Ende der Eingabe mit '\n').

Labels: , ,


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]