7.
Hãy vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
negate đ đ o d u c a phân s . Ph
ng th c này ph i là m t phân
ể ả
ấ ủ
ố
ươ
ứ
ả
ộ
th c s a đ i, và vì v y c n ph i tr l i
ứ ử
ổ
ậ ầ
ả ả ạ void. Hãy vi t thêm dòng l nh trong
ế
ệ
main đ ki m tra ph
ng
ể ể
ươ
th c m i này.
ứ
ớ
8.
Vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
invert đ ngh ch đ o s b ng cách tráo đ i t s và m u s .
ể
ị
ả ố ằ
ổ ử ố
ẫ ố Hãy vi t thêm
ế
dòng l nh trong
ệ
main đ ki m tra ph
ng th c m i này.
ể ể
ươ
ứ
ớ
9.
Vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
toDouble đ chuy n đ i phân s thành m t s double (s d u ph y đ ng)
ể
ể
ổ
ố
ộ ố
ố ấ
ẩ
ộ
r i tr l i k t qu . Ph
ng th c này là m t hàm thu n tuý; nó không thay đ i đ i t
ng. Nh th
ng l ,
ồ ả ạ ế
ả
ươ
ứ
ộ
ầ
ổ ố ượ
ư ườ
ệ
hãy ki m tra ph
ng th c m i vi t.
ể
ươ
ứ
ớ
ế
10.
Vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
reduce đ rút g n m t phân s v d ng t i gi n b ng cách tìm
c s
ể
ọ
ộ
ố ề ạ
ố
ả
ằ
ướ ố
chung l n nh t c a t s và m u s r i cùng chia c t l n m u cho
c chung này. Ph
ng th c nêu
ớ
ấ ủ ử ố
ẫ ố ồ
ả ử ẫ
ẫ
ướ
ươ
ứ
trên ph i là m t hàm thu n tuý; nó không đ
c phép thay đ i các bi n th c th c a đ i t
ng mà nó
ả
ộ
ầ
ượ
ổ
ế
ự
ể ủ
ố ượ
đ
c kích ho t lên. Đ tính
c s chung l n nh t, hãy xem Bài t p
ượ
ạ
ể
ướ ố
ớ
ấ
ậ 10 c a Ch ng 8).
ủ
ươ
11.
Vi t m t ph
ng th c có tên
ế
ộ
ươ
ứ
add đ nh n hai đ i s là hai Rational r i tr l i m t đ i t
ng Rational
ể
ậ
ố ố
ồ ả ạ
ộ ố ượ
m i. Đ i t
ng đ
c tr l i ph i ch a t ng c a các đ i s . có vài cách th c hi n phép c ng này. B n có
ớ
ố ượ
ượ
ả ạ
ả
ứ ổ
ủ
ố ố
ự
ệ
ộ
ạ
th dùng b t kì cách nào, nh ng hãy đ m b o r ng k t qu c a phép tính ph i đ
c rút g n sao cho t
ể
ấ
ư
ả
ả ằ
ế
ả ủ
ả ượ
ọ
ử
và m u không có
c s chung nào khác (ngoài 1).
ẫ
ướ ố
M c đích c a bài t p này là nh m vi t m t l i đ nh nghĩa hàm có ch a nhi u lo i ph
ng th c, bao g m
ụ
ủ
ậ
ằ
ế
ộ ờ ị
ứ
ề
ạ
ươ
ứ
ồ
constructors, ph
ng th c s a đ i, và hàm thu n tuý.
ươ
ứ ử
ổ
ầ
Cái mà tôi g i là “nguyên m u nhanh” (rapid prototyping)
ọ
ẫ
đây r t gi ng v i cách phát tri n
ở
ấ
ố
ớ
ể
d a trên ki m th
ự
ể
ử (test-driven development, TDD); s khác bi t là ch TDD th ng d a trên
ự
ệ
ở ỗ
ườ
ự
ki m th t đ ng. Xem
ể
ử ự ộ
http://en.wikipedia.org/wiki/Test-driven_development.
2
Scrabble là m t nhãn hi u đã đăng kí Hoa Kì và Canada, thu c v cty Hasbro Inc., và các n c
ộ
ệ
ở
ộ ề
ở
ướ
còn l i trên th gi i, thì thu c v J.W. Spear & Sons Limited Maidenhead, Berkshire, Anh Qu c, công
ạ
ế ớ
ộ ề
ở
ố
ty nhánh c a Mattel Inc.
ủ