Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package exercise.run;
- import exercise.algebra.number.NormRational;
- import java.util.Stack;
- public class RPN{
- public static void main(String[] args){
- if ( args.length == 0 ){
- System.out.println("Bitte einen Ausdruck in umgekehrter polnischer Notation angeben!");
- System.out.println("Usage: java RPN EXPR");
- return;
- }
- Stack s = new Stack();
- int len = args.length;
- long l;
- for(int i=0;i<len;i++){
- switch (args[i]){
- case "+":
- NormRational a = s.pop();
- NormRational b = s.pop();
- b.add(a);
- s.push(b);
- break;
- case "-":
- NormRational a = s.pop();
- NormRational b = s.pop();
- b.sub(a);
- s.push(b);
- break;
- case "*":
- NormRational a = s.pop();
- NormRational b = s.pop();
- b.mult(a);
- s.push(b);
- break;
- case "/":
- NormRational a = s.pop();
- NormRational b = s.pop();
- b.div(a);
- s.push(b);
- break;
- default:
- try{
- l = Long.parseLong(args[i]);
- if(l<0)
- throw new NumberFormatException();
- NormRational r = new NormRational(l);
- s.push(r);
- }
- catch(Exception e){
- System.err.println("Falsches Eingabeformat");
- System.err.println("Erlaubte Eingabe: 0..9 + - */");
- }
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement