I'm trying to figure out what I'm doing wrong here. I'm getting a bunch of error messages on my main.m telling me that I'm missing a right square bracket. I've put !!!!! in front of the lines that are marked as an error.
#import "Fraction.h"
int main (int argc, char * argv[])
{
@autoreleasepool {
Fraction *aFraction = [[Fraction alloc] init];
Fraction *bFraction = [[Fraction alloc] init];
Fraction *resultFraction;
[aFraction setTo: 1 over: 4];
[bFraction setTo: 1 over: 2];
resultFraction = [aFraction add: bFraction];
[resultFraction print: YES];
!!!!!
resultFraction = [aFraction subtract: bFraction];
NSLog (@"subtracted = ");
[resultFraction print:YES];
!!!!!
resultFraction = [aFraction multiply: bFraction];
NSLog (@"multiplied = ");
[resultFraction print:YES];
!!!!!
resultFraction = [aFraction divide: bFraction];
NSLog (@"divided = ");
!!!!! [resultFraction print: YES];
}
return 0;
}
and it's also saying I have incomplete implementation in my Fraction.m:
#import "Fraction.h"
@implementation Fraction
@synthesize numerator, denominator;
-(void) print: (BOOL) d
{
if (d==YES)
{
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator;
result.denominator = denominator;
[result reduce];
NSLog(@"%i/%i", result.numerator, result.denominator);
}
else
NSLog (@"%i/%i", numerator, denominator);
}
-(double) convertToNum
{
if (denominator !=0)
return (double) numerator / denominator;
else
return NAN;
}
-(void) setTo: (int) n over: (int) d
{
numerator = n;
denominator = d;
}
-(Fraction *) add: (Fraction *) f
{
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator * f.denominator + denominator * f.numerator;
result.denominator = denominator * f.denominator;
return result;
}
-(Fraction *) subtract: (Fraction *) f
{
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator * f.denominator - denominator * f.numerator;
result.denominator = denominator * f.denominator;
return result;
}
-(Fraction *) multiply: (Fraction *) f
{
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator * f.numerator;
result.denominator = denominator * f.denominator;
return result;
}
-(Fraction *) divide: (Fraction *) f
{
Fraction *result = [[Fraction alloc] init];
result.numerator = numerator / f.numerator;
result.denominator = denominator / f.denominator;
return result;
}
-(void) reduce
{
int u = numerator;
int v = denominator;
int temp;
while ( v!=0) {
temp = u % v;
u=v;
v=temp;
}
numerator /= u;
denominator /= u;
}
@end
I'm sure I'm missing something simple...can anyone help?