Về kiến thức : - Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán.. Về kỹ năng : - Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản.. - Viết đ
Trang 1CHƯƠNG III CẤU TRÚC RẼ NHÁNH VÀ LẶP
Tuần : Tiết : 11
§9 CẤU TRÚC RẼ NHÁNH
I Mục tiêu
1 Về kiến thức :
- Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán
- Hiểu cơ chế hoạt động của câu lệnh rẽ nhánh (dạng thiếu và dạng đầy đủ)
- Hiểu câu lệnh ghép
2 Về kỹ năng :
- Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản
- Viết được các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng để thể hiện được thuật toán của một số bài toán đơn giản
3 Về thái độ:
- Tiếp tục khơi gợi lòng ham thích giải toán bằng lập trình trên máy tính
- Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: xem xét gảii quyết vấn đề một cách cẩn thận, chu đáo, có sáng tạo, không thỏa mãn với kết quả ban đầu đạt được,……
II Phương pháp, phương tiện dạy học
- Phương pháp : thuyết trình, vấn đáp
- Phương tiện : máy chiếu, máy tính,sách giáo khoa
III Tiến trình bài dạy
1 Kiểm tra bài cũ:
2 Giảng bài mới
- Thường ngày có rất nhiều
việc chỉ được thực hiện khi có
một điều kiện cụ thể nào đó
được thỏa mãn ở dạng mệnh
đề nếu… thì…
-Yêu cầu học sinh tìm một số
ví dụ
- Yêu cầu học sinh trình bài
thuật toán bằng cách liệt kê và
sơ đồ khối để giải phương trình
bậc hai
- Phân tích để học sinh thấy
được cấu trúc rẽ nhánh trong
thuật toán
Học sinh chú ý lắng nghe và cho ví dụ tương tự
- nhập a,b,c Tính delta=b24acac Nếu delta>=0 thí tính và đưa ra nghiệm, ngược lại thông báo phương trình vô nghiệm
§9 CẤU TRÚC RẼ NHÁNH
1 Khái niệm rẽ nhánh
Ví dụ: Để viết chương trình giải phương
trình bậc hai, ta phải:
Tính =b24acac Sau đó tùy thuộc vào giá trị của mà ta có tính nghiệm hay không Tức là: Nếu <0 thì phương trình vô nghiệm, ngược lại thì phương trình có nghiệm
Như vậy ta có một số mệnh đề dạng: Nếu ………thì………
Nếu ………thì………ngược lại
Mọi ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc rẽ nhánh.
Trang 2- Từ sơ đồ khối giải phương
trình bậc hai Em nào cho biết:
nếu chỉ sử dụng những cấu trúc
lệnh đã học ở những bài trước
thì có thể mô tả được thật toán
này được không?
- Làm chó học sinh thấy rõ sự
cần thiết phải có các câu lệnh
rẽ nhánh
- Giới thiệu cú pháp và phân
tích sự hoạt động của các câu
lệnh rẽ nhánh trong ngôn ngữ
Pascal
- Theo em điều kiện là một
biểu thức như thế nào?
- Chú ý là trước Else không có
dấu chấm phấy
- Cho một số ví dụ minh họa để
giải thích hoạt động của các
dạng câu lệnh if
- Giả sử ta có đoạn lệnh sau:
If d<0 then writeln(‘Pt VN’)
Else
Begin
x1:=(bsqrt(d))/2*a;
x2:=(b+sqrt(d))/2*a;
writeln(‘x1=’,x1:8:3,’x2=’,x2:8:3);
End;
-Nếu ta bỏ lệnh begin…end; thì
xảy ra điều gì nếu ta nhập các
hệ số tương ứng là 1 2 3
Khi đó chương trình không in
ra được câu thông báo là
phương trình vô nghiệm mà sẽ
báo lỗi hoặc cho kết quả sai.
- Câu lệnh begin .end; được
- Không thể nào viết chương trình để mô tả thuật toán trên
- Học sinh chú ý theo dõi sự hoạt động của các dạng của câu lệnh rẽ nhánh
- Là một biểu thức lôgic
- Học sinh chú ý theo dõi và lắng nghe
2 Câu lệnh if-then
Dạng thiếu:
If <ĐK> then <câu lệnh>;
Dạng đầy đủ:
If <ĐK> then <câu lệnh 1>
Else <câu lệnh 2>;
Điều kiện : là biểu thức quan hệ hay
lôgic
Câu lệnh, câu lệnh 1, câu lệnh 2 là một
câu lệnh của Pascal
Trước Else không có dấu chấm phẩy
* Ý nghĩa:
Dạng thiếu: Nếu điền kiện đúng thì
thực hiện câu lệnh, nếu điều kiện sai thì không thực hiện gì
Dạng đầy đủ: Nếu điền kiện đúng thì thực hiện câu lệnh 1, nếu điều kiện sai thì thực hiện câu lệnh 2.
Ví du 1:
If a mod 3=0 then Write(‘a chia het cho 3’) Else write(‘a không chia het cho 3);
Ví dụ 2:
Max:=a
If b>a then max:=b;
Hoặc
If a>b then max:=a Else max:=b;
3 Câu lệnh ghép
Trong Pascal câu lệnh ghép có dạng:
Begin <các câu lệnh>
End;
Ví dụ:
If delta<0 then write(‘pt vo nghiem’) Else
Begin x1:=(bsqrt(delta))/2*a; x2:=(b+sqrt(delta))/2*a;
End;
NhËp a, b, c
TÝnh Delta = b 2 – 4ac
KiĨm tra Delta < 0
TÝnh vµ ® a
v« nghiƯm
KÕt thĩc
Trang 3gọi là câu lệnh ghép.
- Từ những ví dụ trên yêu cầu
học sinh hoàn thiện chương
trình giải phương trình bậc hai
- Hướng dẫn học sinh cách viết
ví dụ 2
- Suy nghĩ trả lời phương trình vô nghiệm
- Hoàn thiện chương trình giải phương trình bậc hai
- Học sinh theo dõ và viết chương trình theo hướng dẫn
4 Một số ví dụ
Ví dụ 1: Tìm nghiệm của pt bậc 2 dạng
ax2+bx+c=0 Các hệ số a,b,c nhập từ bàn phím
program vidu1;
Uses crt;
var a,b,c,d,x1,x2:real;
begin
clrscr;
write('Nhap a,b,c:’);readln(a,b,c);
d:=b*b4ac*a*c;
If d<0 then writeln(‘Pt vo Nghiem’) Else
Begin x1:=(bsqrt(d))/2*a;
x2:=(b+sqrt(d))/2*a;
Writeln(‘x1=’,x1:8:3,’x2=’,x2:8:3);
End;
readln;
end.
Ví dụ 2: Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho 400
hoặc chia hết cho 4 nhưng không chia hết
cho 100.
program vidu1;
Uses crt;
var N,sn:integer;
begin
clrscr;
write('Nhap nam:’);readln(N);
If (N mod 4ac00=0) or ((N mod 4ac=0) and (N mod 100<>0) then Then sn:=366
Else sn:=365;
Writeln(‘So ngay cua nam ‘,N,’ la ‘,sn);
readln;
end.
3 Củng cố :
Cú pháp và ý nghĩa của câu lệnh rẽ nhánh? Câu lệnh sau then hoặc sau else có thể có nhiều lệnh được không? Có thể chứa lệnh if được không?
4 Dặn dò : + Xem lại bài
+ Chuẩn bị bài