Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package oving2;
- import java.util.ArrayList;
- import sun.misc.PerformanceLogger;
- import acm.program.ConsoleProgram;
- /*
- * @startuml
- * class ConsoleProgram {
- * }
- * class ConsoleRPN {
- * Stack<Double> operandStack
- * void push(double value)
- * double pop(double defaultValue)
- * +void init()
- * +void run()
- * }
- * ConsoleProgram <|-- ConsoleRPN
- * @enduml
- */
- public class ConsoleRPN extends ConsoleProgram {
- private ArrayList<Double> stack;
- public void init(){
- }
- public void run(){
- stack = new ArrayList<Double>();
- String inputTegn;
- double tall;
- char operat;
- boolean sjekke;
- while(true){
- println("Opperand stack: " + stack);
- inputTegn = readLine("Skriv inn operand eller operator: ");
- sjekke = erTall(inputTegn);
- if(sjekke){
- tall = Double.parseDouble(inputTegn);
- stack.add(tall);
- }
- else {
- operat = inputTegn.charAt(0);
- nytttall = performOperation(operat);
- }
- if(inputTegn == ""){
- break;
- }
- }
- }
- public boolean erTall(String inputTegn){
- try {
- Double.parseDouble(inputTegn);
- }
- catch(NumberFormatExeception nfe){
- return false;
- }
- return true;
- }
- public void add(){
- }
- public double performOperation(char operat){
- switch(operat){
- case '+': return stack.get(stack.size()) + stack.get(stack.size()-1);
- case '-': return stack.get(stack.size()) - stack.get(stack.size()-1);
- case '*': return stack.get(stack.size()) * stack.get(stack.size()-1);
- case '/': return stack.get(stack.size()) / stack.get(stack.size()-1);
- default: println("Opps en feil gitt");
- }
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement