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] Thông dịch biểu thức ký pháp tiền tố

    Cho một biểu thức số học viết theo ký pháp tiền tố (Ba Lan), trong đó toán hạng là các số nguyên (có thể âm, dấu trừ viết liền trước chữ số, ví dụ -5) và toán tử là một trong bốn ký hiệu +, -, *, /. Biểu thức là một dãy token cách nhau bởi khoảng trắng, tuân theo văn phạm đệ quy: E  ::=  soˆˊ nguyeˆn  ∣  toaˊn_tử E EE \;::=\; \text{số nguyên} \;\mid\; \text{toán\_tử}\ E\ EE::=soˆˊ nguyeˆn∣toaˊn_tử E E

    Hãy thông dịch (tính giá trị) biểu thức. Phép chia / là phép chia thực (số thực), đề đảm bảo mẫu số luôn khác 0 trong mọi test.

    Ví dụ: + 3 * 4 5 được hiểu là 3+(4×5)=233 + (4 \times 5) = 233+(4×5)=23, in ra 23.000000.

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

      Một dòng duy nhất chứa biểu thức tiền tố hợp lệ — danh sách token cách nhau bởi khoảng trắng.

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

      In ra giá trị của biểu thức, là một số thực với đúng 6 chữ số thập phân (định dạng %.6f).

    Ví dụ:

    Đầu vào:

    -7
    

    Đầu ra:

    -7.000000
    

    Đầu vào:

    + 3 * 4 5
    

    Đầu ra:

    23.000000
    

    Đang tải editor...