Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Trình biên dịch] Đánh giá biểu thức lô-gic not/and/or bằng đệ quy

    Cho văn phạm biểu thức lô-gic với ba phép toán not, and, or và hai hằng T (đúng), F (sai), theo thứ tự ưu tiên giảm dần not>and>or\text{not} > \text{and} > \text{or}not>and>or:

    Expr→Term (or Term)∗Term→Factor (and Factor)∗Factor→not Factor∣( Expr )∣T∣F\begin{aligned} \text{Expr} &\to \text{Term}\ ({\tt or}\ \text{Term})^* \\ \text{Term} &\to \text{Factor}\ ({\tt and}\ \text{Factor})^* \\ \text{Factor} &\to {\tt not}\ \text{Factor} \mid (\ \text{Expr}\ ) \mid {\tt T} \mid {\tt F} \end{aligned}ExprTermFactor​→Term (or Term)∗→Factor (and Factor)∗→not Factor∣( Expr )∣T∣F​

    Các token trong một biểu thức được phân tách bằng đúng một dấu cách. Viết bộ phân tích cú pháp đệ quy để đánh giá giá trị chân lý của biểu thức.

    Ví dụ: T and F or T được phân tích thành (T and F) or T=F∨T=TRUE(\text{T}\ \text{and}\ \text{F})\ \text{or}\ \text{T} = F \lor T = \texttt{TRUE}(T and F) or T=F∨T=TRUE.

    • Định dạng đầu vào:

      Dòng đầu là số nguyên nnn (1≤n≤1000)(1 \le n \le 1000)(1≤n≤1000). nnn dòng tiếp theo, mỗi dòng một biểu thức lô-gic gồm các token T, F, and, or, not, (, ) cách nhau bởi đúng một dấu cách, đảm bảo hợp lệ theo văn phạm trên.

    • Định dạng đầu ra:

      In ra nnn dòng, mỗi dòng là TRUE hoặc FALSE (chữ in hoa) — giá trị của biểu thức tương ứng.

    Ví dụ:

    Đầu vào:

    1
    not F
    

    Đầu ra:

    TRUE
    

    Đầu vào:

    1
    T
    

    Đầu ra:

    TRUE
    

    Đang tải editor...