SHARE
TWEET

Untitled

a guest Jul 17th, 2017 44 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package oving2;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import sun.misc.PerformanceLogger;
  6.  
  7. import acm.program.ConsoleProgram;
  8.  
  9. /*
  10.  * @startuml
  11.  * class ConsoleProgram {
  12.  * }
  13.  * class ConsoleRPN {
  14.  *  Stack<Double> operandStack
  15.  *  void push(double value)
  16.  *  double pop(double defaultValue)
  17.  *  +void init()
  18.  *  +void run()
  19.  * }
  20.  * ConsoleProgram <|-- ConsoleRPN
  21.  * @enduml
  22.  */
  23.  
  24. public class ConsoleRPN extends ConsoleProgram {
  25.    
  26.     private ArrayList<Double> stack;
  27.  
  28.    
  29.     public void init(){
  30.        
  31.     }
  32.     public void run(){
  33.         stack = new ArrayList<Double>();
  34.         String inputTegn;
  35.         double tall;
  36.         char operat;
  37.        
  38.         boolean sjekke;
  39.        
  40.         while(true){
  41.             println("Opperand stack: " + stack);
  42.             inputTegn = readLine("Skriv inn operand eller operator: ");
  43.             sjekke = erTall(inputTegn);
  44.             if(sjekke){
  45.                 tall = Double.parseDouble(inputTegn);
  46.                 stack.add(tall);
  47.             }
  48.             else {
  49.                 operat = inputTegn.charAt(0);
  50.                 nytttall = performOperation(operat);
  51.             }
  52.            
  53.             if(inputTegn == ""){
  54.                 break;
  55.             }
  56.         }
  57.        
  58.        
  59.     }
  60.     public boolean erTall(String inputTegn){
  61.         try {
  62.             Double.parseDouble(inputTegn);
  63.         }
  64.         catch(NumberFormatExeception nfe){
  65.             return false;
  66.         }
  67.         return true;
  68.     }
  69.    
  70.     public void add(){
  71.            
  72.     }
  73.     public double performOperation(char operat){
  74.         switch(operat){
  75.         case '+': return stack.get(stack.size()) + stack.get(stack.size()-1);
  76.         case '-': return stack.get(stack.size()) - stack.get(stack.size()-1);
  77.         case '*': return stack.get(stack.size()) * stack.get(stack.size()-1);
  78.         case '/': return stack.get(stack.size()) / stack.get(stack.size()-1);
  79.         default: println("Opps en feil gitt");
  80.        
  81.         }
  82.         return -1;
  83.        
  84.     }
  85.    
  86.    
  87.    
  88.    
  89. }
RAW Paste Data
Top