- 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.. Bài mới: Gv: Ở những bài trước các em đã được học một số câu lệnh vào ra đơn giản của pascal như: Lệnh v
Trang 1Tiết 12
Chương III:CẤU TRÚC RẼ NHÁNH VÀ LẶP
Bài 9: CẤU TRÚC RẼ NHÁNH
(Tiết1)
Ngày soạn:
Ngày dạy:
Người soạn: Mai Ngọc Hà Giáo viên hương dẫn: Ths Ngô Thị tú Quyên
I Mục đích, yêu cầu.
- 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âu lệnh rẽ nhánh (dạng thiếu và dạng đủ)
- Hiểu câu lệnh ghép
- 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
II Phương pháp, phương tiện dạy học.
1 Phương pháp: Thuyết trình, vấn đáp, trực quan, gợi mở.
2 Phương tiện: Giáo án, sách giáo khoa, đồ dùng trực quan
* Bảng phụ:
Bảng phụ 1: Hình 4.Sơ đồ thể hiện cấu trúc rẽ nhánh:
Sai Đúng
Bảng phụ 2: Câu lệnh if-then
Đúng Sai Đúng
Sai
Nhập a,b,c
D >=
0?
D← b 2 – 4ac
tính và đưa ra nghiệm thực, rồi kết thúc
Thông báo vô
nghiệm, rồi kết thúc
điều
kiện
câu lệnh điều
kiện
câu lệnh 1 câu lệnh 2
Trang 2III Nội dung chính.
1 Ổn định tổ chức lớp.
Lớp: Sĩ số: Vắng: Phép:
2 Bài mới:
Gv: Ở những bài trước các em đã được học một số câu lệnh vào ra đơn giản của pascal như: Lệnh vào ra dữ liệu, lệnh gán…Với những lệnh này các
em chỉ có thể giải quyết được những bài toán đơn giản, Vậy để giải những bài toán phức tạp hơn thì chúng ta phải làm thế nào? Để trả lời cho câu hỏi
đó chúng ta vào bài ngày hôm nay:
Nội dung Thờigian Hoạt động của giáo viên và học sinh
1 Rẽ nhánh.
Ví dụ 1:
Nếu trời không mưa thì Châu sẽ
đến nhà Ngọc
Ví dụ 2:
Nếu trời không mưa thì Ngọc sẽ
mưa đến nhà Châu
Sẽ gọi điện cho Châu để trao đổi
- Dạng thiếu:
Nếu … thì…
- Dạng đủ:
Nếu ….thì…,nếu không thì…
Gv: Trong cuộc sống hàng ngày
có rất nhiều công việc chỉ được thực hiện khi một điều kiện cụ thể nào đó được thỏa mãn
Hs: CHú ý lắng nghe
Gv: Vừa nêu ví dụ sách giáo khoa vừa minh họa bằng sơ đồ lên bảng Hs: Nghe giảng và ghi ví dụ vào vở
Gv: Giải thích cho học sinh hiểu ý nghĩa của 2 ví dụ này để học sinh hiểu về cấu trúc rẽ nhánh Yêu cầu học sinh đưa ra cấu trúc rẽ nhánh Hs: Đưa ra cấu trúc rẽ nhánh Gv: Yêu cầu học sinh lấy ví dụ có cấu trúc tương tự
Hs lấy ví dụ
Gv nhận xét: Cấu trúc chung để
mô tả các mệnh đề như vậy được gọi là cấu trúc rẽ nhánh dạng thiếu
và dạng đủ
Gv: Ghi bảng
Hs: Chú ý lắng nghe và ghi bài Gv: Vậy ở 2 ví dụ trên, ví dụ nào
có cấu trúc rẽ nhánh dạng thiếu, ví
dụ nào có cấu trúc rẽ nhánh dạng đủ?
Hs trả lời: Ví dụ 1 có cấu trúc rẽ
Trang 3Ví dụ: Giải phuơng trình bậc hai:
ax2 + bx + c = 0 (với a ≠ 0)
*Liệt kê:
B1: Tính biệt số Delta D = b2-4ac
B2: Xét D
Nếu D < 0 thì thông báo Phương
trình vô nghiệm
Nếu D >= 0 thì thông báo phương
trình có nghiệm
*Sơ đồ khối:
(Bảng phụ 1)
2 Câu lệnh if – then
a, Cấu trúc:
*Dạng thiếu:
if < điều kiện> then <câu lệnh>;
nhánh dạng thiếu, ví dụ 2 có cấu trúc rẽ nhánh dạng đủ
Gv: Đó là trong cuộc sống, còn trong thuật toán thì cũng có những thao tác tiếp theo phụ thuộc vào kết quả nhận được từ các bước trước
đó Ở phần bài tập và thực hành các
em đã giải phương trình bậc hai, nhưng như vậy đã xét hết các trường hợp chưa?
Hs trả lời: Chưa
Gv: vậy em nào cho cô biết các bước để giải phương trình bậc hai?
Hs trả lời:
B1: Tính biệt số Delta D = b2 – 4ac
B2: Xét D Nếu D < 0 thì thông báo Phương trình vô nghiệm
Nếu D >= 0 thì thông báo phương trình có nghiệm
Gv nhận xét: Như vậy, sau khi tính D, tùy thuộc vào giá trị của D
mà một trong hai thao tác sẽ được thực hiện Có 2 cách biểu diễn thuật toán, vưa rồi các em trả lời là cách liệt kê, sau đây là sơ đồ khối.( Giáo viên treo bảng phụ 1 có sơ đồ khối lên bảng)
Gv: Giải thích ý nghĩa của các hình biểu diễn và nêu hoạt động của
sơ đồ
Hs: Chú ý lắng nghe
Gv: Các em để trống vở và về vẽ
sơ đồ này vào vở
Gv: Để mô tả cấu trúc rẽ nhánh
trong pascal dùng câu lệnh if – then.
Tương ứng với hai dạng thiếu và đủ
ở trên, pascal cũng có hai dạng câu
lệnh if - then.
Trang 4*Dạng đủ:
if <điều kiện> then <câu lệnh1>
else <câu lệnh 2>;
(Bảng phụ 2)
Trong đó:
+ if, then, else là các từ khóa
+ Điều kiện là các biểu thức
quan hệ hoặc biểu thức logic cho
gía trị đúng hoặc sai
+Câu lệnh, câu lệnh1, câu lệnh2
là một câu lệnh của pascal
b, Ý nghĩa:
- Ở dạng thiếu: điều kiện sẽ được
tính và kiểm tra Nếu điều kiện
đúng (có giá trị true) Thì câu lệnh
sẽ được thực hiện, ngược lại thì
câu lệnh sẽ bị bỏ qua.
- Ở dạng đủ: điều kiện cũng được
tính và kiểm tra Nếu điều kiện
đúng thì câu lệnh 1 sẽ được thực
hiện, ngược lại thì câu lệnh 2 sẽ
được thực hiện
-Ví dụ 1: Đưa ra màn hình thông
báo về nghiệm của phương trình
khi D < 0
If D < 0 then writeln(‘ phuong trinh
vo nghiem’);
-Ví dụ 2: Kiểm tra một số a có chia
hết cho 3 hay không rồi thông báo
kết quả ra màn hình
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 số lớn nhất giữa hai
số a và b
Hs: chú ý nghe giảng
Gv: Viết cấu trúc của các câu lệnh dạng thiếu và dạng đủ lên bảng, rồi đưa bảng phụ thứ 2, giải thích và trình bày hoạt động của câu lệnh Hs: Chú ý nghe giảng và ghi chép bài
GV: Lấy ví dụ trong sách giáo khoa, diễn giải bằng lời cho học sinh về câu lệnh của bài toán Gọi học sinh trả lời
Hs trả lời : -Ví dụ 1:
If D < 0 then writeln(‘ 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’);
Gv: Lấy ví dụ 3 Hỏi học sinh để tìm số lớn nhất giữa hai số a và b có mấy cách? Đó là những cách nào?
Hs trả lời: Có 2 cách
Trang 5+ Cách 1:
max:= a;
if b > a then max:= b;
+ Cách 2:
if b > 0 then max:=b else max:=a;
- Chú ý:
+ Trước else không có dấu ‘;’
+ Các câu lệnh if -then có thể lồng
nhau
2 Câu lệnh ghép.
- Trong pascal Câu lệnh ghép là tập
hợp các câu lệnh đặt trong cặp từ
khóa begin-end
- Cấu trúc: Trong pascal câu lệnh
ghép có dạng:
begin
< các câu lệnh >;
end;
- Trong đó:
begin, end là các từ khóa và giống
-Cách 1: Dùng lệnh gán max:=a
và lệnh if-then dạng thiếu
-Cách 2: Dùng câu lênh if- then dạng đủ
Gv: viết bảng, phân tích biểu thức điều kiện if, câu lệnh sau then và sau else
Gv: Từ ví dụ 3, em nào cho cô biết làm cách nào nhanh hơn? Vì sao?
Hs trả lời: Cách 2 đơn giản và nhanh hơn vì chỉ cần dùng một câu lệnh if-then đầy đủ, còn cách 1 phải dùng đến 2 lệnh là lệnh gán và lệnh if-then dạng thiếu
GV: Các em chú ý trong giải bài toán thì phải lựa chọn câu lệnh cho phù hợp
Gv: Nhắc chú ý cho học sinh Hs: chú ý nghe giảng
Gv: Cú pháp theo sau một từ khóa (như then hoặc else) thì là một câu lệnh, nhưng trong nhiều trường hợp thì các thao tác sau đó khá phức tạp,
nó không chỉ là một câu lệnh mà rất nhiều câu lệnh Trong các trường hợp như vậy ngôn ngữ lập trình cho phép ghép một dãy câu lệnh hợpthành câu lệnh ghép hay câu lệnh hợp thành Chúng ta sang mục tiếp theo
Hs: Nghe giảng
Gv: Nêu cấu trúc của câu lệnh ghép và cũng giải thích các thành phần của câu lệnh
Hs: Nghe giảng và ghi bài
Gv: Lấy ví dụ, yêu cầu học sinh
sử dụng câu lệnh để tìm nghiệm phưong trình bậc hai, thông báo vô nghiệm nếu D < 0, ngược lại tính
Trang 6như begin, end của một chương
trình
- Ví dụ: Tìm nghiệm của phương
trình bậc hai, thông báo vô nghiệm
nếu D < 0, ngược lại thì tính
nghiệm
If D < 0 then writeln(‘phuong trinh
vo nghiem’)
else
begin x1:=(-b-sqrt(b*b4*a*c))/(2*a);
x2:=-b/a-x1;
end;
- Chú ý:
+ Sau end ở câu lệnh ghép có
dấu ‘;’
+ câu lệnh, câu lệnh 1, câu lệnh 2,
trong các câu lệnh if-then ở trên có
thể là câu lệnh ghép
nghiệm
Hs trả lời
Gv: Nhận xét, viết đoạn chương trình lên bảng và phân tích từng câu lệnh trong đoạn chương trình đó, chỉ
ra câu lệnh if-then đầy đủ, câu lệnh ghép
Hs: Lắng nghe và ghi bài
GV: Nhắc và cho học sinh ghi các chú ý
Hs: Ghi bài
IV Củng cố và dặn dò:
1 Củng cố:
- Nhắc lại cấu trúc chung của cấu trúc rẽ nhánh
- Câu lệnh if-then, sơ đồ thực hiện cấu trúc if-then
- Câu lệnh ghép
- Các chú ý
2 Dặn dò:
- Bài tập về nhà:
+ Câu hỏi 1,2,4 sách giáo khoa trang 50, 51
+ Bài 3.1 đến 3.3, 3.11 đến 3.14 sách bài tập
- Đọc trước mục 4: Một số ví dụ
- Xem phụ lục B (trang 131), phụ lục C (trang 139) trong sách giáo khoa
V Rút kinh nghiệm: