Advertisement
Guest User

Untitled

a guest
May 30th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.20 KB | None | 0 0
  1. package exercise.run;
  2. import exercise.algebra.number.NormRational;
  3. import java.util.Stack;
  4. public class RPN{
  5. public static void main(String[] args){
  6. if ( args.length == 0 ){
  7.     System.out.println("Bitte einen Ausdruck in umgekehrter polnischer Notation angeben!");
  8.     System.out.println("Usage: java RPN EXPR");
  9.     return;
  10. }
  11.  
  12. Stack s = new Stack();
  13. int len = args.length;
  14. long l;
  15. for(int i=0;i<len;i++){
  16.  
  17. switch (args[i]){
  18.     case "+":
  19.         NormRational a = s.pop();
  20.         NormRational b = s.pop();
  21.         b.add(a);
  22.         s.push(b);
  23.         break;
  24.     case "-":
  25.         NormRational a = s.pop();
  26.         NormRational b = s.pop();
  27.         b.sub(a);
  28.         s.push(b);
  29.         break;
  30.     case "*":
  31.         NormRational a = s.pop();
  32.         NormRational b = s.pop();
  33.         b.mult(a);
  34.         s.push(b);
  35.         break;
  36.     case "/":
  37.         NormRational a = s.pop();
  38.         NormRational b = s.pop();
  39.         b.div(a);
  40.         s.push(b);
  41.         break;
  42.     default:
  43.         try{
  44.             l = Long.parseLong(args[i]);
  45.             if(l<0)
  46.                 throw new NumberFormatException();
  47.             NormRational r = new NormRational(l);
  48.             s.push(r);
  49.         }
  50.         catch(Exception e){
  51.             System.err.println("Falsches Eingabeformat");
  52.             System.err.println("Erlaubte Eingabe: 0..9 + - */");
  53.         }
  54.         break;
  55. }
  56. }
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement