有理数基本运算:
1、抽象数据模型
ADT Rational{
数据对象:
D={ e1, e2 | e1,e2属于 int 类型}
数据关系:
R={ <e1,e2> } //e1为有理数的分子,e2为有理数的分母
基本运算:
InitRetion( *T, e1, e2):构造有理数T,元素e1,e2分别被赋以分子、分母值
DestroyRetion( *T ):销毁有理数T
put( i, *T, e):用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母
modify( i, *T, e):将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
add( *T1, *T2, *T3 ):有理数T1,T2相加,结果存入有理数T3
minus( *T1, *T2, *T3 ):有理数T1,T2相减,结果存入有理数T3
mult( *T1, *&T2, *T3 ):有理数T1,T2相乘,结果存入有理数T3
division( *T1, *T2, *T3 ):有理数T1,T2相除,结果存入有理数T3
}ADT Rational
2、头文件
3、代码实现说明
-
1、构造有理数
-
2、分子(分母)的返回
-
3、分子(分母)的修改
-
4、求有理数之和
-
5、求有理数之差
-
6、求有理数之积
-
7、求有理数之商
-
8、约分(求最大公约数)
4、运行结果展示
-
样例
-
分母为零
-
负有理数
-
sample
5、代码互评
++++++++++++++++++++++++++++++++++++++++++++++++
- 梦冰在有理数定义的时候是用 new 动态分配空间,优点是按需分配不浪费存储空间;不足之处在于若指针没有及时释放,则会成为指向任意空间的野指针。
- 我在有理数定义是使用结构体,优点是结构体按计划分配,由编译器给定空间,在作用域使用完毕系统自动释放所占空间;不足之处在于结构体是静态分配,只有固定的内存和位置,不能根据需求任意改变大小。
6、git和码云的使用
- 利用 git 发送文件到码云
- 利用 git 从码云下载文件
- 1)设置 ssh 公钥
- 2)下载文件
心得体会
- 明白了在 c 中没有引用类型,不能用形如 fun (&a) { //代码 } 的实行定义函数。