Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a python program. This program will involve arithmetic expressions in both inx format and postx format. Inx expressions are the ordinary arithmetic expressions we

Write a python program. This program will involve arithmetic expressions in both inx format and postx format. Inx expressions are the ordinary arithmetic expressions we are familiar with. The arithmetic operators are unary minus, unary plus, multiplication, division, modulus, addition, and subtraction. Unary plus and unary minus have just one operand, which follows the operator. Some examples are +1 and -3. The binary operators are surrounded by their operands. Some examples are 5 - 3 and 3 * 4. The precedence of these operators are the same as they are in C++ and in mathematics:
Operator Priority Associativity
unary -, unary + Highest Right to Left
*, /, % Next Highest Left to Right
binary +, binary - Lowest Left to Right
The rst part of this program will be to convert an inx expression into a postx expression. To do this, we will need to use a stack. The list type will do nicely. We can push an element onto the stack by simply using the + operator. we can pop an element from the stack by slicing: if (len(list) != 0):
top = list[len(list) - 1]
stack = stack[:-1]
return top As we scan the inx expression from left to right, when we encounter an operand, we will send it to the end of the postx output. Operators and the left parenthesis can be pushed onto the stack. Right parentheses will never go on the stack or to the output, but will cause an action.
Part 2: The second part of the program is to take an inx expression and evaluate it. This time, operands will be pushed on the stack, as we scan the string from left to right. An operator will cause popping of an operand or operands from the stack and the action of the operator will be applied to the operand(s). When the end of the postx expression is reached, the stack will have a single operand which is the answer. Program Requirements: This program will be menu driven and the menu choices will be:
1. Convert an inx expression to its equivalent postx expression form
2. Evaluate a postx expression
3. Quit the program
Use a loop to continuously prompt the user for choices 1 and 2 until the user decides to quit. All output will be displayed on the terminal screen. Your program should check for an unmatched parentheses errors.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Oracle Database Administration The Essential Reference

Authors: Brian Laskey, David Kreines

1st Edition

1565925165, 978-1565925168

More Books

Students also viewed these Databases questions

Question

5. Are my sources compelling?

Answered: 1 week ago

Question

2. What do you believe is at the root of the problem?

Answered: 1 week ago