objective-c第十一章练习答案

</pre>1、<p></p><p></p><pre name="code" class="html">.h文件
@interface Fraction (MathOps);
-(Fraction *) add:(Fraction *)f;
-(Fraction *) sub:(Fraction *)f;
-(Fraction *) mul:(Fraction *)f;
-(Fraction *) div:(Fraction *)f;
-(Fraction *) invert;
@end
.m文件
-(Fraction *) invert
{
    Fraction *result=[[Fraction alloc]init];
    result.numerator=self.denominator;
    result.denominator=self.numerator;
    [result reduce];
    return result;
}
<pre name="code" class="html">main文件下
[[result invert]print];


 2、 

@interface Fraction (Comparison)
-(BOOL) isEqualTo:(Fraction *)f;
-(int) compare:(Fraction *)f;
@end

@implementation Fraction (Comparison)
-(BOOL) isEqualTo:(Fraction *)f;
{
    
    if(self.numerator*f.denominator==f.numerator*self.denominator)
        return YES;
    else
        return NO;
    
}
-(int) compare:(Fraction *)f;
{
    Fraction *result=[[Fraction alloc]init];
    result.numerator=self.numerator;
    result.denominator=self.denominator;
    [result reduce];
    if(result.numerator*f.denominator<f.numerator*result.denominator)
        return -1;
    else if(result.numerator*f.denominator==f.numerator*result.denominator)
        return 0;
    else
        return 1;
    
}
@end

main文件

if([b isEqualTo:a]==YES)
            NSLog(@"这两个分数相等");
        else
            NSLog(@"两个数不等");
        
        if ([a compare: b] == -1)
            NSLog(@"a小于b");
        
        else if ([a compare: b] == 1)
            NSLog(@"a大于b");
        
        else
            NSLog(@"a等于b");
        

3、

@interface Fraction(NSComparisonMethods)
-(BOOL) isEqualTo:(Fraction *)f;
-(BOOL) isLessThanOrEqualTo:(Fraction *)f;
-(BOOL) isLessThan:(Fraction *)f;
-(BOOL) isGreaterThanOrEqualTo:(Fraction *)f;
-(BOOL) isGreaterThan:(Fraction *)f;
-(BOOL) isNotEqualTo:(id)f;
@end

@implementation Fraction(NSComparisonMethods)
-(BOOL) isEqualTo:(Fraction *)f
{
    if(self.numerator*f.denominator==f.numerator*self.denominator)
        return YES;
    else
        return NO;
}
-(BOOL) isLessThanOrEqualTo:(Fraction *)f;
{
    if(self.numerator*f.denominator<f.numerator*self.denominator /self.numerator*f.denominator==f.numerator*self.denominator)
        return YES;
    else
        return NO;
}
-(BOOL) isLessThan:(Fraction *)f
{
    if(self.numerator*f.denominator<f.numerator*self.denominator)
        return YES;
    else
        return NO;
}
-(BOOL) isGreaterThanOrEqualTo:(Fraction *)f
{
    if(self.numerator*f.denominator>f.numerator*self.denominator/self.numerator*f.denominator==f.numerator*self.denominator)
        return YES;
    else
        return NO;
}
-(BOOL) isGreaterThan:(Fraction *)f
{
    if(self.numerator*f.denominator>f.numerator*self.denominator)
        return YES;
    else
        return NO;
}
-(BOOL) isNotEqualTo:(id)object
{
    if((self.numerator*[object denominator])!=([object numerator]*self.denominator))
        return YES;
    else
        return NO;
}
@end

main文件下:
if ([a isEqualTo:b]==YES) {
            NSLog(@"a=b");
        }
        else if ([a isLessThanOrEqualTo:b]==YES) {
            NSLog(@"a<=b");
        }
        else if ([a isLessThan:b]==YES) {
            NSLog(@"a<b");
        }
        else if ([a isGreaterThanOrEqualTo:b]==YES) {
            NSLog(@"a>=b");
        }
        else if ([a isGreaterThan:b]==YES)
            NSLog(@"a>b");
        
        if([a isNotEqualTo:b]==YES)
            NSLog(@"a!=b");
        else
            NSLog(@"no");

4、

@interface Calculator(Trig)//分类
-(double) sin;
-(double) cos;
-(double) tan;
@end

@implementation Calculator(Trig)//分类
-(double) sin
{
    return sin(self.accumulator);
}
-(double) cos
{
    return cos(self.accumulator);
}
-(double) tan
{
    return tan(self.accumulator);
}
@end

main文件
 NSLog(@"Type in your degree:");
        scanf("%lf",&Value3);
        [deskCalc setAccumulator:Value3];
        NSLog(@"%0.2f",sin(Value3));

5、


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值