Информатика · ҰБТ сұрағы №16264
Стектік калькулятор кері поляк жазбасындағы өрнекті орындайды (токендер бос орынмен бөлінген): st = [] def run(src): for t in src.split(): if t.isdigit(): st.append(int(t)) elif t == "dup": st.append(st[-1]) elif t == "swap": st[-1], st[-2] = st[-2], st[-1] else: b = st.pop() a = st.pop() st.append(a + b if t == "+" else a - b if t == "-" else a * b) return st[-1] Әр сұрақ алдыңғы сұрақтарға тәуелсіз, st жаңадан [] болып басталады деп есептеңіз (бір сұрақ ішіндегі шақырулар st-ті ортақ пайдаланады).

print(run("12 4 /")) қандай мән шығарады?

Дұрыс жауабы мен түсіндірмесі
Жауабы: 48

"/" таңбасы "+" та, "-" та емес, сондықтан соңғы тармақ (a * b) орындалады: 12 · 4 = 48. Бөлу орындалмайды.

«Python программалау тілінде алгоритмдерді программалау» тақырыбынан тағы