Một số trình thông dịch định giá biểu thức trung tố trực tiếp bằng phân tích đệ quy xuống (recursive descent), không cần chuyển qua hậu tố, nhưng trước tiên phải kiểm tra tính hợp lệ của dấu ngoặc.
Cho biểu thức trung tố gồm toán hạng là số thực không âm (dạng số nguyên hoặc có phần thập phân, ví dụ 12, 3.5), các toán tử hai ngôi +,−,×,÷,^ (+ - * / ^, ^ kết hợp phải, ưu tiên cao nhất, phép chia là chia thực) và dấu ngoặc đơn. Không có dấu trừ một ngôi.
ERROR.ERROR.Ví dụ: ( 1 + 2 ) * 3 cho kết quả 9.0000.
Một dòng duy nhất chứa biểu thức, các token cách nhau bởi đúng một khoảng trắng.
In ra giá trị biểu thức với đúng 4 chữ số thập phân (ví dụ 9.0000), hoặc in ERROR nếu ngoặc không hợp lệ hoặc có chia cho 0.
Ví dụ:
Đầu vào:
3 + 4 * 2
Đầu ra:
11.0000
Đầu vào:
( 1 + 2 ) * 3
Đầu ra:
9.0000
Đang tải editor...