Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package projekt;
- import java.util.Scanner;
- public class Main {
- static Stack<Operator> operator;
- static Stack<Double> operand;
- static Scanner sc=new Scanner(System.in);
- static String string;
- public static void main (String[] args){
- operator=new Stack<Operator>();
- operand=new Stack<Double>();
- System.out.println("Skriv in ditt tal");
- string=sc.nextLine();
- String[] in=string.split(" ");
- tilldela(in);
- System.out.println(operand.pop());
- }
- public static void tilldela(String[] lista){
- for(String s: lista){
- switch(s){
- case "+":
- new Plus().hantera(operator, operand);
- break;
- case "-":
- new Minus().hantera(operator, operand);
- break;
- case "*":
- new Multi().hantera(operator, operand);
- break;
- case "/":
- new Division().hantera(operator, operand);
- break;
- case "(":
- new VParantes().hantera(operator, operand);
- break;
- case ")":
- break;
- default:
- operand.push(Double.parseDouble(s));
- break;
- }
- }
- }
- }
- package projekt;
- public class Plus extends Operator {
- @Override
- public int prioritet() {
- // TODO Auto-generated method stub
- return 2;
- }
- @Override
- public void evaluera(Stack<Double> operand) {
- double ett=operand.pop();
- double två=operand.pop();
- operand.push((ett+två));
- }
- @Override
- public void hantera(Stack<Operator> operator, Stack<Double> operand) {
- while(operator.empty()!=true&&((Operator) operator.top()).prioritet()>=this.prioritet()){
- ((Operator) operator.pop()).evaluera(operand);
- }
- operator.push(this);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment