zoukankan      html  css  js  c++  java
  • Objective-C 程序设计(第六版)第七章习题答案

    1.各个方法的实现

     1 - (Fraction *) subtract: (Fraction *) f
     2 {
     3     Fraction *result = [[Fraction alloc] init];
     4     
     5     result.numerator = numerator *f.denominator - denominator *f.numerator;
     6     result.denominator = denominator *f.denominator;
     7     
     8     [result reduce];
     9     return  result;
    10 }
    11 
    12 - (Fraction *) multiply: (Fraction *) f
    13 {
    14     Fraction *result = [[Fraction alloc] init];
    15     
    16     result.numerator = numerator *f.numerator;
    17     result.denominator = denominator *f.denominator;
    18     
    19     [result reduce];
    20     return result;
    21 }
    22 
    23 - (Fraction *) divide: (Fraction *) f
    24 {
    25     Fraction *result = [[Fraction alloc] init];
    26     
    27     result.numerator = numerator *f.denominator;
    28     result.denominator = denominator *f.numerator;
    29     
    30     [result reduce];
    31     return result;
    32 }

    2.print方法

     1 - (void) print: (BOOL) isReduce
     2 {
     3     if (numerator % denominator == 0) {
     4         NSLog(@"%d",numerator/denominator);
     5     }else if (isReduce) {
     6         [self reduce];
     7         NSLog(@"%d / %d",numerator,denominator);
     8     }else
     9         NSLog(@"%d / %d",numerator,denominator);
    10 
    11 }

    3.对负分数一样使用

     1 int main(int argc, const char * argv[]) {
     2     @autoreleasepool {
     3         // insert code here...
     4         
     5         Fraction *aFraction = [[Fraction alloc] init];
     6         Fraction *bFraction = [[Fraction alloc] init];
     7         Fraction *resultFraction;
     8         
     9         [aFraction setTo:-1 over:4];
    10         [bFraction setTo:-1 over:2];
    11         
    12         resultFraction = [aFraction add:bFraction];
    13         
    14         
    15         [resultFraction print:YES];
    16     }
    17     return 0;
    18 }

    4.

     1 - (void) print: (BOOL) isReduce 
     2 {
     3     if (numerator % denominator == 0) {
     4         NSLog(@"%d",numerator/denominator);
     5     }else if (numerator > denominator){
     6         [self reduce];
     7         NSLog(@"%d %d/%d",numerator/denominator,numerator % denominator,denominator);
     8     }else if (isReduce) {
     9         [self reduce];
    10         NSLog(@"%d/%d",numerator,denominator);
    11     }else
    12         NSLog(@"%d/%d",numerator,denominator);
    13 
    14 }

    5.去掉synthesize合成方法后 修改变量名 _numerator, _denominator  替换程序中的numerator,denominator;增加setter方法 用于点语法。

    6..m文件

    1 - (Complex *) add: (Complex *) complexNum
    2 {
    3     Complex *result = [[Complex alloc] init];
    4     
    5     result.real = real + complexNum.real;
    6     result.imaginary = imaginary + complexNum.imaginary;
    7     
    8     return result;
    9 }

    main

     1         Complex * aComplex = [[Complex alloc]init];
     2         Complex * bComplex = [[Complex alloc]init];
     3         Complex * resultComplex;
     4 
     5         
     6         [aComplex setReal:5.3];
     7         [aComplex setImaginary:7];
     8         [bComplex setReal:2.7];
     9         [bComplex setImaginary:4];
    10         resultComplex = [aComplex add:bComplex];
    11         
    12         NSLog(@"result is %.f + %.fi",[resultComplex real],[resultComplex imaginary]);
    13         

    7.略吧

  • 相关阅读:
    给Lisp程序员的Python简介
    QuickLisp常用命令
    修改windows cmd字体
    Eclipse生成JavaDoc时指定字符集, 避免页面乱码
    css颜色名
    css3动画
    使用placeholder实现动态配置persistence.xml
    spring下配置tomcat jdbc pool 报找不到"com.mysql.jdbc.Driver"类
    去除移动端浏览器点击元素时的边框
    JS经典闭包问题
  • 原文地址:https://www.cnblogs.com/MingMing-King/p/4084122.html
Copyright © 2011-2022 走看看