GV: Đưa ra các ví dụ có sử dụng lệnh rẽ nhánh, nếu không có câu lệnh rẽ nhánh thì không thể thực hiện được.. HS: Quan sát và nghe giảng.[r]
Trang 1Ngày soạn: 25/10/2010
Ngày giảng:
Lớp dạy:
Bài 9: CẤU TRÚC RẼ NHÁNH
1 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 cấu trúc và hoạt động rẽ nhánh dạng thiếu và dạng đủ
2 Kỹ năng
- Nhận biết được sự xuất hiện của cấu trúc rẽ nhánh trong khi giải quyết một số bài toán
- Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán một số bài toán đơn giản
- Viết được lưu đồ thuật toán của cấu trúc rẽ nhánh dạng thiếu và dạng đủ
3 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ủa người lập trình như: xem xét giải 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,…
1 Giáo viên: máy vi tính, máy chiếu, sách giáo khoa, sách giáo viên và đồ dùng dạy học
2 Học sinh: sách giáo khoa, vở ghi chép, đồ dùng học tập và chuẩn bị bài mới
III Tiến trình:
1 Kiểm tra bài cũ (5’):
- Để nhập dữ liệu từ bàn phím dùng thủ tục nào? để đưa dữ liệu ra màn hình dùng thủ tục nào?
- Nêu một số thao tác thường dùng trong Pascal?
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC
GV: Trong thực tế hàng ngày, có rất nhiều
việc chỉ được thực hiện khi một điều kiện
nào đó được thỏa mãn Ví dụ:
+ Nếu mai trời mưa thì Châu sẽ ở nhà
xem TV
+ Nếu mai trời không mưa thì Châu sẽ
đến nhà Ngọc
+ Nếu mai trời không mưa thì Châu sẽ
đến nhà Ngọc, nếu mưa thì Châu sẽ ở nhà
xem TV
Yêu cầu HS tìm 1 số ví dụ tương tự
HS: Lấy ví dụ
GV: Yêu cầu HS nêu cấu trúc chung của
cách diễn đạt đó
HS: Suy nghĩ trả lời
GV: Trong nhiều thuật toán, các thao tác
1 Rẽ nhánh:
Cấu trúc dùng để mô tả các mệnh đề có dạng:
Nếu thì (1) Nếu thì, nếu không thì (2) được gọi là cấu trúc rẽ nhánh thiếu (mô tả mệnh đề 1) và đủ (mô tả mệnh đề dạng 2)
Ví dụ: Để giải phương trình bậc hai:
ax2 + bx + c = 0 (a ≠ 0 )
Ta thực hiện theo các bước
+ Tính Delta: D = b2 – 4ac + Nếu D < 0 thì kết luận phương trình vô nghiệm
+ Nếu D >= 0 thì kết luận phương trình có nghiệm
Sơ đồ khối:
12’
Trang 2tiếp theo sẽ phụ thuộc vào kết quả nhận
được từ các bước trước đó Cấu trúc dùng
để mô tả các mệnh đề có dạng như trên
được gọi là cấu trúc rẽ nhánh thiếu và đủ
GV: hãy nêu các bước giải phương trình
bậc hai:
ax2 + bx + c = 0 (a ≠ 0)
HS: Nêu các bước giải
GV: Nhận xét phần trả lời của học sinh
Đưa ra bảng phụ vẽ lưu đồ thuật toán giải
phương trình bậc hai và giải thích hoạt
động của lưu đồ thuật toán
HS: Chú ý quan sát lắng nghe
GV: Các ngôn ngữ lập trình đều có các
câu lệnh để mô tả cấu trúc rẽ nhánh Sau
đây ta xét câu lệnh mô tả cấu trúc rẽ
nhánh trong ngôn ngữ Pascal
GV: Giới thiệu cấu trúc lệnh If – then
HS: Nghe, ghi và quan sát
GV:Lưu ý HS sau Then và sau Else chỉ có
một câu lệnh chương trình
GV: Với hai dạng này, dạng nào dùng
thuận tiện hơn?
HS: Suy nghĩ tìm câu trả lời
GV: Gợi ý để HS đưa ra được tùy trường
hợp cụ thể mà dùng dạng thiếu hay dạng
đủ
GV: Treo (hoặc chiếu lên màn hình) sơ đồ
từng câu lệnh (dạng thiếu - dạng đủ) và
giải thích hoạt động của từng câu lệnh
HS: Quan sát và nghe giảng
Các ngôn ngữ lập trình đều có các câu lệnh để
mô tả cấu trúc rẽ nhánh
2 Câu lệnh if – then:
- Pascal dùng câu lệnh if – then để mô tả việc
rẽ nhánh tương ứng với hai loại mệnh đề rẽ nhánh như sau:
a) Dạng thiếu:
if <điều kiện> then <câu lệnh>;
b) Dạng đủ:
if <điều kiện> then <câu lệnh1>
else <câu lệnh 2>;
Trong đó:
Điều kiện là biểu thức lôgic Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu
lệnh đơn
Ý nghĩa của các câu lệnh:
- Dạng thiếu: Nếu điều kiện đúng thì câu lệnh được thực hiện, nếu điều kiện sai thì câu lệnh
sẽ bị bỏ qua và không thực hiện gì
- Dạng đủ: Nếu điều kiện đúng thì thực hiện câu lệnh 1, ngược lại (nếu điều kiện sai) thì thực hiện câu lệnh 2
- Lưu đồ dạng thiếu:
15’
Nhập a, b, c
D b2 - 4acD≥
0 nghiệm thực rồi Tính và đưa ra
kết thúc
Thông báo vô nghiệm rồi kết thúc
Đúng Sai
Trang 3GV: Đưa ra các ví dụ có sử dụng lệnh rẽ
nhánh, nếu không có câu lệnh rẽ nhánh thì
không thể thực hiện được
HS: Quan sát và nghe giảng
GV: ở ví dụ 3, sử dụng cách nào nhanh
hơn
HS: cách 2 tiện hơn
GV: Phân tích sự tiện lợi trong cách 2 và
số lệnh mà máy phải thực hiện
GV: Tiếp tục đưa ra các ví dụ thực tế và
yêu cầu học sinh sử dụng câu lệnh if –
then để mô tả
HS: Thực hiện theo yêu cầu của GV
GV: Cấu trúc rẽ nhánh là gì?
HS: Suy nghĩ trả lời
GV: Ta đã biết trong câu lệnh if – then thì
sau then, sau else chỉ có một câu lệnh.
Vậy muốn thực hiện nhiều câu lệnh sau
then hay sau else thì làm thế nào?
HS: Đưa ra các ý kiến
GV:Khi đó ta cần gộp nhiều câu lệnh đó
- Lưu đồ dạng đủ:
* Chú ý:
- Trước else không có dấu “ ; ”.
- If…then có thể lồng nhau.
- Khi viết câu lệnh rẽ nhánh đủ và lồng nhau
cần phân biệt Else của If nào.
Ví dụ 1:
if D<0 then write('Phuong trinh vo nghiem ');
Ví dụ 2:
if a mod 3 = 0 then write(a, ' chia het cho 3 ') else write(a, ' khong chia het cho 3');
Ví dụ 3: Tìm giá trị lớn nhất (max) trong hai
số a và b:
cách 1:
max := a;
if b>a then max := b;
cách 2:
if a> b then max := a else max := b;
- Cấu trúc rẽ nhánh là câu lệnh dùng để mô tả mệnh đề rẽ nhánh
3 Câu lệnh ghép:
- Câu lệnh ghép có dạng:
begin
<các câu lệnh>;
end;
8’
Trang 4lại và coi đó là một câu lệnh trong chương
trình Các ngôn ngữ lập trình cho phép
gộp một dãy câu lệnh thành một câu lệnh
ghép (hay câu lệnh hợp thành)
GV: Đưa ra một số chú ý
HS: Nghe và ghi bài
GV: Lấy ví dụ và phân tích cho học sinh
hiểu ý nghĩa của câu lệnh ghép
HS: Quan sát, nghe và ghi bài
GV: Đưa ra các tình huống thực tế bắt
buộc phải sử dụng câu lệnh ghép và yêu
cầu HS dùng câu lệnh Pascal để thể hiện
HS: Thực hiện theo yêu cầu của GV
Ví dụ:
if D<0 then writeln('Phuong trinh vo nghiem.') else
begin
x1:= (- b - sqrt(D))/(2*a);
x2:= (- b + sqrt(D))/(2*a);
end;
4 Củng cố (3’):
- Hệ thống bài giảng, nhấn mạnh các kiến thức trọng tâm:
+ Câu lệnh if – then dạng thiếu: Cấu trúc, ý nghĩa, sơ đồ hoạt động
+ Câu lệnh if – then dạng đủ: Cấu trúc, ý nghĩa, sơ đồ hoạt động
+ Câu lệnh ghép: cấu trúc, ý nghĩa
5 Hướng dẫn về nhà (1’):
- Xem trước bài: Cấu trúc lặp
- Trả lời câu hỏi 1, 2, 4 sgk trang 50, 51
- Viết chương trình nhập vào 3 số a, b, c và in ra màn hình giá trị lớn nhất trong 3 số đó