[SOLVED] COMP2540 Assignment2 -A space-delimited infix expression

35.00 $

Programming resource
Digital learning resource
Category:
✓ Practical programming resource
✓ Suitable for guided study and reference
✓ Tutor guidance available when needed

Description

Rate this product

 

For this assignment, you will write a computer program to evaluate arithmetic expressions represented as text (a space-delimited infix expression). For example, the string​ “1​ ​+​ ​2​ ​+​ ​(3​ ​*​ ​4)”​ ​would​ ​evaluate​ ​to​ ​15​.​ ​Your​ ​program​ ​should:

  1. Read​ ​arithmetic​ ​expressions​ ​in​ ​infix​ ​format​ from​ ​​input​ ​text​ ​file ​(​ ​10​ ​points)
  2. Validate ​ the​ ​ infix​ ​ expression​ ​ (10 ​ points)​
  3. Using Stack as ADT convert the infix expression into a postfix expression. ​(30 points)
  4. Using​ ​Stack​ ​as​ ​ADT​ ​evaluate​ ​the​ ​postfix ​expression​​ ​from​ step​ ​ 3​ ​ (30​ ​ ​points)
  5. Display the data in the stack before and after each pop and push operation ​(20 points)

 

You must handle the unary negation operator. You may use built-in functions in C or Java to handle the power operator (e.g., 2^3 =8) The usual order of operations is in effect:

  • Parentheses​ ​have​ ​higher​ ​precedence ​ evaluated​ ​ left-to-right​
  • The ^ operator has higher precedence than unary negation operator, and other binary​ ​operators​ ​(*,​ ​/, ​ ​+,​ ​and​ ​-)
  • The unary negation operator – has higher precedence than the binary operators, and​ ​is​ ​evaluated ​ right-to-left​ ​ (​ right-associative)
  • The ​ *​ ​ and​​ /​ ​​have​ higher​​ ​precedence​ ​than​ ​+​ ​and ​
  • All ​ binary​ ​ operators​ ​ are​ ​ ​evaluated ​ ​left-to-right​ ​(left-associative)

 

Your program must read n number of a space-delimited infix expression from an input text​ ​file​ ​and​ ​evaluate​ ​them,​ ​where​ ​each ​​line​ ​represents​ ​an​ ​infix​ ​expression.

Examples:

Input:

(​ ​25​ +​ ​ 30​ ​ )​  ​*​​  2​ ​ ^​​  (​ ​ 2​ ​ +​ ​ 1​​  )​

30​ ​/​ ​2 ​ +​ ​ 5​ ​ *​ ​ 2​

-3​ ​^ ​​2​ ​+​ ​10

(​ ​6​ ​+​ ​(​ ​–​ ​3​ ​)​ ​–​ ​1)

 

Output:

440

25

1

2

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.