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.略吧

时间: 2024-10-12 12:02:41

Objective-C 程序设计(第六版)第七章习题答案的相关文章

Objective-C 程序设计(第六版)第二章习题答案

1.略 2. #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"In Obiective-c, lowercase letters are significance .\n main is where program execution begins.\n Open and close

Objective-C 程序设计(第六版)第九章习题答案

1.检测不到reduce方法,因为Complex类中没有定义: 2.合法.因为id类型可以用来存储属于任何类的对象(不能为id变量使用点运算符) 3. 1 //XYPoint类print方法 2 3 4 - (void) print 5 { 6 NSLog(@" (%g , %g) ", x, y); 7 } 8 9 10 //main函数部分 11 12 id dataValue; 13 14 XYPoint *x1 = [[XYPoint alloc] init]; 15 16 [

概率论与数理统计严继高版第七章习题答案(含过程)

无7.3(不考)总习题我只有草稿,忘记带了,想起来就更 原文地址:https://www.cnblogs.com/cs-learn/p/9611237.html

Python核心编程(第二版) 第二章习题答案 未完待续

2-2.程序输出.阅读下面的Python脚本.#!/usr/bin/env python1 + 2 * 4(a)你认为这段脚本是用来做什么的?(b)你认为这段脚本会输出什么?(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果.(e)如何改进这个脚本,以便它能和你想象的一样工作?答:(a)这段脚本是用来计算表达式的值(b)脚本会输出9(c)保存为脚本,运行后没有输出.和自己预期不一样.

Objective-C 程序设计(第六版)第十章习题答案

1. 1 - (id) init 2 { 3 return [self initWithWidth: 0 andHeight: 0]; 4 } 5 6 - (id) initWithWidth: (int) w andHeight: (int) h 7 { 8 self = [super init]; 9 if (self) { 10 [self setWidth: w andHeight: h]; 11 } 12 return self; 13 } 2. 1 - (id)init 2 { 3

Java语言程序设计基础篇第10版第5章习题答案

1 public class Demo { 2 public static void main(String[] args) { 3 java.util.Scanner input = new java.util.Scanner(System.in); 4 int num = input.nextInt(); 5 int count=0; 6 int a=0,b=0; 7 float sum=0; 8 while(num!=0){ 9 if(num>0) 10 a++; 11 else 12 b

C++ Primer Plus 第六版 第16章 string类和标准模板库

1.string实际上是模板具体化basic_string<char> 的一个typedef,有默认参数,所以省略了初始化参数 2.size_type是一个依赖于实现的整形 string将string::npos定义为字符串的最大长度 3.string类的构造函数P656 4.对于c-风格字符串,3种输入方法:cin>>   cin.getline(),cin.get 对于string   ,2种输入方法:cin>>,getline(cin,string对象) 5.st

Python核心编程(第二版) 第六章习题答案

6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? 答:有,string.find(str,beg,end) 6–2.字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你. 1 #!/usr/bin/python 2 3 import string 4 impo

《构建之法》读第六、第七章有感

<构建之法>读第六.第七章有感 第六章: 第六章主要详细介绍了敏捷流程,在软件工程范畴里,“敏捷流程”是一系列价值观和方法论的集合.这一章以敏捷流程的Scrum方法论而展开,Scrum 采用迭代.增量的方法来优化可预见性并控制风险,并且SCRUM 是一个用于开发和维持复杂产品的框架. 敏捷开发的流程如下: 1.找出完成产品需要做的事情,每一项工作用天为单位计算. 2.决定当前的冲刺(Sprint)需要解决的事情--Sprint Backlog. 3.冲刺阶段各个团队相互独立,所有的问题都只能在