| HalfAdderV2.java |
1 /**
2 * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
3 * Halbaddierer mit Array von Gattern
4 */
5 public class HalfAdderV2 {
6 public static void main(String[] args) {
7
8 // Eingänge des Halbadierers: (Pseudo-) Gatter ohne Operation
9 Gate x = new Gate();
10 Gate y = new Gate();
11
12 // ein Halbadierer besteht aus 6 Gattern
13 Gate[] gate = new Gate[6];
14
15 // Aufbau des Halbadierers aus den Gattern
16 gate[0] = new Gate("NOT", x); // NOT x
17 gate[1] = new Gate("NOT", y); // NOT y
18 gate[2] = new Gate(gate[0], "AND", y); // (NOT x) AND y
19 gate[3] = new Gate(x, "AND", gate[1]); // x and (NOT y)
20 gate[4] = new Gate(gate[2], "OR", gate[3]); // s = ((NOT x) AND y) OR (x and (NOT y))
21 gate[5] = new Gate(x, "AND", y); // c = x AND y
22
23 // Belegung der Eingänge
24 x.setValue(true);
25 y.setValue(false);
26
27 // Halbadierer schaltet: Durchführung der Operationen aller Gatter (Reihenfolge!)
28 for (int i=0; i<gate.length; i++)
29 gate[i].operate();
30
31 // Ergebnis
32 boolean s = gate[4].getValue(); // sum
33 boolean c = gate[5].getValue(); // carry
34
35 System.out.println("sum = " + s);
36 System.out.println("carry = " + c);
37
38 }
39
40 }
41