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

System.out.println(

"dsquared is "

+ dsquared);

return

0.0;

}

M t l n n a, tôi biên d ch r i ch y ch

ng trình giai đo n này và ki m tra giá tr trung gian (v n ph i

ộ ầ

ươ

b ng 25.0).

Sau cùng, ta có th dùng

Math.sqrt đ tính r i tr l i k t qu .

ồ ả ạ ế

public static double

distance (

double

x1,

double

y1,

double

x2,

double

y2) {

double

dx = x2 - x1;

double

dy = y2 - y1;

double

dsquared = dx*dx + dy*dy;

double

result = Math.sqrt(dsquared);

return

result;

}

T

ừ main, ta có th in và ki m tra giá tr c a k t qu .

ị ủ ế

Sau này khi đã có kinh nghi m, b n s vi t và g l i nhi u dòng l nh cùng lúc. Song dù sao đi n a, vi c

ạ ẽ ế

ỡ ỗ

phát tri n tăng d n s giúp b n ti t ki m nhi u th i gian.

ầ ẽ

ế

Các đi m c b n c a quy trình này là:

ơ ả ủ

B t đ u v i m t ch

ng trình ch y đ

c và thêm vào nh ng thay đ i nh . B t c lúc nào khi g p l i,

ắ ầ

ươ

ượ

ỏ ấ ứ

ặ ỗ

b n s phát hi n đ

c ngay l i đó đâu.

ạ ẽ

ượ

Dùng các bi n t m đ l u gi các giá tr trung gian, t đó b n có th hi n th và ki m tra chúng.

ế ạ

ể ư

ể ể

M t khi ch

ng trình đã ho t đ ng, b n có th d b các đo n mã “dàn giáo”, ho c rút g n nhi u câu

ươ

ạ ộ

ể ỡ ỏ

l nh v m t bi u th c ph c h p, n u vi c này không làm cho ch

ng trình tr nên khó đ c h n.

ề ộ

ứ ợ

ế

ươ

ọ ơ

6.3 K t h p ph

ng th c

ế ợ

ươ

M t khi đã đ nh nghĩa m t ph

ng th c m i, b n có th dùng nó nh m t ph n c a bi u th c l n, và

ươ

ư ộ

ầ ủ

ứ ớ

b n cũng có th thi t l p nh ng ph

ng th c m i t các ph

ng th c s n có. Ch ng h n, n u ai đó cho

ế ậ

ươ

ớ ừ

ươ

ứ ẵ

ế

b n hai đi m: m t là tâm đ

ng tròn và m t đi m trên đ

ng tròn đó, r i yêu c u b n tính di n tích

ườ

ườ

hình tròn thì b n s làm th nào?

ạ ẽ

ế

Gi s nh to đ c a tâm đi m đ

c l u trong các bi n

ả ử

ư ạ ộ ủ

ượ ư

ế

xc

yc

, to đ đi m trên đ

ng tròn

ạ ộ ể

ườ

xp

yp

. B

c đ u tiên s là tìm bán kính c a đ

ng tròn, v n là kho ng cách gi a hai đi m đó. Th t

ướ ầ

ườ

may là ta đã có m t ph

ng th c,

ươ

distance

, đ làm vi c này:

double

radius = distance(xc, yc, xp, yp);

B

c ti p theo là tìm di n tích c a m t đ

ng tròn có bán kính đó, r i tr l i k t qu .

ướ

ế

ộ ườ

ồ ả ạ ế

double

area = area(radius);

return

area;

K t h p hai b

c này vào trong cùng m t ph

ng th c, ta thu đ

c:

ế ợ

ướ

ươ

ượ

public static double

circleArea (

double

xc,

double

yc,

double

xp,

double

yp) {

double

radius = distance(xc, yc, xp, yp);

double

area = area(radius);

return

area;