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

35.00 $

Category:

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