题:改变第七章例子中print方法,增加bool参数,判断如果是YES则对分数进行约简

 @interface Fraction : NSObject
{
//int num,den; }
@property int num,den;//定义属性 - (void) print:(BOOL) yesOrNo;//打印并判断是否约简分数
//- (void) setN: (int) n;//设置n的值
//- (void) setD: (int) d;//设置d的值
//- (int) n;//返回n的值
//- (int) d;//返回d的值
- (void) setN: (int) n andSetD: (int) d;//2个参数的方法分别设置n和d的值
- (double) convertToNum;
- (void) add: (Fraction *) f;//分数相加方法
- (void) reduce;//分数约简方法
- (Fraction *) addFraction: (Fraction *) f;//加
- (Fraction *) subFraction: (Fraction *) f;//减
- (Fraction *) mulFraction: (Fraction *) f;//乘
- (Fraction *) divFraction: (Fraction *) f;//除
@end #import "Fraction.h" @implementation Fraction @synthesize num,den;//属性对应@property num,den - (void) print: (BOOL) yesOrNo//打印
{
if (yesOrNo == YES) {
[self reduce];
}
NSLog(@"%i/%i",num,den);
}
//- (void) setN: (int) n//设置n的值
//{
// num = n;
//}
//- (void) setD: (int) d//设置d的值
//{
// den = d;
//}
//- (int) n//返回n的值
//{
// return num;
//}
//- (int) d//返回d的值
//{
// return den;
//} - (void) setN: (int) n andSetD: (int) d
{
num = n;
den = d; }
- (double) convertToNum
{
if (den != )
{
return (double) num/den; }
else
{
return NAN; }
} - (void) add: (Fraction *) f
{
//分数相加:a/b + c/d = ((a*d) + (b*c)) / (b*d) num = num * f.den + den * f.num;
den = den * f.den; [self reduce];
} - (void) reduce
{
int u = num;
int v = den;
int temp; while (v != )
{
temp = u % v;
u = v;
v = temp; }
num /= u;
den /= u;
} //加法
- (Fraction *) addFraction: (Fraction *) f
{
Fraction *result = [[Fraction alloc]init]; result.num = num * f.den + den * f.num; result.den = den * f.den; [result reduce]; return result; } //减法
- (Fraction *) subFraction: (Fraction *) f
{
Fraction *result = [[Fraction alloc]init]; result.num = num * f.den - den * f.num;
result.den = den * f.den; [result reduce]; return result; } //乘法
- (Fraction *) mulFraction: (Fraction *) f
{
Fraction *result = [[Fraction alloc]init]; result.num = num * f.num;
result.den = den * f.den; [result reduce]; return result;
} //除法
- (Fraction *) divFraction: (Fraction *) f
{
//计算分数除以分数,第一个分数乘以第二个分数的倒数:1/2除以3/2 = 1/2 * 2/3
Fraction *result = [[Fraction alloc]init]; result.num = num * f.den;
result.den = den * f.num; //[result reduce]; return result;
}
@end #import <Foundation/Foundation.h>
#import "Fraction.h" int main(int argc, const char * argv[]) {
@autoreleasepool {
Fraction *myF = [[Fraction alloc]init];
Fraction *myF_2 = [[Fraction alloc]init];
Fraction *myResult; [myF setN: andSetD:];
[myF_2 setN: andSetD:]; myResult = [myF subFraction:myF_2];
//[myResult print]; myResult = [myF mulFraction:myF_2];
//[myResult print]; myResult = [myF divFraction:myF_2]; int i;//定义整型变量i记录输入值
BOOL b;//定义BOOL类型通过i值传递判断yes or no
NSLog(@"Need to Simple? 1 or 0");
//NSLog(@"ifReadOnly value: %@" ,ifReadOnly?@"YES":@"NO");
scanf("%i",&i);
b = i;//将i值赋给b
[myResult print:b]; }
return ;
}

objective-c第七章课后练习2的更多相关文章

  1. 视觉slam十四讲第七章课后习题6

    版权声明:本文为博主原创文章,转载请注明出处: http://www.cnblogs.com/newneul/p/8545450.html 6.在PnP优化中,将第一个相机的观测也考虑进来,程序应如何 ...

  2. 视觉slam十四讲第七章课后习题7

    版权声明:本文为博主原创文章,转载请注明出处:http://www.cnblogs.com/newneul/p/8544369.html  7.题目要求:在ICP程序中,将空间点也作为优化变量考虑进来 ...

  3. objective-c第七章课后练习3

    题:Fraction类对负分数适用吗?例如:1/4-1/2 能否显示成-1/4? //--------类定义实现参考上篇随笔,此处需更改print方法和main主方法部分---------- - (v ...

  4. java基础 第七章课后习题

    1.改正后的应该为: String [] scores= new String[5];    或者 String [] scores={ “ Mike”,"Lily" ," ...

  5. c++ primer plus 第七章 课后题答案

    #include <iostream> using namespace std; double HAR_AVG(double, double); void TEST(bool); int ...

  6. C primer plus 读书笔记第六章和第七章

    这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #inclu ...

  7. [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第二章~第七章

    在看完<Objective-C 程序设计 第6版>之后,看了一些关于iOS开发职位的面试题,发现自身基础非常是不牢,于是打算以查缺补漏的方式阅读还有一本关于Objective-C的基础书籍 ...

  8. 第七章终结篇——8251A的总结

    总算把这个第七章复习完了,我把剩下一点关于8251A的发上来吧 本来在讲解8251A书本上还有关于RS232和串口通信的讲解,但是太浅了,就不放了,有兴趣的朋友可以自行参考其他文章 串行通信芯片825 ...

  9. 【知识强化】第七章 输入/输出系统 7.1 I/O系统基本概念

    那么下面,我们将要进入计算机组成原理的最后一章,也就是我们的第七章,输入输出系统的学习.那么这一部分内容呢,我们之前呢一直在提,但是并没有详细地讲解,那么进入到我们第七章输入输出系统这一部分,我们就要 ...

随机推荐

  1. C# 转换符的重载 显示、隐式转换

    class Complex { //保存转换的值 Int32 v; public Complex(Int32 x) { v = x; } public Int32 ToInt32() { return ...

  2. svn bug

    Error:Can't find temporary directory:internal error 原因:服务器端,磁盘满了 repository and is not part of the c ...

  3. C#枚举类型

    枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32. 定义 默认基数从0开始,也可指定数值. enum Days { Saturday, / ...

  4. hive 使用where条件报错 java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode

    hadoop 版本 2.6.0 hive版本 1.1.1 错误: java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalk ...

  5. Win7 下安装VirtualBox 没有Ubuntu 64bit 选项问题

    参考: win7安装virtualbox遇到的问题 基于VirtualBox虚拟机安装Ubuntu图文教程 问题 在安装VirtualBox之后,选择虚拟机进行安装的时候发现没有Ubuntu 64bi ...

  6. iOS柱状图的绘制

    前段时间公司要求做一个统计,用swift3.0写的,因此整理了一下demo,直接上图 代码下载地址:https://github.com/minyahui/MYHChartView

  7. [bzoj1087][scoi2005]互不侵犯king

    题目大意 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上 左下右上右下八个方向上附近的各一个格子,共8个格子. 思路 首先,搜索可以放弃,因为这是一 ...

  8. 探测FTP状态,socket方式

    1.FTP返回码列表(哪里都能找到的): 120 Service ready in NNN minutes. 服务在NNN时间内可用 --------------------------------- ...

  9. win7 将所有 视图 改为 '详细信息'

    1.随便进入某个文件夹->(菜单栏中)查看->选'详细信息' 2.(菜单栏中)工具->文件夹选项->查看->'应用到文件夹'

  10. iOS应用程序的生命周期

    iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本infrastructure给所有app来运行,而你提供自己编写的代码来定制app的外观 ...