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.
101101Von rechts nach links bzw. von oben nach unten gelesen ergibt das die richtige Eingabe von
001001
110010110010
. Der Automat erkennt und addiert dann jeweils zwei Ziffern, also
1 + 1 = 0 Ü 1Die Ausgabe ist daher
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
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 12oder (richtige Zahlen)
42312010
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
Automat, der 2 Ziffern addiert und bei Übertrag weitere 2 Ziffern berücksichtigt (Ende der Eingabe mit '\n'
).
Abonnieren Posts [Atom]
Kommentar veröffentlichen