Để máy tính có thể giải được các bài toán xuất phát từ thực tế cuộc sống thì con người cần phải học cách giao tiếp với máy tính.Việc giao tiếp đó được thực hiện thông qua ngôn ngữ lập trình. Trong chương trình tin học lớp 11 học sinh được làm quen với ngôn ngữ lập trình và lập trình giải quyết các bài toán đơn giản. Tuy nhiên để có thể sử dụng đúng cấu trúc cú pháp câu lệnh vào các trường hợp cụ thể trong từng bài toán đòi hỏi học sinh phải sử dụng các cấu trúc câu lệnh phù hợp. Một trong những cấu trúc được sử dụng để giải quyết những công việc chỉ được thực hiện khi thoả mãn một điều kiện cho trước là cấu trúc rẽ nhánh.
Trang 1- Tác giả: ………
- Chức vụ: Giáo viên Tin học
- Đơn vị công tác: Trường THPT ……….
CHUYÊN ĐỀ: CẤU TRÚC RẼ NHÁNH
(Bài 9 Cấu trúc rẽ nhánh – Tin học lớp 11) PHẦN 1: GIỚI THIỆU CHUYÊN ĐỀ
1 Lý do chọn chuyên đề:
Để máy tính có thể giải được các bài toán xuất phát từ thực tế cuộc sống thì con người cần phải học cách giao tiếp với máy tính.Việc giao tiếp
đó được thực hiện thông qua ngôn ngữ lập trình Trong chương trình tin học lớp 11 học sinh được làm quen với ngôn ngữ lập trình và lập trình giải quyết các bài toán đơn giản Tuy nhiên để có thể sử dụng đúng cấu trúc cú pháp câu lệnh vào các trường hợp cụ thể trong từng bài toán đòi hỏi học sinh phải
sử dụng các cấu trúc câu lệnh phù hợp Một trong những cấu trúc được sử dụng để giải quyết những công việc chỉ được thực hiện khi thoả mãn một điều kiện cho trước là cấu trúc rẽ nhánh
2 Đối tượng dạy học
- Học sinh khối 11 trường THPT Tam Dương II
3 Thiết bị dạy học và học liệu bổ trợ
- Máy tính, máy chiếu, giấy A3, bút dạ
- SGK, sách giáo viên, tài liệu liên quan về cấu trúc rẽ nhánh của ngôn ngữ lập trình Pascal
4 Nội dung chuyên đề
4.1 Rẽ nhánh
- Cấu trúc Nếu… thì… được gọi là rẽ nhánh dạng thiếu
- Cấu trúc Nếu… thì…, nếu không thì… gọi là rẽ nhánh dạng đủ
Trang 24.2 Câu lệnh IF – THEN
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ệnh 1> else <câu lệnh 2>;
4.3 Câu lệnh ghép
- Chức năng của lệnh ghép: Ghép hai hay nhiều câu lệnh thành một nhóm lệnh
- Cấu trúc:
Begin
End;
PHẦN 2 KẾ HOẠCH DẠY HỌC CHUYÊN ĐỀ
1 Thời lượng (2 tiết)
2 Giáo án
Tiết 11 CÂU LỆNH RẼ NHÁNH
I Mục tiêu bài học:
1 Kiến thức:
- Giới thiệu tổ chức rẽ nhánh, cú pháp và chức năng các câu lệnh rẽ nhánh
(dạnh thiếu và dạng đầy đủ)
2 Kỹ năng:
- Rèn luyện kỹ năng sử dụng câu lệnh rẽ nhánh để viết các chương trình
có sử dụng các câu lệnh này
3 Thái độ:
- Học tập tích cực, nghiêm túc, yêu thích môn học đặc biệt là lập trình
II Chuẩn bị
1 Giáo viên
- Phiếu trả lời, chương trình mẫu
- Giáo án
Trang 32 Học sinh
- Sách vở
III Tiến trình lên lớp
1 Khởi động
- Nghe bài hát Tự nguyện và tình huống xuất phát từ thực tế để tìm hiểu về rẽ nhánh
- Thực hiện chương trình giải phương trình bậc hai với các bộ dữ liệu khác nhau
2 Hình thành kiến thức - Rẽ nhánh: dạng thiếu và dạng đủ
- Câu lệnh if – then: cấu trúc, hoạt động
3 Luyện tập - Áp dụng câu lệnh if – then vào thể hiện rẽ
nhánh với ví dụ giải phương trình bậc hai
4 Mở rộng - Áp dụng câu lệnh if – then vào viết chương
trình tìm số lớn nhất trong ba số
IV Hướng dẫn cụ thể tiến trình dạy học
1 Tình huống xuất phát
(1) Mục tiêu:
- Tạo tinh thần thỏa mái, môi trường thân thiện cho học sinh trước khi vào bài học
- Tạo động cơ để học sinh có nhu cầu quan tâm, tìm hiểu về câu lệnh
rẽ nhánh
(2) Phương pháp/ kỹ thuật dạy học: hoạt động cá nhân, hoạt động nhóm
(3) Phương tiện dạy học: Máy tính, máy chiếu
(4) Sản phẩm: Học sinh có nhu cầu tìm hiểu về câu lệnh rẽ nhánh
Trang 4Nội dung hoạt động
Hoạt động của giáo viên Hoạt động của học sinh
GV chia lớp thành 4 nhóm
GV cho Hs nghe một đoạn nhạc bài hát “Tự
nguyện”
GV dẫn dắt trong cuộc sống có rất nhiều
công việc muốn thực hiện được thì phải thoả
mãn một điều kiện cho trước nào đó
GV Đưa tình huống xuất phát trong thực tế
là đoạn hội thoại của hai bạn mèo và chó
? yêu cầu mỗi nhóm lấy một ví dụ có sử
dụng cấu trúc Nếu thì… và Nếu…
thì….Nếu không thì…
GV chốt lại
1 Rẽ nhánh
- Cấu trúc Nếu thì được gọi là rẽ nhánh
dạng thiếu
- Cấu trúc Nếu… thì nếu không thì… gọi là
rẽ nhánh dạng đủ
GV: Chiếu chương trình giải phương trình
bậc hai (Phụ lục 1) đã làm ở tiết trước gọi
hs lên bảng và thử với các bộ dữ liệu
TH1: 1 -5 6 (x1 = 2.00 x2 = 3.00)
TH2: 2 4 2 (x1= x2)
TH3: 1 1 1 chương trình báo lỗi
(? ) Tại sao chương trình báo lỗi
Các nhóm cử đại diện phát biểu
Học sinh ghi bài
HS thực hiện trên máy tính
Câu trả lời mong đợi
Do Delta < 0 nên không thực hiện tính căn bậc hai của delta được Giáo viên: Như vậy để có thể xử lý cho
những trường hợp chỉ xảy ra khi thoả mãn
một điều kiện cho trước thì ngôn ngữ lập
trình cung cấp cho chúng ta câu lệnh if –
then để mô tả cấu trúc rẽ nhánh
Hs nghe giảng
Trang 52 Hình thành kiến thức
(1) Mục tiêu:
- Học sinh hiểu được cấu trúc rẽ nhánh dạng thiếu và dạng đủ
- Hiểu được cấu trúc, hoạt động của câu lệnh IF – THEN dạng thiếu và dạng đủ
(2) Phương pháp/ kỹ thuật dạy học: Thuyết trình, Hoạt động nhóm (3) Phương tiện dạy học: Máy tính, máy chiếu, máy ảnh
(4) Sản phẩm: Học sinh hiểu được cấu trúc, hoạt động cẩu câu lệnh IF
- THEN
Hoạt động của giáo viên Hoạt động của học sinh
Giáo viên trình bày về câu lệnh if - then
2 Câu lệnh if – then
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ệnh 1> else <câu
lệnh 2>;
Trong đó:
- điều kiện: là biểu thức logic
- câu lệnh, câu lệnh 1, câu lệnh 2 là một câu
lệnh của Pascal
Hoạt động:
- 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 câu
lệnh bị bỏ qua
- Dạng đủ: Nếu điều kiện đúng thì câu lệnh
1 được thực hiện nếu điều kiện sai thì câu
lệnh 2 được thực hiện
Sơ đồ hoạt động:
Hs ghi chép
Hs ghi chép
Hs ghi chép
Trang 6Hs ghi chép
Hs ghi chép
3 Luyện tập vận dụng
(1) Mục tiêu: Học sinh vận dụng được câu lệnh IF – Then viết được đoạn lệnh cho bài toán cụ thể
(2) Phương pháp/ kỹ thuật dạy học: Hoạt động nhóm, hoạt động cá nhân (3) Phương tiện: Máy tính, máy chiếu, giấy A3
(4) Sản phẩm: Báo cáo kết quả hoạt động của nhóm mình
Hoạt động của giáo viên Hoạt động của học sinh
Giáo viên cho các nhóm viết câu lệnh if –
then thể hiện ví dụ:
- Nếu delta >= 0 thì thông báo phương trình
có nghiệm
- Nếu delta<0 thì thông báo phương trình vô
nghiệm
- Nếu delta <0 thì thông báo phương trình
vô nghiệm nếu không thì thông báo phương
trình có nghiệm
GV yêu cầu một nhóm trình bày còn nhóm
còn lại nhận xét
Ví dụ 2: Viết câu lệnh if – then tìm giá trị
Hs làm việc theo nhóm để hoàn thiện
Nhóm cử đại diện trình bày ví dụ
Trang 7nhỏ nhất của hai số nguyên a, b
GV: yêu cầu hai nhóm thực hiện viết câu
lệnh if – then dạng thiếu, và hai nhóm viết
câu lệnh if then dạng đủ
Hs làm việc theo nhóm để hoàn thiện
Nhóm cử đại diện trình bày ví dụ nhóm còn lại nghe và nhận xét
Câu trả lời mong đợi:
Dạng thiếu
If a<b then min:=a;
If a>b then min:=b;
Dạng đủ
If a<b then min:=a Else min:=b;
4 Hoạt động mở rộng
(1) Mục tiêu: Giúp những học sinh khá giỏi được luyện tập sâu hơn về câu lệnh IF - THEN
(2) Phương pháp/ kỹ thuật dạy học: Hoạt động cá nhân tại nhà
(3) Phương tiện: SGK
(4) Sản phẩm: học sinh sử dụng được câu lệnh IF – THEN để giải bài toán
Hoạt động của giáo viên Hoạt động của học sinh
Giáo viên cho hs các nhóm điền thực hiện ví
dụ: Viết câu lệnh if – then tìm giá trị lớn
nhất của ba số nguyên a, b, c
(?) Đưa ra thuật toán cho bài toán trên Câu trả lời mong đợi:
Cách 1
Nếu a>=b và a>= c thì a là lớn nhất
Nếu a=<b và c =< b thì b là lớn
Trang 8GV: yêu cầu nhóm 1 và 3 viết câu lệnh if
-then theo cách 1
Nhóm 2, 4 viết theo cách 2
GV yêu cầu viết chương trình nếu còn thời
gian
Chương trình:
program tim_max;
uses crt;
var a,b,c: integer;
begin
writeln('Nhap a, b,c: ');
readln(a, b, c);
if (a >= b) and (a>=c) then max:=a;
if (b>=a) and (b>=c) then max:=b;
if (c>=a) and (c>=b) then max:=c;
writeln('Gia tri lon nhat la ', max);
readln
end
nhất Nếu c>=b và c>=a thì c là lớn nhất
Cách 2: dùng biến Max Max:=a;
Nếu max <= b thì max := b;
Nếu max<= c thì max:= c;
Hs làm việc theo nhóm để hoàn thiện
Nhóm cử đại diện trình bày ví dụ nhóm còn lại nghe và nhận xét
Câu trả lời mong đợi
Cách 1
If (a>=b) and (a>=c) then max:=a;
If (b>=a) and (b>=c) then max:=b;
If (c>=a) and (c>=b) then max:=c; Cách 2
Max:=a;
if max <= b then max := b;
if max<= c then max:= c;
V Củng cố dặn dò.
Trang 9- Câu lệnh rẽ nhánh dạng thiếu dạng đủ,
- BTVN: HS hoàn thiện chương trình tìm Max của ba số;
Làm bài tập 4 SGK tr51
Tiết 12 CÂU LỆNH RẼ NHÁNH
I Mục tiêu bài học:
1 Kiến thức:
- Giới thiệu cú pháp và chức năng câu lệnh ghép
2 Kỹ năng:
- Rèn luyện kỹ năng sử dụng câu lệnh rẽ nhánh và câu lệnh ghép để viết
các chương trình có sử dụng các câu lệnh này
3 Thái độ:
- Học tập tích cực, nghiêm túc
II Chuẩn bị
1 Giáo viên
- Phiếu học tập
- Giáo án
2 Học sinh
- Sách vở
III Tiến trình lên lớp
1 Khởi động
- Đưa ra ví dụ trong trường hợp delta >0 và trường hợp delta = 0 thì cần tính các giá trị nghiệm và phải thực hiện nhiều hơn một lệnh sau từ khoá then của câu lệnh if - then
2 Hình thành kiến thức - Cấu trúc câu lệnh ghép
3 Luyện tập
- Áp dụng câu lệnh if – then, câu lệnh ghép vào thể hiện rẽ nhánh với ví dụ giải phương trình bậc hai
4 Mở rộng - Áp dụng câu lệnh if – then, câu lệnh ghép
Trang 10vào viết đoạn chương trình kiểm tra ba số có tạo thành số đo ba cạnh của tam giác hay không?
IV Hướng dẫn cụ thể tiến trình dạy học
1 Tình huống xuất phát
(1) Mục tiêu: Tạo mâu thuẫn dẫn đến việc cần có câu lệnh ghép Tạo nhu cầu cần tìm hiểu kiến thức mới của học sinh
(2) Phương pháp/ kỹ thuật dạy học: Thuyết trình, nêu và giải quyết vấn đề (3) Phương tiện: máy tính, máy chiếu
(4) Sản phẩm: Học sinh có nhu cầu tìm hiểu kiến thức mới để giải quyến vấn đề gặp phải
Hoạt động của giáo viên Hoạt động của học sinh
Sau khi học sinh đã tìm hiểu về cấu
trúc if-then GV chia lớp thành bốn
nhóm với yêu cầu sau
Nhóm 1,3
Yêu cầu: viết đoạn lệnh thực hiện
yêu câu sau
Nếu delta > 0 thì
- Thông báo phương trình có hai
nghiệm
- Tính nghiệm x1
- Tính nghiệm x2
- Thông báo giá trị của x1,x2 ra
màn hình
Nhóm 2,4
Yêu cầu: viết đoạn lệnh thực hiện
yêu câu sau
Nếu delta = 0 thì
phương trình có nghiệm kép
Câu trả lời mong đợi:
Nhóm 1:
If delta>0 then writeIn(‘Phuong trinh co hai Nghiem’);
x1:= (-b+sqrt(delta))/(2*a); x2:= (-b-sqrt(delta))/(2*a); write(‘x1=‘,x1,’x2=‘,x2);
Nhóm 2:
If delta=0 then writeIn(‘Phuong trinh co Nghiem kep’);
x:= -b+/(2*a);
write(‘x=‘,x);
Trang 11- Tính nghiệm x
của x ra màn hình
Giáo viên đặt câu hỏi: trong cấu trúc
của câu lệnh if- then thì câu lệnh ở
đây được hiểu là một câu lệnh
Nhưng thực tế với yêu cầu trên
chúng ta phải xử lý nhiều hơn một
câu lệnh Vậy làm thế nào để không
bị lỗi về cú pháp và vẫn đảm bảo
tính đúng đắn
Hs có thể có câu trả lời tuỳ ý
2 HÌNH THÀNH KIẾN THỨC
(1) Mục tiêu: Học sinh nắm được chức năng, cấu trúc của câu lệnh ghép
(2) Phương pháp/ kỹ thuật dạy học: thuyết trình, phát vấn
(3) Phương tiện: máy tính, máy chiếu
(4) Sản phẩm: học sinh hiểu được chức năng của câu lệnh ghép
Hoạt động của giáo viên Hoạt động của học sinh
Giáo viên trình bày về câu lệnh ghép
1 Câu lệnh ghép
- Chức năng của lệnh ghép:
Ghép hai hay nhiều câu lệnh
thành một nhóm lệnh
- Cấu trúc:
Begin <Dãy các lệnh>
Hs ghi chép
Trang 123 LUYỆN TẬP VẬN DỤNG
(1) Mục tiêu: Học sinh vận dụng được cấu trúc rẽ nhánh, câu lệnh ghép để viết chương trình cho một số bài toán đơn giản
(2) Phương pháp/ kỹ thuật dạy học: hoạt động nhóm/ cá nhân
(3) Phương tiện: máy tính, máy chiếu, máy ảnh
(4) Sản phẩm: Các chương trình là sản phẩm hoạt động nhóm của học sinh
Hoạt động của giáo viên Hoạt động của học sinh
- Giáo viên cho hs hai nhóm điền begin
end vào đúng vị trí trong ví dụ đã tìm
hiểu ở hoạt động 1
Nhóm 1,3:
If delta>0 then
Begin
writeIn(‘Phuong trinh co hai
Nghiem’);
x1:= (-b+sqrt(delta))/(2*a);
x2:= (-b-sqrt(delta))/(2*a);
write(‘x1=‘,x1,’x2=‘,x2);
End;
Nhóm 2, 4:
If delta=0 then
Begin
writeIn(‘Phuong trinh co
Hs làm việc theo nhóm để hoàn thiện
Nhóm cử đại diện báo cáo kết quả, nhóm còn lại nghe và nhận xét
Nhóm cử đại diện báo cáo kết quả, nhóm còn lại nghe và nhận xét
Trang 13Nghiem kep’);
x:= -b+/(2*a);
write(‘x=‘,x);
End;
- Giáo viên chiếu chương trình giải
phương trình bậc hai (Phụ lục 2)
ax2 + bx +c = 0 (a<>0) với các bộ
dữ liệu
TH1 1 5 -6
TH2 2 4 2
TH3 1 1 1
Với từng trường hợp hs quan sát kết
quả và nhận biết quá trình rẽ nhánh của
câu lệnh
HS quan sát quá trình thực hiện của chương trình và đặc biệt là quá trình
rẽ nhánh của thuật toán
4 HOẠT ĐỘNG MỞ RỘNG
(1) Mục tiêu: Giúp những học sinh khá giỏi được luyện tập sâu hơn về câu lệnh IF – THEN, câu lệnh ghép
(2) Phương pháp/ kỹ thuật dạy học: Hoạt động cá nhân tại nhà
(3) Phương tiện: SGK
(4) Sản phẩm: học sinh sử dụng được câu lệnh IF – THEN để giải bài toán
Hoạt động của giáo viên Hoạt động của học sinh
Giáo viên cho hs hai nhóm thực hiện ví
dụ:
Với a, b, c là ba số nguyên dương được
Hs làm việc theo nhóm để hoàn thiện
Trang 14nhập vào từ bàn phím Kiểm tra xem
ba số theo thứ tự nhập vào có tạo thành
số đo ba cạnh của tam giác không?
Nếu là tam giác thì tính chu vi tam
giác và hông báo kết quả ra màn hình
Viết đoạn chương trình thực hiện yêu
cầu trên
(?) Xác định bài toán
(?) Ý tưởng giải quyết bài toán
Chương trình
program tamgiac;
uses crt;
var a, b, c: real;
cv : real;
begin
clrscr;
write('Nhap canh A: ');
readln(a);
write('Nhap canh B: ');
readln(b);
write('Nhap canh C: ');
Câu trả lời mong đợi
- Input: a, b, c
- Output: là số đo ba cạnh của tam giác và giá trị chu vi hoặc không là số
đo ba cạnh của tam giác
Trả lời:
Nếu a < b + c và b< a + c và c < a + b thì thông báo tạo thành số đo ba cạnh của tam giác và tình chu vi, nếu không thì thông báo không tạo thành
số đo ba cạnh của tam giác
Hs làm việc theo nhóm để hoàn thiện
Trang 15if (a<(c+b)) and (c<(a+b))
and (b<(c+a)) then
begin
writeln(' la so do cac
canh tam giac ');
cv:= a+b+c;
writeln(' chu vi = ',cv);
end
else writeln(' khong la so
do cac canh tam giac ');
readln;
end.
Hs làm việc theo nhóm để hoàn thiện
Hs làm việc theo nhóm để hoàn thiện
cử đại diện báo cáo
5 Củng cố và hướng dẫn về nhà
* Cấu trúc rẽ nhánh
- Dạng thiếu : if <điều kiện> then <câu lệnh>;
- Dạng đủ: if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
* Câu lệnh ghép
Begin
<Dãy lệnh>
End;
BTVN: học sinh tiếp tục hoàn thiện chương trình kiểm tra ba số có tạo thành cấp số cộng hay không
6 Kiểm tra đánh giá mức độ tiếp thu của học sinh cuối chuyên đề (Phụ lục 3)
Trang 16Phụ lục 1
Chương trình giải phương trình bậc 2 chưa sử dụng câu lệnh if - then
var a,b,c,delta:real;
x1,x2:real;
begin
write('Nhap a, b, c : ');
readln(a,b,c);
delta:= sqr(b) - 4*a*c;
x1:= (-b-sqrt(delta))/(2*a);
x2:= (-b+sqrt(delta))/(2*a);
writeln('x1= ',x1:4:2);
writeln('x2= ',x2:4:2);
readln;
end.
Phụ lục 2
Chương trình giải phương trình bậc 2 hoàn chỉnh
program giai_ptb2;
uses crt;
var a,b,c,d: real;
x1, x2 ,x: real;
begin
clrscr;
write('Nhap a, b,c: ');
readln(a,b,c);
d:=b*b-4*a*c;
if d<0 then writeln('phuong trinh vo nghiem')
else
if d>0 then