Assignment #1 Task #3

Please note, this blog entry is from a previous course. You might want to check out the current one.

Add the following 4 operation buttons:

  • sin : calculates the sine of the top operand on the stack.
  • cos : calculates the cosine of the top operand on the stack.
  • sqrt : calculates the square root of the top operand on the stack.
  • π: calculates (well, conjures up) the value of π. Examples: 3 π * should put three times the value of π into the display on your calculator, so should 3 Enter π *, so should π 3 *. Perhaps unexpectedly, π Enter 3 * + would result in 4 times π being shown. You should understand why this is the case. NOTE: This required task is to add π as an operation (an operation which takes no arguments off of the operand stack), not a new way of entering an operand into the display.

Add four additional buttons called “sin”, “cos”, “sqrt” and “pi” by copying one of the existing operator buttons and adjust the performOperation function in CalculatorBrain.m:

    } else if ([operation isEqualToString:@"sin"])
        result = sin([self popOperand]);
    else if ([operation isEqualToString:@"cos"]) result = cos([self popOperand]);
    else if ([operation isEqualToString:@"sqrt"]) {
        double number = [self popOperand];
        if (number < 0) return 0;
        result = sqrt(number);
    } else if ([operation isEqualToString:@"π"]) result = M_PI;

The reason that “π Enter 3 * + would result in 4 times π” is that pushing the Enter button puts result “3.14” from the pi operation on the stack.


Leave a Reply

Your email address will not be published.