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