#import <Foundation/Foundation.h>
#import "Fraction.h"
#import "MathOps.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int size = 5;
Fraction * fractions[size];
Fraction ** fracPtr = nil;
Fraction *addFractions( Fraction *array[], int length ); // prototype
// initialization
for (fracPtr = fractions; fracPtr < (fractions + size); fracPtr++) {
*fracPtr = [[Fraction alloc] init];
[*fracPtr setTo:1 over:3];
}
// add
Fraction * result = addFractions( fractions, size );
// print
printf("Sum is %i/%i\n", [result numerator], [result denominator]);
// release
for (fracPtr = fractions; fracPtr < (fractions + size); fracPtr++)
[*fracPtr release];
[pool drain];
return 0;
}
Fraction *addFractions( Fraction *array[], int length )
{
Fraction ** fractPtr = array;
Fraction *sum = [[Fraction alloc] init], *temp;
[sum setTo:0 over:1];
for ( ; fractPtr < (array + length); fractPtr++ ) {
temp = [sum add:*fractPtr];
[sum release];
sum = temp;
}
return sum;
}