Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Expr
- {
- // Sum = product
- // = sum '+' product
- // = sum '-' product
- public double sum(String args)
- {
- for(int i = args.length(); i > 0; i--)
- {
- if(args.substring(i - 1, i).equals("+"))
- {
- return sum(args.substring(0, i - 1)) + product(args.substring(i, args.length())) ;
- }
- if(args.substring(i - 1, i).equals("-"))
- {
- return sum(args.substring(0, i - 1)) - product(args.substring(i, args.length())) ;
- }
- }
- return product(args) ;
- }
- // product = power
- // = product '*' power
- // = product '/' power
- // = product '%' power
- public double product(String args)
- {
- for(int i = args.length(); i > 0; i--)
- {
- if(args.substring(i - 1, i).equals("*"))
- {
- return product(args.substring(0, i - 1)) * power(args.substring(i, args.length())) ;
- }
- if(args.substring(i - 1, i).equals("/"))
- {
- return product(args.substring(0, i - 1)) / power(args.substring(i, args.length())) ;
- }
- if(args.substring(i - 1, i).equals("%"))
- {
- return product(args.substring(0, i - 1)) % power(args.substring(i, args.length())) ;
- }
- }
- return power(args) ;
- }
- // power = term
- // = power '^' term
- public double power(String args)
- {
- for(int i = args.length(); i > 0; i--)
- {
- if(args.substring(i - 1, i).equals("^"))
- {
- return Math.pow(power(args.substring(0, i - 1)),
- term(args.substring(i, args.length()))) ;
- }
- }
- return term(args) ;
- }
- // term = number
- public double term(String arg)
- {
- return Double.valueOf(arg) ;
- }
- public static void main(String [] args)
- {
- Expr E = new Expr() ;
- String expr = "" ;
- for(String arg : args)
- {
- expr += arg ;
- }
- String value = String.valueOf(E.sum(expr)) ;
- System.out.println("Value of given expression is " + value) ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement