def AND(A, B):
return A and B
def OR(A, B):
return A or B
def NOT(A):
return not A
print("A B | AND | OR | NOT A")
print("---------------------------")
for A in [True, False]:
for B in [True, False]:
print(f"{A:<5} {B:<5} | {AND(A, B):<4} | {OR(A, B):<3} | {NOT(A)}")
A B | AND | OR | NOT A
---------------------------
1 1 | 1 | 1 | False
1 0 | 0 | 1 | False
0 1 | 0 | 1 | True
0 0 | 0 | 0 | True
%%javascript
// Define logic gate functions
function AND(A, B) {
return A && B;
}
function OR(A, B) {
return A || B;
}
function NOT(A) {
return !A;
}
function NAND(A, B) {
return !(A && B);
}
function NOR(A, B) {
return !(A || B);
}
function XOR(A, B) {
return A !== B;
}
// Display the results of the logic gates
function displayGateOperations(A, B) {
console.log("A: " + A + ", B: " + B);
console.log("AND: " + AND(A, B));
console.log("OR: " + OR(A, B));
console.log("NOT A: " + NOT(A));
console.log("NAND: " + NAND(A, B));
console.log("NOR: " + NOR(A, B));
console.log("XOR: " + XOR(A, B));
console.log("-----------------------------");
}
// Main logic gate simulator function
function logicGateSimulator() {
console.log("Logic Gate Simulator");
console.log("Enter 'exit' to quit");
while (true) {
let A_input = prompt("Enter value for A (true/false): ").trim();
if (A_input.toLowerCase() === "exit") {
break;
}
let B_input = prompt("Enter value for B (true/false): ").trim();
if (B_input.toLowerCase() === "exit") {
break;
}
// Convert inputs to boolean
let A = (A_input.toLowerCase() === 'true');
let B = (B_input.toLowerCase() === 'true');
// Display the results
displayGateOperations(A, B);
}
}
// Run the logic gate simulator
logicGateSimulator();
<IPython.core.display.Javascript object>