有理數基本運算:
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) { //代碼 } 的實行定義函數。