Boolean Algebra Worksheet
Boolean Algebra Worksheet
Instructions
Use Java boolean notation: &&
(AND), ||
(OR), !
(NOT)
Variables: A, B, C, D represent boolean values (true or false)
Part 1: Apply DeMorgan’s Laws
Simplify the following expressions using DeMorgan’s laws:
-
!(A && B)
-
!(A || B || C)
-
!(!A && B)
-
!(A && !B)
-
!((A || B) && C)
-
!(A && B && !C)
Part 2: Truth Tables
Create complete truth tables for each of the following expressions:
-
A && (B || C)
-
!A || (B && C)
-
(A || B) && (!A || C)
-
A && B || !A && C
Part 3: Which Identities Are True?
For each statement, write TRUE or FALSE:
-
A && true = A
-
A || false = false
-
A && !A = false
-
A || (A && B) = A
-
A && A = A
-
!(A && B) = !A || !B
Part 4: Java Code Analysis
Given the following Java code:
boolean x = true;
boolean y = false;
boolean z = true;
if (x && y) {
System.out.println("Line A");
} else if (!x || z) {
System.out.println("Line B");
} else {
System.out.println("Line C");
}
if (x || (!y && z)) {
System.out.println("Line D");
}
if (!(x && !z)) {
System.out.println("Line E");
} else if (y || z) {
System.out.println("Line F");
} else {
System.out.println("Line G");
}
Questions:
- What does the first if-else block print?
- Does “Line D” get printed?
- What does the second if-else block print?
- If we changed
z = false
, what would be the complete output?
Answer Key
Part 1: DeMorgan’s Laws
!A || !B
!A && !B && !C
A || !B
!A || B
(!A && !B) || !C
!A || !B || C
Part 2: Truth Tables
1. A && (B || C)
A | B | C | B||C | A&&(B||C) |
---|---|---|---|---|
T | T | T | T | T |
T | T | F | T | T |
T | F | T | T | T |
T | F | F | F | F |
F | T | T | T | F |
F | T | F | T | F |
F | F | T | T | F |
F | F | F | F | F |
2. !A || (B && C)
A | B | C | !A | B&&C | !A||(B&&C) |
---|---|---|---|---|---|
T | T | T | F | T | T |
T | T | F | F | F | F |
T | F | T | F | F | F |
T | F | F | F | F | F |
F | T | T | T | T | T |
F | T | F | T | F | T |
F | F | T | T | F | T |
F | F | F | T | F | T |
3. (A || B) && (!A || C)
A | B | C | A||B | !A | !A||C | (A||B)&&(!A||C) |
---|---|---|---|---|---|---|
T | T | T | T | F | T | T |
T | T | F | T | F | F | F |
T | F | T | T | F | T | T |
T | F | F | T | F | F | F |
F | T | T | T | T | T | T |
F | T | F | T | T | T | T |
F | F | T | F | T | T | F |
F | F | F | F | T | T | F |
4. A && B || !A && C
A | B | C | A&&B | !A | !A&&C | (A&&B)||(!A&&C) |
---|---|---|---|---|---|---|
T | T | T | T | F | F | T |
T | T | F | T | F | F | T |
T | F | T | F | F | F | F |
T | F | F | F | F | F | F |
F | T | T | F | T | T | T |
F | T | F | F | T | F | F |
F | F | T | F | T | T | T |
F | F | F | F | T | F | F |
Part 3: Which Identities Are True?
- TRUE - Identity Law
- FALSE - Should be
A || false = A
- TRUE - Complement Law
- TRUE - Absorption Law
- TRUE - Idempotent Law
- TRUE - DeMorgan’s Law
Part 4: Java Code Analysis
- Line B - First condition
x && y
is false, so checks!x || z
which isfalse || true = true
- Yes -
x || (!y && z)
=true || (true && true)
=true
- Line E -
!(x && !z)
=!(true && false)
=!false
=true
- Complete output if z = false: Line C, Line D, Line G
- First block:
!x || z
=false || false = false
, so Line C - Middle:
x || (!y && z)
=true || false = true
, so Line D - Last block:
!(x && !z)
=!(true && true)
=false
, so checky || z
=false || false = false
, so Line G
- First block:
header-includes:
-
\usepackage{fullpage}