bài thực hành tuần 3 1. nội dung 2. các lệnh rẽ...

2
Bài thc hành tun 3 1. Ni dung Các lnh rnhánh: if, if-else, switch Biu thức điều kin: phép so sánh, kết hp bng AND, OR, NOT Hàm trvgiá trbool 2. Các lnh rnhánh 1. Sdng lnh if-else để giải phương trình bậc 1 (CT2 slide bài ging tun 3) 2. Sdng lnh if-else để giải phương trình bậc 2 có tính đến trường hp hsa bng 0 (CT3 slide bài ging tun 3) 3. Sdng lệnh switch để phân loại điểm s(ví dvlnh switch trong slide bài ging tun 3). 4. Bài tp: a. Sdng lệnh if để tìm sgia (trung v) trong 3 skhác nhau (ví d: 2 nm gia trong 3 s1, 3, 2) b. (Khó) Sdng lệnh if để tìm strung vtrong 5 skhác nhau. Gi ý: Strung vlà snhhơn đúng 2 số. Ly ra 4 s, chia 2 cp, tìm min trong 2 cp (2 phép so sánh). So 2 smin, snào nhhơn thì loại vì nó nhhơn 3 số (3 phép so sánh). Ly scòn li thay cho sva loại, so sánh để tìm min trong cp mi (4 phép so sánh). Li so sánh 2 smin mi, loi snhhơn (5 phép so sánh). Như vậy còn li 1 cp và 1 s, so sánh snày vi min tiếp tìm được (6 phép so sánh). 3. Biu thức điều kin Viết và kiểm tra tính đúng đắn ca các biu thức điều kin sau bằng chương trình in ra true hoc false tùy theo giá trca biu thc 1. Snguyên x lớn hơn 5 2. Snguyên x lớn hơn 5 và nhỏ hơn hoặc bng 10 3. Snguyên x là mt schính phương (bình phương của mt snguyên) 4. Ba cnh a, b, c là ba cnh ca mt tam giác vuông (a, b, c là các snguyên và không biết cnh nào là cnh huyn) 5. Hình tròn bán kính R có tâm ti (x, y) chứa điểm (px, py) 6. Điểm (px,py) gần điểm (x1, y1) hơn điểm (x2, y2) 7. Vận động viên A vđích trước tt ccác vận động viên khác (B, C, D): sdng thi gian chy ca các vận động viên tương ứng là timeA, timeB, timeC, timeD 8. Vận động viên A vđích thứ nhì trong các vận động viên (A, B, C, D), sdng thi gian chạy tương ứng là timeA, timeB, timeC, timeD

Upload: others

Post on 13-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Bài thực hành tuần 3

1. Nội dung

Các lệnh rẽ nhánh: if, if-else, switch

Biểu thức điều kiện: phép so sánh, kết hợp bằng AND, OR, NOT

Hàm trả về giá trị bool

2. Các lệnh rẽ nhánh 1. Sử dụng lệnh if-else để giải phương trình bậc 1 (CT2 slide bài giảng tuần 3) 2. Sử dụng lệnh if-else để giải phương trình bậc 2 có tính đến trường hợp hệ số a bằng 0

(CT3 slide bài giảng tuần 3) 3. Sử dụng lệnh switch để phân loại điểm số (ví dụ về lệnh switch trong slide bài giảng tuần

3). 4. Bài tập:

a. Sử dụng lệnh if để tìm số ở giữa (trung vị) trong 3 số khác nhau (ví dụ: 2 nằm giữa trong 3 số 1, 3, 2)

b. (Khó) Sử dụng lệnh if để tìm số trung vị trong 5 số khác nhau. Gợi ý: Số trung vị là số nhỏ hơn đúng 2 số. Lấy ra 4 số, chia 2 cặp, tìm min trong 2 cặp (2 phép so sánh). So 2 số min, số nào nhỏ hơn thì loại vì nó nhỏ hơn 3 số (3 phép so sánh). Lấy số còn lại thay cho số vừa loại, so sánh để tìm min trong cặp mới (4 phép so sánh). Lại so sánh 2 số min mới, loại số nhỏ hơn (5 phép so sánh). Như vậy còn lại 1 cặp và 1 số, so sánh số này với min tiếp tìm được (6 phép so sánh).

3. Biểu thức điều kiện Viết và kiểm tra tính đúng đắn của các biểu thức điều kiện sau bằng chương trình in ra true hoặc false tùy theo giá trị của biểu thức

1. Số nguyên x lớn hơn 5 2. Số nguyên x lớn hơn 5 và nhỏ hơn hoặc bằng 10 3. Số nguyên x là một số chính phương (bình phương của một số nguyên) 4. Ba cạnh a, b, c là ba cạnh của một tam giác vuông (a, b, c là các số nguyên và không biết

cạnh nào là cạnh huyền) 5. Hình tròn bán kính R có tâm tại (x, y) chứa điểm (px, py) 6. Điểm (px,py) gần điểm (x1, y1) hơn điểm (x2, y2) 7. Vận động viên A về đích trước tất cả các vận động viên khác (B, C, D): sử dụng thời gian

chạy của các vận động viên tương ứng là timeA, timeB, timeC, timeD 8. Vận động viên A về đích thứ nhì trong các vận động viên (A, B, C, D), sử dụng thời gian

chạy tương ứng là timeA, timeB, timeC, timeD

4. Hàm trả về giá trị bool 1. Viết hàm isYoung(int age) trả về true khi và chỉ khi biến nguyên age nhỏ hơn hoặc bằng

18. Sử dụng hàm này để in ra câu “You are young” khi tuổi nhập vào không quá 18. 2. Viết hàm isSquare(int x) kiểm tra một số nguyên x có phải là số chính phương 3. Viết hàm tính khoảng cách distance() giữa 2 điểm (x1, y1) và (x2, y2) (đã làm trong bài

thực hành tuần 2). Sau đó viết hàm isNearer() trả về true nếu (px, py) gần (x1, y1) hơn (x2, y2).

double distance(double x1, double y1, double x2, double y2);

bool isNearer(double px, double py,

double x1, double y1, double x2, double y2)

{

if ( distance(px, py, x1, y1) < distance(px, py, x2, y2) )

return true;

else

return false;

}

Bạn có thể rút gọn hàm isNearer() bằng cách return ngay giá trị của biểu thức điều kiện như sau (vì biểu thức điều kiện có giá trị bool)

bool isNearer(double px, double py,

double x1, double y1, double x2, double y2)

{

return distance(px, py, x1, y1) < distance(px, py, x2, y2);

}

4. Bài tập:

a. Cho chiều dài cơ bản của lò xo springLength và độ cứng lò xo springStrength. Hãy viết hàm tính độ lớn của lực đàn hồi lò xo nối 2 chất điểm (x1, y1) và (x2, y2).

b. Với đầu vào như bài tập a) hãy viết 2 hàm tính thành phần lực theo trục x và thành phần lực theo trục y của lực đàn hồi tác động lên chất điểm (x1, y1).

(x1, y1)

(x2, y2)