#import <Foundation/Foundataion.h>
@interface Fraction:NSObject
@property int num,den;
-(void)print;
@end
/*******/
#import "Fraction.h"
@implementation Fraction
-(void)print
{
NSLog(@"The Fraction is %i/%i",self.num,self.den);
}
@end
/****************Catalogue*********************/
#import "Fraction.h"
@interface Fraction(math)
//-(Fraction *)addWithFrac1:(Fraction*)frac1 andFrac2:(Fraction *)frac2;
-(void)add:(Fraction *)a;
-(void)sub:(Fraction *)a;
-(void)mul:(Fraction *)a;
-(void)div:(Fraction *)a;
@end
/*******/
#import "Fraction+math.h"
@implementation Fraction (math)
-(void)add:(Fraction *)a
{
self.num=self.num*a.den+self.den*a.num;
self.den=self.den*a.den;
}
-(void)sub:(Fraction *)a
{
self.num=self.num*a.den-self.den*a.num;
self.den=self.den*a.den;
}
-(void)mul:(Fraction *)a
{
self.num=self.num*a.num;
self.den=self.den*a.den;
}
-(void)div:(Fraction *)a
{
self.num=self.num*a.den;
self.den=self.den*a.num;
}
@end
/**********Extension,在原来的Fraction.m文件中******************/
#import "Fraction.h"
@interface Fracion()
-(void)reduce;
@end
@implementation Fraction
-(void)reduce
{
int u=self.num;
int v=self.den;
int temp;
//分数是负数的情况,求余的时候最后可能会有些问题,老师把u,v分开考虑了下,但我觉得这样也可以
if(u*v<0)
u*=-1;
while(v){
temp=v;
v=u%v;
u=temp;
}
self.num/=u;
self.den/=u;
}
-(void)print //重写print函数,让得到的值先约分
{
[self reduce];
NSLog(@"The fraction is %i/%i",self.num,self.den);
}
@end
@interface Fraction:NSObject
@property int num,den;
-(void)print;
@end
/*******/
#import "Fraction.h"
@implementation Fraction
-(void)print
{
NSLog(@"The Fraction is %i/%i",self.num,self.den);
}
@end
/****************Catalogue*********************/
#import "Fraction.h"
@interface Fraction(math)
//-(Fraction *)addWithFrac1:(Fraction*)frac1 andFrac2:(Fraction *)frac2;
-(void)add:(Fraction *)a;
-(void)sub:(Fraction *)a;
-(void)mul:(Fraction *)a;
-(void)div:(Fraction *)a;
@end
/*******/
#import "Fraction+math.h"
@implementation Fraction (math)
-(void)add:(Fraction *)a
{
self.num=self.num*a.den+self.den*a.num;
self.den=self.den*a.den;
}
-(void)sub:(Fraction *)a
{
self.num=self.num*a.den-self.den*a.num;
self.den=self.den*a.den;
}
-(void)mul:(Fraction *)a
{
self.num=self.num*a.num;
self.den=self.den*a.den;
}
-(void)div:(Fraction *)a
{
self.num=self.num*a.den;
self.den=self.den*a.num;
}
@end
/**********Extension,在原来的Fraction.m文件中******************/
#import "Fraction.h"
@interface Fracion()
-(void)reduce;
@end
@implementation Fraction
-(void)reduce
{
int u=self.num;
int v=self.den;
int temp;
//分数是负数的情况,求余的时候最后可能会有些问题,老师把u,v分开考虑了下,但我觉得这样也可以
if(u*v<0)
u*=-1;
while(v){
temp=v;
v=u%v;
u=temp;
}
self.num/=u;
self.den/=u;
}
-(void)print //重写print函数,让得到的值先约分
{
[self reduce];
NSLog(@"The fraction is %i/%i",self.num,self.den);
}
@end