Xây dựng bộ phân tích cú pháp đệ quy cho biểu thức logic gồm các hằng 0 (sai), 1 (đúng), biến là một chữ cái in hoa (A–Z), phép phủ định ! (NOT), phép hội & (AND), phép tuyển | (OR) và dấu ngoặc đơn, theo văn phạm (độ ưu tiên tăng dần: | thấp nhất, rồi &, rồi ! cao nhất):
Ví dụ: với A&B|C, A=1,B=0,C=1: (A∧B)∨C=(1∧0)∨1=1, in ra true.
Dòng 1: biểu thức logic (có thể chứa khoảng trắng, bỏ qua khi phân tích). Dòng 2 (có thể rỗng): danh sách gán giá trị cho biến, dạng TÊN=giátrị (giátrị là 0 hoặc 1) cách nhau bởi khoảng trắng, ví dụ A=1 B=0 C=1. Biến không xuất hiện trong danh sách gán có giá trị mặc định là 0 (sai).
In ra đúng true nếu biểu thức đúng, hoặc true false nếu sai (chữ thường).
Ví dụ:
Đầu vào:
!(A&B)
A=1 B=1
Đầu ra:
false
Đầu vào:
A&B|C
A=1 B=0 C=1
Đầu ra:
true
Đang tải editor...