题:改变第七章例子中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. 玩转AR,联想将在2017年推出第二款Tango AR手机

    今年6月份,联想与谷歌合作推出了全球首款消费级AR手机Phab2 Pro,并获得很大的关注.作为谷歌Project Tango的一部分,这款手机的最大亮点是它搭载了三颗后置摄像头和多个传感器,机身背面 ...

  2. BZOJ4566: [Haoi2016]找相同字符

    Description 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两 个子串中有一个位置不同. Input 两行,两个字符串s1,s2,长度分别 ...

  3. idea intellij 混淆anroid代码

    idea intellij 混淆anroid代码 在project.properties中加入 target=android-14proguard.config=proguard.cfg 点击 Bui ...

  4. Hadoop_UDTF示例

    UDTF: 一进多出 UDTF(User-Defined Table-Generating Function)支持一个输入多个输出, 一般用于解析工作,比如说解析url,然后获取url中的信息 编码: ...

  5. Ubuntu系统的安装与使用 深度音乐播放器

    1.添加深度音乐播放器的ppa源并更新源缓存 sudo add-apt-repository ppa:noobslab/deepin-sc  sudo apt-get update 2. 安装需要的依 ...

  6. dede判断当前文章

    <li><a href="/info/info3.html"  class=s  >企业文化 </a></li><li> ...

  7. 一个人java深入理解java logback配置

    http://blog.csdn.net/initphp/article/category/1230072/2

  8. php 验证(检查)日期格式是否正确

    /** * 检查指定字符串是否为日期格式 年-月-日 * @param $date 日期字符串 * @return bool true 是日期格式 false 不是日期格式 */function va ...

  9. sonarqube插件开发(一) 环境搭建

    1. 下载Docker容器 # 最新版本镜像 docker pull sonarqube # 长期支持版镜像 docker pull sonarqube:lts 2. 将已有的插件导出(使用docke ...

  10. mysql导入大文件sql

    备份mysqldump mysqldump -u root -p ao2012 > /mnt/www/zq_ao2012/backup.sql 然后数据库密码 导入 mysql -h local ...