题:改变第七章例子中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 ;
}

最新文章

  1. ThinPHP基础
  2. Qt ffmpeg环境搭建
  3. 修改mysql用户名密码 和 PHPmysqlAdmin对应密码修改
  4. Centos后台运行jar
  5. php完整验证码代码
  6. nodejs开发环境sublime配置
  7. SQL拾遗
  8. Struts 2 之文件上传
  9. 使用codis-admin搭建codis集群
  10. React组件方法中为什么要绑定this
  11. vue-百度地图-maker文字标签显示隐藏
  12. 【Linux】scp指令
  13. 登陆页、注册页、会员中心页logo图的替换
  14. OpenCV3.30 画图函数
  15. public private protected default
  16. C#winform窗体实现对sql server数据库的增删改查
  17. mx:Panel (面板容器) mx:Button (按钮) 默认大小
  18. Django -- settings 详解(转)
  19. C51 头文件中的 extern
  20. 解决 LLVM 错误提示 may only occur zero or one times!

热门文章

  1. git stash和git stash pop
  2. 工作中的sql语句总结
  3. likely &amp;&amp; unlikely in GCC
  4. JavaScript字符串的操作-课堂笔记
  5. jquery 时间戳与日期转换
  6. linux软件包管理(上)
  7. html文本的基本设置
  8. 判断是否为IE浏览器
  9. 【转发】关于Java性能的9个谬论
  10. 重新梳理HTML基础知识