This is the syntax highlighted version of And.java.
/*************************************************************************
* Compilation: javac And.java
* Execution: java And
*
* AND gate.
*
*************************************************************************/
public class And extends Circuit {
// 2 inputs and 1 output
public And() { super(2, 1); }
public void propagate() {
outAt(0).setSignal(Ternary.and(inAt(0).isOn(), inAt(1).isOn()));
}
/////////////////////////////////////////////////////////////////////////
// test client
public static void main(String[] args) {
// build AND circuit with two inputs and one output
Circuit and = new And();
Wire input0 = and.inAt(0);
Wire input1 = and.inAt(1);
Wire output = and.outAt(0);
// set inputs and show
System.out.println(input0.isOn() + " " + input1.isOn() + " " + output.isOn());
input1.turnOff();
System.out.println(input0.isOn() + " " + input1.isOn() + " " + output.isOn());
input1.turnOn();
System.out.println(input0.isOn() + " " + input1.isOn() + " " + output.isOn());
input0.turnOff();
System.out.println(input0.isOn() + " " + input1.isOn() + " " + output.isOn());
input1.turnOff();
System.out.println(input0.isOn() + " " + input1.isOn() + " " + output.isOn());
input0.turnOn();
System.out.println(input0.isOn() + " " + input1.isOn() + " " + output.isOn());
input1.turnOn();
System.out.println(input0.isOn() + " " + input1.isOn() + " " + output.isOn());
}
}
Last updated: Thu May 27 11:28:00 EDT 2004
.
Copyright © 2004, Robert Sedgewick and Kevin Wayne.