Nhiệm vụ: Viết chương trình tính giá trị của biểu thức số học với biểu thức đầu vào
Nhiệm vụ: Viết chương trình tính giá trị của biểu thức số học với biểu thức đầu vào là biểu thức hậu tố.
Giải Chuyên đề Tin 12 Bài 1.4: Ứng dụng của ngăn xếp - Chân trời sáng tạo
Nhiệm vụ 2 trang 24 Chuyên đề Tin học 12: Nhiệm vụ: Viết chương trình tính giá trị của biểu thức số học với biểu thức đầu vào là biểu thức hậu tố.
Yêu cầu: Viết chương trình tính giá trị biểu thức số học dùng hàm chuyển biểu thức inFixtoPostfix(). Chạy chương trình trên.
Lời giải:
Sử dụng inFixtoPostfix() để chuyển biểu thức dạng trung tố sang dạng hậu tố.
Sử dụng hàm calPostfix() để tính giá trị biểu thức dạng hậu tố.
Hàm tính b op a, với a, b là toán hạng, op là toán tử:
def calculate(a, b, op): if op '+': return b+a
elif opa return b-a
elif op ==
return b*a
elif op '/':
return b/a
else:
return b**a
Hàm tính giá trị biểu thức dạng hậu tố:
def calPostfix(s): stack initStack() for op in s:
if not isoperator(op): push(stack, op)
else:
a = int(pop(stack)) b= int(pop(stack))
d = calculate(a, b, op) push(stack, d)
k = pop(stack)
return k
k = calPostfix ('245-+6*') print(k)
k = calPostfix ('243+*5-') print(k)
#Thêm tí
hạng vào stack
#Kiếm tr. nếu op là toán tử #Lấy toán hạng a ra khỏi stack
#Lấy toán hạng b ra khỏi stack
#Gọi calculate để thực hiện phép tính b op a #Thêm d vào stack
#Lấy phần tử còn lại trong stack
#Trả về kết quả
Lời giải bài tập Chuyên đề Tin 12 Bài 1.3: Ứng dụng của hàng đợi hay, chi tiết khác: