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

tìm ra kho ng th i gian gi a chúng. Cách làmth c hi n tính tr có nh . Nh ng dùng ph

ng th c đ

ư

ươ

ứ ể

chuy n đ i s d h n nhi u.

ổ ẽ ễ ơ

Đi u tr trêu là, đôi khi vi c làm cho bài toán khó h n

ơ (t ng quát h n) l i khi n cho d dàng h n (ít

ơ

ế

ơ

tr

ng h p đ c bi t, ít kh năng gây ra l i).

ườ

11.13 Thu t toán

Khi b n vi t m t l i gi i t ng quát cho m t l p các bài toán, thay vì tìm l i gi i riêng cho m t bài toán

ế

ộ ờ

ả ổ

ộ ớ

riêng l , b n đã vi t m t

ẻ ạ

ế

thu t toán

. Th t không d đ nh nghĩa thu t ng này, b i v y tôi s c g ng

ễ ị

ở ậ

ẽ ố ắ

th vài cái ti p c n khác nhau.

ế ậ

Tr

c h t, hãy xét m t s th không ph i là thu t toán. Khi b n h c tính nhân gi a hai s , có l b n đã

ướ ế

ộ ố ứ

ẽ ạ

ghi nh b n c u ch

ng. Th t ra, b n đã h c thu c lòng 100 l i gi i c th , b i v y ki n th c này th c

ớ ả ử

ươ

ả ụ ể ở ậ

ế

s không ph i là thu t toán.

Nh ng n u b n “l

i bi ng,” có th b n đã h c h i đ

c m y m o v t. Ch ng h n, đ tính tính c a m t

ư

ế

ườ

ế

ể ạ

ọ ỏ ượ

ẹ ặ

s

n v i 9, b n có th vi t

ể ế n−1 là ch s th nh t và 10−

ữ ố ứ

n là ch s th hai. M o này là l i gi i t ng quát

ữ ố ứ

ả ổ

đ nhân m t s d

i m

i b t kì v i 9. Đó chính là thu t toán!

ộ ố ướ

ườ ấ

T

ng t , nh ng kĩ thu t b n h c đ c ng có nh , tr có nh , và phép chia s l n đ u là nh ng thu t

ươ

ậ ạ

ọ ể ộ

ớ ừ

ố ớ

toán. M t trong nh ng đ c đi m c a thu t toán là chúng không c n trí thông minh đ th c hi n. Chúng

ể ự

ch là nh ng c ch máy móc trong đó t ng b

c n i ti p nhau theo m t lo t nh ng nguyên t c đ n

ơ ế

ướ ố ế

ắ ơ

gi n.

Theo ý ki n c a tôi, th t đáng ng i khi th y r ng chúng ta dành quá nhi u th i gian trên l p đ h c cách

ế ủ

ấ ằ

ể ọ

th c hi n nh ng thu t toán mà, nói th ng ra là, không c n trí thông minh gì c . M t khác, quá trình

thi t k nh ng thu t toán l i thú v , đ y th thách trí tu , và là ph n trung tâm c a vi c mà ta g i là l p

ế ế

ị ầ

trình.

Có nh ng vi c mà con ng

i làm theo l t nhiên, ch ng khó khăn hay ph i suy nghĩ gì, l i là nh ng th

ườ

ẽ ự

khó bi u di n b ng thu t toán nh t. Vi c hi u ngôn ng là m t ví d đi n hình. Chúng ta ai cũng làm

ụ ể

v y, nh ng đ n nay ch a ai gi i thích đ

c r ng ta làm v y

ư

ế

ư

ượ ằ

b ng cách nào

, ít nh t là bi u di n d

i

ướ

d ng thu t toán.

B n s s m có c h i thi t k nh ng thu t toán đ n gi n cho nhi u bài toán khác nhau.

ạ ẽ ớ

ơ ộ

ế ế

ơ

11.14 Thu t ng

l p:

Tr

c đây, tôi đã đ nh nghĩa l p là m t t p h p các ph ng th c có liên quan. Trong ch ng này ta

ướ

ộ ậ

ươ

ươ

còn đ c bi t r ng l i đ nh nghĩa l p cũng đ ng th i là m t b n m u c a m t ki u đ i t

ng m i.

ượ

ế ằ

ờ ị

ộ ả

ẫ ủ

ố ượ

th c th :

Thành viên c a m t l p. M i đ i t

ng đ u là th c th c a m t l p nào đó.

ộ ớ

ỗ ố ượ

ể ủ

ộ ớ

constructor:
M t ph ng th c đ c bi t đ kh i t o các bi n th c th c a m t đ i t ng m i l p nên.

ươ

ứ ặ

ệ ể

ở ạ

ế

ể ủ

ộ ố ượ

ớ ậ

l p kh i đ ng:

ở ộ

L p có ch a ph ng th c

ươ

ứ main n i b t đ u vi c th c thi ch ng trình.

ơ ắ ầ

ươ