Bài 5: Dữ liệu lôgic – Lý thuyết, Sơ đồ tư duy

Hình vuông trong mặt phẳng tọa độ minh họa p AND q với p là |x| ≤ 1, q là |y| ≤ 1

I. Lý thuyết trọng tâm

1. Các giá trị chân lí và các phép toán lôgic

a) Mệnh đề và giá trị lôgic

Mệnh đề là một khẳng định chỉ có thể đúng hoặc sai, không thể vừa đúng vừa sai. Giá trị “Đúng” hay “Sai” được gọi là giá trị chân lí (hay giá trị lôgic) của mệnh đề.

Ví dụ:

  • “Hà Nội là Thủ đô của Việt Nam” → mệnh đề đúng
  • “9 là số nguyên tố” → mệnh đề sai
  • Trong toán học: “$3 > 5$” → sai; “$2 \times 3 = 6$” → đúng

Đại lượng lôgic là đại lượng chỉ nhận một trong hai giá trị: Đúng hoặc Sai. Để ngắn gọn, người ta biểu diễn:

$$\text{Đúng} = 1 \qquad \text{Sai} = 0$$

Trong các ngôn ngữ lập trình, biến và hàm cũng có thể mang giá trị lôgic.

b) Bốn phép toán lôgic cơ bản

Từ các mệnh đề đơn, ta có thể tạo ra mệnh đề mới bằng cách ghép chúng qua các phép toán lôgic. Bốn phép toán quan trọng nhất:

Phép toán Tên gọi Ý nghĩa ngắn gọn
AND Phép nhân lôgic (phép hội) Đúng khi cả hai đều đúng
OR Phép cộng lôgic (phép tuyển) Sai khi cả hai đều sai
XOR Cộng loại trừ (eXclusive OR) Đúng khi hai vế khác nhau
NOT Phép phủ định Đảo ngược giá trị

Bảng chân trị đầy đủ (Bảng 5.2 SGK):

$p$ $q$ $p$ AND $q$ $p$ OR $q$ $p$ XOR $q$ NOT $p$
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 0 1

Cách nhớ nhanh:

  • AND: chỉ cho kết quả 1 khi cả $p$ và $q$ đều bằng 1 (cả hai đúng mới đúng).
  • OR: chỉ cho kết quả 0 khi cả $p$ và $q$ đều bằng 0 (cả hai sai mới sai, có ít nhất một đúng thì đúng).
  • XOR: cho kết quả 1 khi $p$ và $q$ khác nhau (giống nhau thì sai).
  • NOT: đơn giản là đảo ngược — đúng thành sai, sai thành đúng.

c) Biểu thức lôgic và thứ tự ưu tiên

Biểu thức lôgic là một dãy các đại lượng lôgic nối với nhau bằng các phép toán lôgic, có thể dùng dấu ngoặc để chỉ định thứ tự.

Ví dụ: $p$ AND ($q$ OR $r$)

Thứ tự ưu tiên phép toán:

  1. Trong ngoặc — ưu tiên cao nhất
  2. NOT (phủ định) — thực hiện trước nếu không có ngoặc
  3. AND và OR — ưu tiên ngang nhau, thực hiện tuần tự từ trái sang phải
Hình vuông trong mặt phẳng tọa độ minh họa p AND q với p là |x| ≤ 1, q là |y| ≤ 1
Hình vuông trong mặt phẳng tọa độ minh họa p AND q với p là |x| ≤ 1, q là |y| ≤ 1

d) Phép toán lôgic trên dãy bit

Các phép toán lôgic không chỉ áp dụng cho từng bit mà còn mở rộng cho dãy bit: thực hiện phép toán trên từng cặp bit tương ứng của hai dãy.

Cộng lôgic (OR) hai dãy bit
Cộng lôgic (OR) hai dãy bit

Ví dụ: Phép OR hai byte:

  1 0 0 1 0 0 1 1
  0 0 1 0 0 0 1 0
OR ─────────────────
  1 0 1 1 0 0 1 1

Mỗi cột được tính độc lập: cột 1 → $1$ OR $0$ = $1$; cột 3 → $0$ OR $1$ = $1$; v.v.

Câu hỏi kiểm tra nhanh (SGK – Bảng 5.3): Cho bảng giá trị biểu thức $p$ AND NOT $q$. Phương án nào có kết quả sai?

Phương án $p$ $q$ $p$ AND NOT $q$
A 0 1 0
B 1 0 1
C 0 0 1
D 1 1 0

Đáp án: Phương án C sai.

Giải thích: $p = 0$, $q = 0$ → NOT $q$ = NOT $0$ = $1$ → $p$ AND NOT $q$ = $0$ AND $1$ = 0 (không phải 1 như bảng ghi).

Kiểm tra nhanh các phương án khác:

  • A: NOT 1 = 0 → 0 AND 0 = 0 ✓
  • B: NOT 0 = 1 → 1 AND 1 = 1 ✓
  • D: NOT 1 = 0 → 1 AND 0 = 0 ✓

2. Biểu diễn dữ liệu lôgic

Trong đời sống, rất nhiều sự vật/hiện tượng tồn tại ở hai trạng thái đối lập: sáng/tối, bật/tắt, có/không, đóng/mở… Tất cả đều có thể quy về dạng lôgic Đúng/Sai.

Trong tin học: Chỉ cần 1 bit là đủ biểu diễn dữ liệu lôgic:

$$1 = \text{Đúng (True)} \qquad 0 = \text{Sai (False)}$$

Tuy nhiên, một số ngôn ngữ lập trình có quy ước riêng:

Ngôn ngữ Giá trị Đúng Giá trị Sai
Quy ước chung 1 0
Python Số bất kì khác 0 Số 0
Một số ngôn ngữ khác Kí tự “T” (True) Kí tự “F” (False)

II. Phương pháp giải các dạng bài tập

Dạng 1: Tính giá trị biểu thức lôgic

Phương pháp:

  • Bước 1: Xác định giá trị lôgic (0 hoặc 1) của từng đại lượng trong biểu thức.
  • Bước 2: Thực hiện các phép toán theo thứ tự ưu tiên: ngoặc → NOT → AND, OR (từ trái sang phải).
  • Bước 3: Tra bảng chân trị để tính kết quả từng phép toán.

Mấu chốt: Luôn tính NOT trước (trừ khi có ngoặc), sau đó mới tính AND/OR.

Bài tập mẫu (SGK – Luyện tập, bài 2): Tại sao $p$ AND NOT $p$ luôn bằng 0, còn $p$ OR NOT $p$ luôn bằng 1?

Lời giải:

Xét tất cả các trường hợp giá trị của $p$:

$p$ NOT $p$ $p$ AND NOT $p$ $p$ OR NOT $p$
1 0 $1$ AND $0$ = 0 $1$ OR $0$ = 1
0 1 $0$ AND $1$ = 0 $0$ OR $1$ = 1

Giải thích:

  • $p$ AND NOT $p$ luôn bằng 0 vì: $p$ và NOT $p$ luôn có giá trị ngược nhau — một cái bằng 1 thì cái kia bằng 0. Mà AND chỉ cho kết quả 1 khi cả hai đều bằng 1, điều này không bao giờ xảy ra → kết quả luôn là 0.
  • $p$ OR NOT $p$ luôn bằng 1 vì: trong hai giá trị $p$ và NOT $p$, luôn có ít nhất một giá trị bằng 1. Mà OR cho kết quả 1 khi có ít nhất một vế bằng 1 → kết quả luôn là 1.

Dạng 2: Thực hiện phép toán lôgic trên dãy bit

Phương pháp:

  • Bước 1: Viết hai dãy bit thẳng hàng (căn phải, bổ sung bit 0 bên trái nếu dãy ngắn hơn).
  • Bước 2: Thực hiện phép toán lôgic (AND, OR, XOR, NOT) trên từng cặp bit tương ứng theo cột, từ phải sang trái.
  • Bước 3: Ghép các kết quả lại thành dãy bit kết quả.

Bài tập mẫu: Thực hiện các phép toán sau trên dãy bit:

a) $10010011$ AND $01100110$

Vị trí 7 6 5 4 3 2 1 0
Dãy 1 1 0 0 1 0 0 1 1
Dãy 2 0 1 1 0 0 1 1 0
AND 0 0 0 0 0 0 1 0

Kết quả: $10010011$ AND $01100110$ = $00000010$

b) $10010011$ OR $00100010$

Vị trí 7 6 5 4 3 2 1 0
Dãy 1 1 0 0 1 0 0 1 1
Dãy 2 0 0 1 0 0 0 1 0
OR 1 0 1 1 0 0 1 1

Kết quả: $10010011$ OR $00100010$ = $10110011$

Dạng 3: Ứng dụng lôgic trong mạch điện

Phương pháp:

Quy ước: công tắc đóng = 1, công tắc mở = 0; đèn sáng = 1, đèn tắt = 0.

  • Mạch nối tiếp (hai công tắc mắc liên tiếp): Đèn chỉ sáng khi cả hai công tắc đều đóng → Đèn = $K_1$ AND $K_2$.
  • Mạch song song (hai công tắc mắc song song): Đèn sáng khi ít nhất một công tắc đóng → Đèn = $K_1$ OR $K_2$.
Hình 5.5 – Mạch nối tiếp K1, K2 và Hình 5.6 – Mạch song song K1, K2
Hình 5.5 – Mạch nối tiếp K1, K2 và Hình 5.6 – Mạch song song K1, K2

Bài tập mẫu (SGK – Vận dụng):

a) Mạch nối tiếp (Hình 5.5):

$K_1$ $K_2$ Đèn = $K_1$ AND $K_2$
1 (đóng) 1 (đóng) 1 (sáng)
1 (đóng) 0 (mở) 0 (tắt)
0 (mở) 1 (đóng) 0 (tắt)
0 (mở) 0 (mở) 0 (tắt)

→ Đèn = $K_1$ AND $K_2$. Dòng điện chỉ chạy qua khi cả hai công tắc đều đóng.

b) Mạch song song (Hình 5.6):

$K_1$ $K_2$ Đèn = $K_1$ OR $K_2$
1 1 1
1 0 1
0 1 1
0 0 0 (tắt)

→ Đèn = $K_1$ OR $K_2$. Chỉ cần một trong hai công tắc đóng là đèn sáng.

III. Sơ đồ tư duy

1. Giá trị chân lí và mệnh đề

  • 1.1. Mệnh đề: khẳng định chỉ đúng hoặc sai
  • 1.2. Giá trị lôgic: Đúng = 1, Sai = 0
  • 1.3. Đại lượng lôgic: chỉ nhận giá trị Đúng hoặc Sai

2. Bốn phép toán lôgic

  • 2.1. AND (nhân lôgic): cả hai đúng mới đúng
  • 2.2. OR (cộng lôgic): cả hai sai mới sai
  • 2.3. XOR (cộng loại trừ): khác nhau thì đúng
  • 2.4. NOT (phủ định): đảo ngược giá trị

3. Biểu thức lôgic

  • 3.1. Dãy đại lượng lôgic nối bằng phép toán lôgic
  • 3.2. Thứ tự ưu tiên: ngoặc → NOT → AND, OR (trái → phải)

4. Phép toán trên dãy bit

  • 4.1. Thực hiện trên từng cặp bit tương ứng
  • 4.2. Ứng dụng: xử lí dữ liệu trong máy tính

5. Biểu diễn dữ liệu lôgic

  • 5.1. Chỉ cần 1 bit: 1 = Đúng, 0 = Sai
  • 5.2. Các cách khác: True/False, T/F, số 0 và khác 0 (Python)
  • 5.3. Ứng dụng: mọi trạng thái đối lập (bật/tắt, có/không, sáng/tối)

IV. Bảng sai lầm thường gặp

Sai lầm Đính chính
Nhầm AND với OR: nghĩ AND là “có ít nhất 1 đúng thì đúng” AND chỉ đúng khi cả hai đều đúng. OR mới là “có ít nhất 1 đúng thì đúng”. Cách nhớ: AND = “và” (cần cả hai), OR = “hoặc” (chỉ cần một).
Quên thực hiện NOT trước khi tính AND/OR Trong biểu thức không có ngoặc, NOT luôn được thực hiện trước, sau đó mới tính AND và OR. Ví dụ: $p$ AND NOT $q$ → tính NOT $q$ trước, rồi mới AND với $p$.
Nhầm XOR với OR OR cho kết quả 1 khi có ít nhất một vế đúng (kể cả cả hai đúng). XOR chỉ cho 1 khi hai vế khác nhau — nếu cả hai cùng đúng thì XOR = 0.
Khi thực hiện phép toán trên dãy bit, tính cả dãy cùng lúc Phải thực hiện từng cặp bit tương ứng một cách độc lập, không được “cộng” cả dãy như cộng số nhị phân. Phép lôgic trên dãy bit không có nhớ.
Nghĩ rằng mạch nối tiếp ứng với OR Mạch nối tiếp = AND (cần tất cả công tắc đóng), mạch song song = OR (chỉ cần 1 công tắc đóng).
Cho rằng cần nhiều bit để biểu diễn dữ liệu lôgic Về lí thuyết, chỉ cần 1 bit là đủ biểu diễn dữ liệu lôgic (0 hoặc 1). Trên thực tế, một số ngôn ngữ lập trình dùng cách biểu diễn khác nhưng bản chất vẫn là hai trạng thái đối lập.
Thầy Phạm Thành Danh

Thầy Phạm Thành Danh

(Người kiểm duyệt, ra đề)

Chức vụ: Trưởng ban biên soạn môn Tin Học THPT

Trình độ: Cử nhân Sư phạm Tin học, Chứng chỉ hạng II, Chứng chỉ Tin học, Ngoại ngữ B1

Kinh nghiệm: 8+ năm kinh nghiệm tại Trường THPT Thuận Hóa