DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   Computer Science and Software Design (http://www.daniweb.com/forums/forum14.html)
-   -   What do I need to do for this ? (http://www.daniweb.com/forums/thread124091.html)

alannabrittany May 13th, 2008 6:16 pm
What do I need to do for this ?
 
Problem
Math


Input File: MathIn.txt
Output File: MathOut.txt
Project File: Math


Mathematicians on the planet Earth, write math expressions using in-fixed notation. In this notation, math operators are written between the operands they operate on
(e.g., 2 + 3). On Mars, math strings are written in post-fixed form. In this notation, math operators are written after the two operands they operate on (e.g., 2 3 +).

The nice thing about post-fixed notation is that we don’t need rules of precedence to decide what math operator should be evaluated first. For instance, in the in-fixed math string 6 + 4 / 2, the rules of precedence dictate that we should divide before we add. Without these rules, there is an ambiguity in the expression. The same math expression written in post fixed notation is 4 2 / 6 +.

Fortunately programmers who write translators are from Mars, and they translate math expressions from in-fixed to post-fixed notation before evaluating them. Thus, we need not worry about the rules of precedence at run time.

To evaluate a post-fixed string, we start at the left most character and examine characters until we find an operator. Once an operator is found, it is applied to the two operands immediately before it, and then the operand and the two operators in the post-fixed string are replaced with the result. Then we continue from this point, repeating the procedure. When we reach the end of the string, there will only be one item left in the string, the result. Thus the in-fixed string 5 6 2 + 4 / - is equivalent to the post-fixed string
5 - (6 + 2) / 4, both of which evaluate to 3.

Inputs
The input file will contain math strings in post-fixed notation, one per line. Operands will consist of one digit. Operators and operands will be separated by one space. There will be no more than 80 characters in the math expressions.

Outputs
There will be one line of output for each math expression. The line will contain the value of the math expression.

Sample input
1 5 9 + 8 – +
5 6 2 + 4 / -
4 7 9 8 * + 2 + -

Sample Output
7
3
77

sarehu May 14th, 2008 12:28 am
Re: What do I need to do for this ?
 
What do you mean "what do I need to do"? You need to write a program that meets the specifications. For example:

perl -pe '1 while (s^(-?[.\d]+) (-?[.\d]+) ([-+*/])(?!\d)^"$1 $3 $2"^ee)'

alannabrittany May 14th, 2008 10:23 pm
Re: What do I need to do for this ?
 
Quote:

Originally Posted by sarehu (Post 606421)
What do you mean "what do I need to do"? You need to write a program that meets the specifications. For example:

perl -pe '1 while (s^(-?[.\d]+) (-?[.\d]+) ([-+*/])(?!\d)^"$1 $3 $2"^ee)'



i mean what should i write for the code in java

Salem May 15th, 2008 1:10 am
Re: What do I need to do for this ?
 
Well at last you've posted what you're going to use to implement it.

Post your attempt in this forum.
http://www.daniweb.com/forums/forum9.html

Evaluating RPN expressions typically uses a stack and goes like this
- see a number, push it onto the stack
- see an operator, pop the required number of operands off the stack, evaluate and push the result.
Repeat until end of input.

jwenting May 19th, 2008 11:25 am
Re: What do I need to do for this ?
 
of course the reason you need to do it is to get a decent grade for your homework...

Stereolad May 22nd, 2008 1:59 pm
Re: What do I need to do for this ?
 
I've just registered on here (hi all) but I am noticing a bit of a tend with the homework posts. Why not have a try, then post your efforts and get some feedback. You'll learn a lot more that way. I'm sure someone can recommend a good book about common algorithsm.

Gareth


All times are GMT -4. The time now is 10:43 pm.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC