Advertisement
Guest User

Design calculator

a guest
Feb 20th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. abstract class Operation:
  2. float arg1, arg2;
  3. abstract float getValue()
  4.  
  5. class Literal extends Operation:
  6. float getValue() {
  7.     retur arg1;
  8. }
  9.  
  10. class Add extends Operation:
  11. float getValue() {
  12.     return arg1 + arg2
  13. }
  14.  
  15. class Negate extends Operation:
  16. float getValue() {
  17.     return arg2 - arg1
  18. }
  19.  
  20. class Calculator
  21. string expression
  22. float evaluate() {
  23.     result = 0;
  24.     operation = '+';
  25.     for (var i = 0; i < lengt; i++) {
  26.         number = compute(expression[i]);
  27.     if (number != null) {
  28.            result = getResult(result, number, operation)
  29.         } else {
  30.            operation = expression[i];  
  31.         }
  32.     }
  33.     return new Literal(result, null).getValue();       
  34. }
  35.  
  36. float getResult(result, number, operation) {
  37.            if (operation == '+') {
  38.             return new Add(result, number).getValue()
  39.            } else if (operation == '-') {
  40.             return new Add(result, new Negate(number, null)).getValue()
  41.            }
  42.    return new Literal(result, null).getValue();      
  43. }
  44.  
  45. float compute(number) {
  46.    var number = parseInt(expression[i]);
  47.    if (number!== NaN) {
  48.       return number;
  49.    }
  50.    return null;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement