1. CÁC GIÁ TRỊ CHÂN LÍ VÀ CÁC PHÉP TOÁN LÔGIC
a) Lôgic mệnh đề
Mệnh đề là một khẳng định có tính chất hoặc đúng hoặc
sai.
Ví dụ “Hà Nội là Thủ đô của Việt Nam” là một mệnh đề đúng,
còn “9 là số nguyên tố” là một mệnh đề sai.
Các giá trị “Đúng” hay “Sai” chính là giá trị chân lí (giá trị lôgic) của mệnh đề
mà nó thể hiện. Đại lượng
lôgic là đại
lượng chỉ nhận giá trị là giá trị lôgic. Để ngắn gọn, người ta thường biểu diễn
các giá trị “Đúng” và “Sai” tương ứng là 1 và 0. Ví dụ: Trong toán học “3>5” là mệnh đề sai; “2 x 3 = 6” là mệnh đề
đúng.
Trong các ngôn ngữ lập trình, các biến hay các hàm
cũng có thể mang giá trị lôgic.
b) Các phép toán lôgic cơ bản
- AND (phép hội, còn gọi là phép nhân lôgic, được kí
hiệu bởi dấu ˄).
- OR (phép tuyển, còn gọi là phép cộng lôgic được kí
hiệu bởi dấu ˅).
- NOT (phép phủ định, được kí hiệu bởi dấu gạch ngang
trên đầu đối tượng phủ định).
Giá
trị lôgic của mệnh đề là kết quả của các phép toán được cho trong Bảng 5.2:
Biểu thức lôgic: Là một dãy các đại lượng lôgic được nối với nhau bằng
các phép toán lôgic, có thể có dấu ngoặc để chỉ định thứ tự ưu tiên thực hiện
các phép toán.
Ví dụ về biểu thức lôgic: p ˄ (q ˅ r).
Tập hợp tất cả các điểm có tọa độ (x, y) thỏa mãn (|x|
≤ 1) ˄ (|y| ≤ 1) là hình vuông trong mặt phẳng tọa độ có các cạnh song song với
các trục tọa độ, các cạnh giao với trục tung ở các tung độ 1 và -1 và với trục
hoành ở các hoành độ 1 và -1 (Hình 5.2).
- Trong một biểu thức lôgic, phép toán đặt trong dấu
ngoặc có độ ưu tiên cao nhất. Nếu không có dấu ngoặc thì phép phủ định được thực
hiện trước.
- Các phép toán lôgic ˄ và ˅ có độ ưu tiên ngang nhau,
được thực hiện tuần tự từ trái sang phải.
- Các phép toán lôgic cũng được mở rộng cho các dãy
bit.
Ví dụ, phép cộng lôgic 2 byte sẽ cộng từng cặp bit
tương ứng của 2 byte đó như trong ví dụ Hình 5.3.
- Trong cuộc sống, những sự vật/ hiện tượng có hai trạng
thái đối lập như “sáng/tối”, “bật/tắt”, “có/không” … đều có thể coi là thể hiện
của hai đại lượng lôgic “Đúng/Sai”.
- Trong tin học, quy ước 1 là
“Đúng”, 0 là “Sai”.
- Tuy nhiên, một số ngôn ngữ lập
trình có quy ước riêng, không mã hóa các đại lượng lôgic bởi 1 bit.
- Chẳng hạn:
+ Ngôn ngữ lập trình Python coi số
0 thể hiện giá trị Sai còn một số bất kỳ khác 0 thể hiện giá trị Đúng.
+ Trong tiếng Anh, đúng là True,
sai là False nên có ngôn ngữ lập trình dùng ngay hai ký tự “T” và “F” để biểu
diễn dữ liệu lôgic.