Bài 9: CẤU TRÚC RẼ NHÁNH Ví dụ 2: Viết câu lệnh rẽ nhánh dạng thiếu kiểm tra số A có phải là số âm hay không?. Gợi ý:.[r]
Trang 1Giáo viên: Ngô Thị Thảo Lớp 11K
Trang 2KIỂM TRA BÀI CŨ Câu hỏi: Em hãy viết thủ tục đưa dữ liệu ra màn hình? Lấy 1 ví dụ.
Đáp án
- Thủ tục đưa dữ liệu ra màn hình:
Write(<Danh sách kết quả ra>);
hoặc Writeln(<Danh sách kết quả ra>);
- Ví dụ: - write (a,b);
- writeln(‘phuong trinh co nghiem’);
Trang 3CHƯƠNG 3:
CẤU TRÚC RẼ NHÁNH VÀ LẶP
Tiết 14: BÀI 9:
CẤU TRÚC RẼ NHÁNH (t1)
Trang 4Nội dung:
1 Rẽ nhánh
2 Câu lệnh if-then
Trang 5Nếu … thì… Cách diễn đạt này thuộc
dạng thiếu
Nếu … thì… , nếu không thì (ngược lại)… Cách diễn đạt này thuộc dạng đủ
Mệnh đề 1
Nếu trời mưa thì Minh
sẽ ở nhà xem ti vi.
Mệnh đề 2 Nếu trời mưa thì Minh sẽ ở
nhà xem ti vi, nếu trời
không mưa (điều kiện
ngược lại) thì Minh sẽ đi
học nhóm với Hùng
Cấu trúc để mô tả các mệnh đề có dạng như trên được gọi
là cấu trúc rẽ nhánh
Cấu trúc để mô tả các mệnh đề có dạng như trên được gọi
là cấu trúc rẽ nhánh
Xét hai mệnh đề sau:
Bài 9: CẤU TRÚC RẼ NHÁNH
* Khái niệm:
1 Rẽ nhánh
Dạng của
mệnh đề
1 và 2 là
gì?
Trang 6Bước 1: Nhập hệ số a,b,c
Bước 3: Kiểm tra D + Nếu D<0: thông báo phương trình vô nghiệm + Nếu D>=0: phương trình có nghiệm
ax2 + bx +c = 0 (a 0)
* Khái niệm: * Ví dụ:
Các bước giải bài toán:
Bài 9: CẤU TRÚC RẼ NHÁNH
1 Rẽ nhánh
Trang 7Nhập a, b,
c
D:= b2 – 4ac
D>=0 ?
Đúng Sai
Thông báo vô
nghiệm rồi kết
thúc
Tính và đưa ra nghiệm thực rồi
kết thúc
Sơ đồ khối:
Hai câu lệnh có xảy ra đồng thời không?
Trang 82 Câu lệnh IF…then
IF < Điều kiện > THEN < Câu lệnh > ;
Nếu < Điều kiện > đúng thì < Câu lệnh > được thực hiện, sai < Câu lệnh > bị bỏ
qua.
a Dạng thiếu:
* Sơ đồ khối:
* Hoạt động:
Điều kiện Đúng Câu lệnh
Sai
* Trong đó:
IF a mod 2 = 0 THEN Writeln(‘ a la so chan’);
* Ví dụ 1:
- Điều kiện là biểu thức quan hệ hoặc biểu thức logic.
- Câu lệnh là một câu lệnh của TurboPascal
Bài 9: CẤU TRÚC RẼ NHÁNH
Trang 9- Nếu A< 0 thì đưa ra màn hình câu ‘ A là số âm’
Ví dụ 2: Viết câu lệnh rẽ nhánh dạng thiếu kiểm tra số A có phải là số âm hay không?
Gợi ý:
- Nếu A >= 0 thì đưa ra màn hình câu ‘A là số không âm’
Ví dụ 3: Viết câu lệnh rẽ nhánh dạng thiếu kiểm tra số A có phải là số không âm hay không?
Gợi ý:
IF A < 0 THEN Writeln(‘ A la so am’);
IF A >= 0 THEN Writeln(‘ A la so khong am’);
Bài 9: CẤU TRÚC RẼ NHÁNH
Trang 10* Bài toán: Tìm số lớn nhất của 2 số a và b.
→ Các câu lệnh kiểm tra tìm số lớn nhất:
Ngôn ngữ tự nhiên Ngôn ngữ lập trình TurboPascal
Nếu a < b thì gán Max = b;
Nếu a > b thì gán Max = a;
If a < b then Max:=b;
If a > b then Max:=b;
Trang 11IF < Điều kiện > THEN < Câu lệnh 1 >
ELSE < Câu lệnh 2 > ;
Điều kiện Đúng
Câu lệnh 1
Sai
Câu lệnh 2
Nếu < Điều kiện > đúng thì < Câu lệnh 1 > được thực hiện, ngược lại < Câu lệnh 2 > được thực hiện.
Câu lệnh 2
* Hoạt động:
* Sơ đồ:
2 Câu lệnh IF…then
b Dạng đủ:
IF a mod 2 = 0 THEN Writeln(‘ a la so chan’)
ELSE Writeln(‘ a la so le’);
* Ví dụ 1:
Bài 9: CẤU TRÚC RẼ NHÁNH
Trang 12- Nếu A < 0 thì đưa ra màn hình câu ‘ A là số âm’
ngược lại thì đưa ra màn hình câu ‘A là số không âm’
Ví dụ 2: Viết câu lệnh rẽ nhánh dạng đủ kiểm tra số A có phải là số âm hay không âm?
Gợi ý:
- Nếu b > a thì gán max cho b còn ngược lại thì gán max cho a.
Ví dụ 3: Viết câu lệnh rẽ nhánh dạng đủ tìm số lớn nhất
max trong 2 số a và b.
Gợi ý:
IF A < 0 THEN Writeln(‘ A la so am’)
ELSE writeln(‘A la so khong am’);
IF b > a THEN max := b ELSE max := a;
Bài 9: CẤU TRÚC RẼ NHÁNH
Chú ý : Trước từ khoá ELSE không có dấu chấm phẩy “ ; ”
Trang 13* Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0 (a ≠ 0)
Cách 1:
If D < 0 then writeln(‘ phuong trinh vo nghiem’)
Else
Cách 2:
If D < 0 then writeln(‘phuong trinh vo nghiem’);
if D >= 0 then write(‘phuong trinh co nghiem’);
→ Các câu lệnh kiểm tra Delta:
Trang 14Khác nhau:
+ Dạng thiếu: điều kiện sai sẽ bỏ qua câu lệnh
+ Dạng đủ: điều kiện sai sẽ thực hiện câu lệnh 2
Giống nhau:
+ là câu lệnh cấu trúc rẽ nhánh + khi gặp điều kiện sẽ thực hiện thao tác thích hợp
Tìm giống và khác nhau giữa 2 dạng
Trang 15Củng cố
Cấu trúc mệnh đề có dạng:
“Nếu thì ”
“Nếu thì , ngược lại ”
gọi là cấu trúc rẽ nhánh
Lệnh rẽ nhánh dạng thiếu
Lệnh rẽ nhánh dạng đủ
IF < Điều kiện > THEN < Câu lệnh 1 >
ELSE < Câu lệnh 2 > ;
IF < Điều kiện > THEN < Câu lệnh > ;
Trang 16* Bài tập củng cố:
2 Hãy viết câu lệnh thể hiện: nếu a chia hết cho 5 thì đưa ra
màn hình thông báo “a la so chia het cho 5”, ngược lại đưa ra
“a la so khong chia het cho 5”
If (a mod 2 =0) then
Writeln(a, ‘ la so chia het cho 5’) Else
Writeln(a, ‘ la so khong chia het cho 5’);
1 Hãy viết câu lệnh thể hiện: nếu x bằng 1 thì đưa ra màn hình
thông báo “x la so nguyen to”
If x = 1 then
Writeln(x, ‘ la so nguyen to’);
Trang 17•Hướng dẫn về nhà học
đủ và dạng thiếu
- Đọc trước phần 3, 4 SGK và trả lời câu hỏi: Nếu sau Then hoặc Else nhiều hơn 1 câu lệnh thì giải quyết như thế nào?