public CalculatorBody() { this.sum = new Addition(); this.difference = new Subtraction(); this.product = new Multiplication(); this.quotient = new Division(); this.exponent = new Exponentiation(); this.sqrt = new SquareRoot(); this.input = new UserInputOutput(); }
public static Operation createOperation(string item) { Operation temp = null; switch (item) { case "+": temp = new Addition(); break; case "-": temp = new Subtraction(); break; case "*": temp = new Multiplication(); break; case "/": temp = new Division(); break; } return(temp); }
// Menghitung hasil operasi <operand1> <operator> <operand2> public double calculate() { Expression temp = new TerminalExpression(0); switch (operatorSign) { case "+": temp = new Addition(operand1, operand2); break; case "-": temp = new Substraction(operand1, operand2); break; case "*": temp = new Multiplication(operand1, operand2); break; case "/": temp = new Division(operand1, operand2); break; case "^": temp = new Power(operand1, operand2); break; case "sqrt": temp = new SquareRoot(operand1); break; case "mod": temp = new Modulus(operand1, operand2); break; } return(temp.solve()); }
// evaluator private void btnEq_Click(object sender, EventArgs e) { Expression expression; Double sndArgument = new Double(); if (textBoxRes.Text.Equals("x") || textBoxRes.Text.Equals("y") || textBoxRes.Text.Equals("z")) { using (var form = new CalculatorValueForVariables()) { var result = form.ShowDialog(); if (result == DialogResult.OK) { sndArgument = form.varValue; } } } else { sndArgument = Double.Parse(textBoxRes.Text); } switch (calcOperator) { case "sqrt": if (!(resultValue < 0)) { expression = new Sqrt(resultValue); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); } else { textBoxRes.Text = "Can't calculate sqrt of a neg num!"; } break; case "neg": expression = new Opposite(resultValue); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "cos": expression = new Cosinus(resultValue); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "sin": expression = new Sinus(resultValue); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "exp": expression = new Exponentation(resultValue); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "abs": expression = new Abs(resultValue); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "log": if (resultValue > 0) { expression = new Log(resultValue); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); } else { textBoxRes.Text = "Can't calculate log of a neg num!"; } break; case "+": labelCurrentExpr.Text += sndArgument; expression = new Addition(resultValue, sndArgument); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "-": labelCurrentExpr.Text += sndArgument; expression = new Subtraction(resultValue, sndArgument); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "*": labelCurrentExpr.Text += sndArgument; expression = new Multiplication(resultValue, sndArgument); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "/": labelCurrentExpr.Text += sndArgument; if (!sndArgument.Equals(0)) { expression = new Division(resultValue, sndArgument); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); } else { textBoxRes.Text = "Can't divide by 0"; } break; case "^": labelCurrentExpr.Text += sndArgument; expression = new Power(resultValue, sndArgument); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; case "%": labelCurrentExpr.Text += sndArgument; expression = new Modulo(resultValue, sndArgument); finalValue = expression.Evaluate(); textBoxRes.Text = finalValue.ToString(); break; } resultValue = 0; labelCurrentExpr.Text = ""; }
public double Multiply(double a, double b) { return(Multiplication.Multi(a, b)); //return result; }
public void SetUp() { multiplication = new Multiplication(); }