master
1#import "Brain.h"
2
3@interface Brain()
4@property (strong, nonatomic) NSMutableArray * arrOperands;
5@end
6
7@implementation Brain
8-(void) addObject:(double)operand
9{
10 if (!self.arrOperands)
11 {
12 self.arrOperands = [[NSMutableArray alloc] init];
13 }
14
15 [self.arrOperands addObject:[NSNumber numberWithDouble:operand]];
16}
17
18-(double) performOperation:(NSString *)operation
19{
20 double result = 0;
21
22 if (self.arrOperands.count > 1)
23 {
24 if([operation isEqualToString:@"+"])
25 {
26 result = [self removeLastObject] + [self removeLastObject];
27 }
28
29 if ([operation isEqualToString:@"-"])
30 {
31 result = -[self removeLastObject] + [self removeLastObject];
32 }
33
34 if ([operation isEqualToString:@"x"])
35 {
36 result = [self removeLastObject] * [self removeLastObject];
37 }
38
39 if ([operation isEqualToString:@"/"] && [[self.arrOperands lastObject] doubleValue] != 0)
40 {
41 double tempDivisor = [self removeLastObject];
42 result = [self removeLastObject] / tempDivisor;
43 }
44 }
45
46 [self addObject:result];
47 return result;
48}
49
50-(double) removeLastObject
51{
52 NSNumber * lastObject = [self.arrOperands lastObject];
53 if (self.arrOperands)
54 {
55 [self.arrOperands removeLastObject];
56 }
57 return [lastObject doubleValue];
58}
59
60-(void) clear
61{
62 [self.arrOperands removeAllObjects];
63}
64@end