INTRODUCTION TO COMPUTER SCIENCE
Robert Sedgewick and Kevin Wayne


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.