added nand not nor enxor exor gates
and two bsp from teacher.
This commit is contained in:
parent
50603f1e70
commit
574c58f1c5
@ -7,6 +7,8 @@ public class AndGate extends LogicGate {
|
|||||||
|
|
||||||
public AndGate(final DigitalInput... inputvals) {
|
public AndGate(final DigitalInput... inputvals) {
|
||||||
super(inputvals);
|
super(inputvals);
|
||||||
|
if (inputvals.length > 8)
|
||||||
|
throw (new TooManyInputsException());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,2 +1,14 @@
|
|||||||
public class EnxorGate {
|
public class EnxorGate extends ExorGate{
|
||||||
|
public EnxorGate(int inputnr) {
|
||||||
|
super(inputnr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public EnxorGate(DigitalInput... inputvals) {
|
||||||
|
super(inputvals);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getOutput() {
|
||||||
|
return !super.getOutput();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,24 @@
|
|||||||
public class ExorGate {
|
public class ExorGate extends LogicGate {
|
||||||
|
public ExorGate(int inputnr) {
|
||||||
|
super(inputnr);
|
||||||
|
if (inputnr > 2)
|
||||||
|
throw (new TooManyInputsException());
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExorGate(DigitalInput... inputvals) {
|
||||||
|
super(inputvals);
|
||||||
|
if (inputvals.length > 2)
|
||||||
|
throw (new TooManyInputsException());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getOutput() {
|
||||||
|
boolean first = getInput(0).getValue();
|
||||||
|
for (int i = 1; i < getInputNumber(); i++) {
|
||||||
|
if (getInput(i).getValue() != first)
|
||||||
|
return true; // if there is one change return true
|
||||||
|
first = getInput(i).getValue();
|
||||||
|
}
|
||||||
|
return false; // all values are the same...
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.out.println("bla");
|
// teacher example:
|
||||||
|
|
||||||
OrGate o1 = new OrGate(2);
|
OrGate o1 = new OrGate(2);
|
||||||
AndGate a2 = new AndGate(2);
|
AndGate a2 = new AndGate(2);
|
||||||
// Verbinde Eingang 0 mit dem Ausgang vom OR - Gate.
|
// Verbinde Eingang 0 mit dem Ausgang vom OR - Gate.
|
||||||
@ -13,12 +12,69 @@ public class Main {
|
|||||||
// Setze Eingang 1 auf 1.
|
// Setze Eingang 1 auf 1.
|
||||||
o1.getInput(1).setValue(0);
|
o1.getInput(1).setValue(0);
|
||||||
|
|
||||||
|
|
||||||
|
/** some definition tests with better syntax (; */
|
||||||
AndGate gt = new AndGate(
|
AndGate gt = new AndGate(
|
||||||
new DigitalInput(false),
|
new DigitalInput(0),
|
||||||
new DigitalInput(true),
|
new DigitalInput(true),
|
||||||
new DigitalInput(o1),
|
new DigitalInput(o1),
|
||||||
new DigitalInput('H'));
|
new DigitalInput('H')
|
||||||
|
);
|
||||||
|
|
||||||
System.out.println(a2.getOutput());
|
LogicGate or = new AndGate(
|
||||||
|
new DigitalInput(0),
|
||||||
|
new DigitalInput(1)
|
||||||
|
);
|
||||||
|
System.out.println(or.getOutput());
|
||||||
|
|
||||||
|
LogicGate nor = new NandGate(
|
||||||
|
new DigitalInput(0),
|
||||||
|
new DigitalInput(1)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/** bsp 1 **/
|
||||||
|
|
||||||
|
boolean x = false;
|
||||||
|
boolean y = true;
|
||||||
|
|
||||||
|
LogicGate s = new OrGate(
|
||||||
|
new DigitalInput(new AndGate(
|
||||||
|
new DigitalInput(new NotGate(
|
||||||
|
new DigitalInput(x)
|
||||||
|
)),
|
||||||
|
new DigitalInput(y)
|
||||||
|
)),
|
||||||
|
new DigitalInput(new AndGate(
|
||||||
|
new DigitalInput(x),
|
||||||
|
new DigitalInput(new NotGate(
|
||||||
|
new DigitalInput(y)
|
||||||
|
))
|
||||||
|
))
|
||||||
|
);
|
||||||
|
|
||||||
|
LogicGate c = new AndGate(
|
||||||
|
new DigitalInput(x),
|
||||||
|
new DigitalInput(y)
|
||||||
|
);
|
||||||
|
System.out.println("Bsp1");
|
||||||
|
System.out.println("output of c: " + c.getOutput());
|
||||||
|
System.out.println("output of s: " + s.getOutput());
|
||||||
|
|
||||||
|
/** bsp. 2 **/
|
||||||
|
boolean xx = true;
|
||||||
|
boolean yy = false;
|
||||||
|
|
||||||
|
LogicGate ss = new ExorGate(
|
||||||
|
new DigitalInput(xx),
|
||||||
|
new DigitalInput(yy)
|
||||||
|
);
|
||||||
|
LogicGate cc = new AndGate(
|
||||||
|
new DigitalInput(xx),
|
||||||
|
new DigitalInput(yy)
|
||||||
|
);
|
||||||
|
System.out.println("Bsp2");
|
||||||
|
System.out.println("output of c: " + cc.getOutput());
|
||||||
|
System.out.println("output of s: " + ss.getOutput());
|
||||||
}
|
}
|
||||||
}
|
}
|
14
eu.heili/NandGate.java
Normal file
14
eu.heili/NandGate.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
public class NandGate extends AndGate{
|
||||||
|
public NandGate(int inputnr) {
|
||||||
|
super(inputnr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public NandGate(DigitalInput... inputvals) {
|
||||||
|
super(inputvals);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getOutput() {
|
||||||
|
return !super.getOutput();
|
||||||
|
}
|
||||||
|
}
|
@ -1,2 +1,14 @@
|
|||||||
public class NorGate {
|
public class NorGate extends OrGate{
|
||||||
|
public NorGate(int inputnr) {
|
||||||
|
super(inputnr);
|
||||||
|
}
|
||||||
|
|
||||||
|
public NorGate(DigitalInput... inputvals) {
|
||||||
|
super(inputvals);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getOutput() {
|
||||||
|
return !super.getOutput();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,14 @@
|
|||||||
public class NotGate {
|
public class NotGate extends LogicGate{
|
||||||
|
public NotGate() {
|
||||||
|
super(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public NotGate(DigitalInput inputval) {
|
||||||
|
super(inputval);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getOutput() {
|
||||||
|
return !getInput(0).getValue();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
public class OrGate extends LogicGate {
|
public class OrGate extends LogicGate {
|
||||||
public OrGate(final int inputnr) {
|
public OrGate(final int inputnr) {
|
||||||
super(inputnr);
|
super(inputnr);
|
||||||
|
if (inputnr > 8)
|
||||||
|
throw (new TooManyInputsException());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrGate(final DigitalInput... inputvals) {
|
public OrGate(final DigitalInput... inputvals) {
|
||||||
super(inputvals);
|
super(inputvals);
|
||||||
|
if (inputvals.length > 8)
|
||||||
|
throw (new TooManyInputsException());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user