THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 109

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ý.

ươ

ứ ử

1

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.