Tải bản đầy đủ (.docx) (22 trang)

skkn PHÁT TRIỂN tư DUY lập TRÌNH và KHẮC PHỤC SAI lầm CHO học SINH lớp 11 THÔNG QUA sử DỤNG cấu TRÚC rẽ NHÁNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (205.89 KB, 22 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI
-------------------

SÁNG KIẾN KINH NGHIỆM

TÊN ĐỀ TÀI
“PHÁT TRIỂN TƯ DUY LẬP TRÌNH VÀ KHẮC PHỤC SAI LẦM
CHO HỌC SINH LỚP 11
THÔNG QUA SỬ DỤNG CẤU TRÚC RẼ NHÁNH”

Lĩnh vực/Môn : Tin Học
Cấp học

: THPT

Tác Giả

: Nguyễn Thị Mỹ Hạnh

Đơn vị công tác : Trường THPT Lưu Hoàng

NĂM HỌC 2018-2019


MỤC LỤC
PHẦN I : ĐẶT VẤN ĐỀ........................................................................... Trang 1
I.1.

LÝ DO CHỌN ĐỀ TÀI..................................................................Trang 1

I.2.



MỤC ĐÍCH NGHIÊN CỨU..........................................................Trang 1

I.3.
ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU VÀ THỜI GIAN THỰC
HIỆN ĐỀ TÀI.............................................................................................Trang 2
I.4.

QUÁ TRÌNH THỰC HIỆN ĐỀ TÀI..............................................Trang 2

I.4.1.

Tình hình thực tế trước khi thực hiện đề tài................................Trang 2

I.4.2.

Số liệu điều tra trước khi thực hiện đề tài...................................Trang 2

PHẦN 2: GIẢI QUYẾT VẤN ĐỀ..............................................................Trang 3
II.1. GIỚI THIỆU VỀ CẤU TRÚC RẼ NHÁNH.......................................Trang 3
II.2. CÁC LỖI CỦA HỌC SINH THƯỜNG MẮC VÀ CÁCH KHẮC PHỤC
.....................................................................................................................Trang 4
II.3. KẾT QUẢ ÁP DỤNG ĐỀ TÀI.........................................................Trang 18
PHẦN III : KẾT LUẬN VÀ KIẾN NGHỊ................................................Trang 19
III.1. KẾT LUẬN......................................................................................Trang 19
III.2. KIẾN NGHỊ.....................................................................................Trang 19


PHẦN I : ĐẶT VẤN ĐỀ
1.


LÝ DO CHỌN ĐỀ TÀI

Căn cứ vào công văn số 3627/SGDĐT-GDPT, ngày 29/8/2018 của Sở
Giáo dục và Đào tạo về việc Hướng dẫn thực hiện nhiệm vụ giáo dục trung học
năm học 2018-2019 và hướng dẫn hoạt động chuyên môn bộ môn Tin học cấp
THPT của Sở Giáo dục - Đào tạo Hà Nội. Đổi mới hình thức tổ chức dạy học
ngồi việc tổ chức cho học sinh thực hiện các nhiệm vụ học tập ở trên lớp, cần
coi trọng giao nhiệm vụ và hướng dẫn học sinh học tập ở nhà.
Căn cứ vào kế hoạch giảng dạy môn Tin 11 của trường THPT Lưu Hoàng
về số lượng, nội dung các tiết bài tập và thực hành ở các chương III, chương IV.
Với tình hình thực tế giảng dạy môn Tin ở trường THPT Lưu Hồng, tơi nhận
thấy học sinh chưa có hứng thú với mơn học, một phần vì mơn Tin học 11 q
khó đối với các em, một phần vì tư duy giài toán chưa cao do đầu chất lượng
tuyển sinh vào 10 cịn thấp. Để góp phần nâng cao chất lượng giờ dạy, việc thu
hút học sinh tích cực giải tốn bằng máy tính và phát triển tư duy lập trình của
học sinh là rất cần thiết.
Câu lệnh rẽ nhánh và câu lệnh ghép là một nội dung tiêu biểu của phần
lập trình. Thực tế khi sử dụng câu lệnh này để giải bài tập các em thường mắc
phải nhiều lỗi sai, đặc biệt là xác định biểu thức logic và không sử dụng câu lệnh
ghép trong trường hợp cần thiết.
Sau khi tìm hiểu các nguyên nhân và những lỗi học sinh hay mắc phải khi
lập trình giải tốn có sử dụng cấu trúc rẽ nhánh, tơi tìm giải pháp khắc phục
củng cố, khắc sâu kiến thức thông qua việc hướng dẫn và giao bài tập cho học
sinh hoàn thiện sản phẩm ở nhà .
2.

MỤC ĐÍCH NGHIÊN CỨU

Đề tài này chủ yếu tập trung vào nghiên cứu những sai lầm thường mắc

phải của các em khi sử dụng câu lệnh rẽ nhánh. Hệ thống các bài tập nghiên cứu
quen thuộc, các bài tốn gần gũi với thực tế, có mở rộng bài tốn, có phát triển
bài tốn, có áp dụng liên mơn giúp học sinh u thích mơn học và phát triển tư
duy lập trình.
Đề tài có ý nghĩa lớn đối với việc đổi mới phương pháp giảng dạy. Phát
huy tính tích cực của học sinh, tạo sự hứng thú cho học sinh, khuyến khích học
sinh tự tìm tịi, sáng tạo trong quá trình lĩnh hội tri thức.
1/20


3.

ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU VÀ THỜI GIAN THỰC
HIỆN ĐỀ TÀI

I.3.1. Đối tượng nghiên cứu
- Những lỗi mà học sinh lớp 11 thường mắc phải khi sử dụng cấu trúc rẽ nhánh
để giải toán.
I.3.2. Phạm vi nghiên cứu
- Bài tập về cấu trúc rẽ nhánh.
I.3.3. Thời gian thực hiện đề tài
- Đề tài được viết và áp dụng trong Năm học 2018-2019
4. Q TRÌNH THỰC HIỆN ĐỀ TÀI
1. Tình hình thực tế trước khi thực hiện đề tài
- Sau khi dạy xong bài 9 : Cấu trúc rẽ nhánh,. Tơi đã cho khảo sát lớp 11A1,
11A2.
- Cịn nhiều học sinh mắc lỗi sai khi sử dụng câu lệnh rẽ nhánh do xác định biểu
thức logic khơng đúng, cịn nhầm lẫn và nhớ sai cú pháp.
- Chưa hiểu rõ về cấu trúc rẽ nhánh nên không viết câu lệnh không đúng hoặc
không sử dụng câu lệnh ghép khi cần thiết.

- Tư duy lập trình thấp, kỹ năng giải tốn chưa cao.
- Học sinh quên kiến thức cũ.
- Cơ sở vật chất cịn thiếu số lượng máy tính thực hành cho học sinh ít, số lượng
học sinh có máy tính riêng ở nhà chưa nhiều. Các yếu tố này làm ảnh hưởng đến
chất lượng, hiệu quả của tiết học.
2. Số liệu điều tra trước khi thực hiện đề tài
Xếp loại

Giỏi

Khá

Yếu

Kém

Lớp
11A1 (Thực nghiệm)

Trung
Bình

8

16

7

0


0

11A2 (Đối chứng)

6

14

10

0

0

2/20


PHẦN 2: GIẢI QUYẾT VẤN ĐỀ
Sáng kiến kinh nghiệm : “ Phát triển tư duy lập trình và khắc phục sai lầm
cho học sinh 11 thông qua sử dụng câu lệnh rẽ nhánh”.
Sáng kiến gồm các nội dung chính :
+Giới thiệu về cấu trúc rẽ nhánh.
+ Phân tích các lỗi của học sinh hay mắc phải khi sử dụng cấu trúc rẽ nhánh
+ Đề xuất giải pháp khắc phục.
+Thử nghiệm sư phạm.
II.1. GIỚI THIỆU VỀ CẤU TRÚC RẼ NHÁNH
II.1.1 Dạng thiếu
Cú pháp: If <điều kiên> Then <câu lệnh > ;
Đúng
Câu lệnh


Điều kiện
Sai

Điều kiện : là biểu thức logic.
Câu lệnh : Là một câu lệnh của Pascal.
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
câu lệnh sẽ bị bỏ qua.
II.1.2 Dạng đủ
Cú pháp: If <điều kiên 1> Then <câu lệnh 1> Else <câu lệnh 2> ;
Đúng

Sai
Câu lệnh 2

Điều kiện

3/20

Câu lệnh 1


Điều kiện : là biểu thức logic.
Câu lệnh 1, câu lệnh 2: Là một câu lệnh của Pascal.
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.
II.1.3 Câu lệnh ghép
Theo cú pháp, sau từ khóa Then hoặc ELSE phải là một câu lệnh. Nhưng
trong nhiều trường hợp, các thao tác sau những tên dành riêng đó khá phức tạp,
địi hỏi khơng phải là một mà là nhiều câu lệnh để mô t. Trong trường hợp như

vậy 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.
Câu lệnh ghép của Pascal có dạng :
Begin
<các câu lệnh> ;
End;
II.2. CÁC LỖI CỦA HỌC SINH THƯỜNG MẮC VÀ CÁCH KHẮC
PHỤC
II.2.1 Lỗi về cách viết và xác định biểu thức logic
- Loại biểu thức nhất thiết phải có mặt trong câu lệnh rẽ nhánh đó là biểu thức
Logic, vấn đề viết biểu thức trong ngơn ngữ lập trình Pascal phải tn thủ đúng
các quy tắc của ngơn ngữ lập trình, có những bài toán các em phải xác định biểu
thức logic, việc này không phải dễ đối với các em. Điều này còn phụ thuộc vào
khả năng tư duy về mặt toán học.
- Lỗi viết dấu chấm phẩy trước Else
- Do số lượng máy tính của trường rất ít, nên nhiều tiết bài tập các em học phòng
máy chiếu hoặc làm bài trên giấy vì vậy cần phải rèn cho các em cách viết cẩn
thận.
Ví dụ 1: Viết câu lệnh rẽ nhánh tính

a)

Tính

�x 2  y 2 ne�
u x 2  y 2 �1

z  �x  y ne�
u x 2  y 2  1 va�y �x

0, 5 ne�

u x 2  y 2  1 va�y  x


- Lỗi biểu diễn sai phép tốn trong ngơn ngữ pascal.
Chẳng hạn : x*x thì học sinh vẫn viết là: x.x , lỗi này nếu các em thực hành
trên phịng máy thì chương trình dịch sẽ thơng báo nhưng các em mất thời gian
sửa và có em cịn khơng biết cách sửa.
4/20


- Lỗi thiếu dấu ngặc hoặc không sử dụng phép tốn logic.
2
2
Chẳng hạn tính z=x+y nếu x  y  1 và y �x

Thì các em viết như sau : if x * x  y* y  1 , y  x then z:=x+y;
- Cách khắc phục : Dự kiến trước những lỗi sai của học sinh dễ mắc như : Lỗi
biểu biễn biểu thức Tốn trong ngơn ngữ Pascal, lỗi đặt dấu chấm phẩy
không đúng chỗ, lỗi viết phép toán logic …., giáo viên yêu cầu học sinh
phân tích kỹ bài tốn trong Tốn học, sau đó u cầu các em biểu diễn biểu
thức trong ngôn ngữ Pascal, nhấn mạnh cho học sinh
+ Phép nhân thay bởi dấu sao *
+ Phép chia thay bởi dấu gạch chéo /
+Phép toán logic và (and), hoặc (or)
+Khi xét đồng thời nhiều biểu thức , phải có cặp đóng mở ngoặc cho từng
biểu thức.
Kết quả :
If x * x  y* y  1 then z  x * x  y* y ;
If ( x * x  y* y  1) and ( y  x ) then z  x  y ;
If ( x * x  y* y  1) and ( y  x ) then z  0.5 ;

- Yêu cầu học sinh viết lại bằng cách sử dụng cấu trúc rẽ nhánh dạng đủ và
thay biểu thức x * x  y* y  1 bằng sqr ( x)  sqr (y)  1 và so sánh kết quả với
cùng một bộ Test.
- Tôi yêu cầu học sinh đề xuất một bộ Test : Có đủ cả 3 trường hợp sảy ra mà
đã biết trước kết quả, mục đích là để học sinh tự kiểm tra lại tính đúng đắn của
chương trình.
- Sau đây là một bộ Test tiêu biểu:
Input
x
1
2
1
2
3

Output

y

3
z= 2
1
z
2
z  0.5

1

1
2

2



5/20


b) Tính
�x  y ne�
u �ie�
m(x, y)thuo�
c h�
nh tro�
n ba�
n k�
nh r(r  0),


z �
ta�
m(a, b)
�x  y trong tr���
ng h��
p co�
n la�
i

- Học sinh dễ mắc lỗi khi xác định và viết biểu thức logic :
+Lỗi thứ nhất: Về mặt Tốn học, các em nhầm lẫn Hình trịn và đường trịn
2

2
IM

(
x

a
)

(y

a
)
 r , thậm chí có học sinh
nên chỉ đưa ra được điều kiện
cịn qn cả cơng thức tính khoảng cách giữa hai điểm.

+Lỗi thứ hai : Có dấu chấm phẩy trước từ khóa Else , Lỗi này do sử dụng cú
pháp rẽ nhánh dạng đủ sai. Cụ thể như sau :
If sqrt(( x  a) * ( x  a)  (y a )* (y a))  r then z:=abs(x)+abs(y) ;
Else z:=x+y;
- Cách khắc phục: So sánh sự khác nhau nhau giữa hai dạng rẽ nhánh, đặc biệt
trước từ khóa Else khơng có dấu chấm phẩy,về kiến thức Tốn, học sinh tìm
hiểu kiểm tra điều kiện để một điểm thuộc hình trịn tâm I(a,b) bán kính r ? giáo
viên vẽ đường tròn ra, kiểm tra học sinh cách tính cơng thức khoảng cách giữa
hai điểm I(a,b) và M(x,y) ?
+Biểu thức trong Tốn học : Điểm M(x,y) thuộc hình trịn tâm I(a,b) bán kính
2
2
r khi IM  ( x  a)  (y  b ) �r


+Yêu cầu học sinh : Viết biểu thức trên trong ngôn ngữ Pascal và sử dụng cấu
trúc rẽ nhánh để viết câu lệnh kiểm tra vị trí của điểm M có thuộc hình trịn
khơng.
+ Nhấn mạnh cho học sinh nếu sử dụng cấu trúc rẽ nhánh dạng đủ thì trước Else
khơng có dấu chấm phẩy.
- Kết quả:
Cách 1: Sử dụng cấu trúc rẽ nhánh dạng thiếu
If sqrt(( x  a ) * ( x  a )  (y b )* (y  b))  r then z:=abs(x)+abs(y) ;
If sqrt(( x  a ) * ( x  a)  (y  b )* (y  b))  r then z:=x+y;
Cách 2: Sử dụng cấu trúc rẽ nhánh dạng đủ
6/20


If sqrt(( x  a) * ( x  a)  (y b )* (y b))  r then z:=abs(x)+abs(y)
Else z:=x+y;
Bài tập giao cho học sinh theo nhóm: Về hồn thiện chương trình,
+ Nhập vào tọa độ điểm M(x,y), tâm I(a,b), bán kính R.
+ Tính và đưa ra giá trị của z
+ Xây dựng bộ Test và nộp báo cáo kết quả thử nghiệm.
Ví dụ 2: Viết câu lệnh rẽ nhánh để kiểm tra 3 số nguyên dương a,b,c có phải 3
cạnh của một tam giác không ?
Lỗi biểu thức logic :
- Trường hợp 1: Biểu thức logic kiểm tra chưa đúng, chưa xét được hết các
trường hợp, lỗi này thuộc về mặt tư duy toán học. Lỗi này chương trình dịch
khơng thể phát hiện và thơng báo, chỉ khi chạy chương trình với các bộ Test cụ
thể học sinh mới phát hiện ra sai.
If a+b>c then write(‘ Ba so a,b,c la do dai ba canh cua tam giac ’)
Else write(‘ Ba so a,b,c khong la do dai ba canh cua tam giac ’);
- Trường hợp 2: Học sinh xác định được biểu thức logic rồi nhưng khi trình bày

sai, chương trình dịch báo lỗi khơng sửa được. Đây là lỗi thiếu ngoặc, cụ thể học
sinh viết như sau:
If a+b>c and a+c>b and b+c>a then write(‘ Ba so a,b,c la do dai ba canh
cua tam giac ’) Else write(‘ Ba so a,b,c khong la do dai ba canh cua tam giac ’);
- Cách khắc phục lỗi :
Kiểm tra về kiến thức Toán học : Điều kiện để 3 số nguyên dương là độ dài 3
cạnh của một tam giác ?
Điều kiện : a+b>c và a+c>b và b+c>a
+ GV phải nhấn mạnh : Ba điều kiện đồng thời thỏa mãn: (a+b>c) và (b+c>a)
và (a+c>b). Biểu thức logic nhận giá trị True khi cả 3 điều kiện thỏa mãn
- Dự kiến câu hỏi của học sinh : Học sinh có thể thắc dùng hiệu hai số bất kỳ
trong 3 số nhỏ hơn số còn lại, cách này cũng được nhưng các em nên dùng tổng
2 số lớn hơn số còn lại.
- Đề xuất một bộ Test tiêu biểu để kiểm tra tính đúng đắn của chương trình?
7/20


+GV chuẩn bị một chương trình sai có câu lệnh sau
If a+b>c then write(‘ Ba so a,b,c la do dai ba canh cua tam giac ’)
Else write(‘ Ba so a,b,c khong la do dai ba canh cua tam giac ’);
Sau đó chạy thử cho học sinh, đưa vào một bộ Test cụ thể như : a=1, b=3, c=2
và cho học sinh nhận xét về kết quả mặc dù thỏa mãn điều kiện a+b>c nhưng bộ
3 số đó có là độ dài của một tam giác khơng?
Từ đó giáo viên nhấn mạnh cho học sinh: Đối với mỗi bài toán, việc xác định
biểu thức logic rất quan trọng. Có những biểu thức logic bao gồm đồng thời
nhiều điều kiện. Khi đó chúng ta phải sử dụng phép toán logic và (AND).
- Giao nhóm học sinh về nhà:
+ Hồn thiện chương trình.
+ Xây dựng một bộ Test tiêu biểu.
Ví dụ 3: Viết chương trình giải bài tốn dạng ax  b  0 (trong đó a,b là các số

nguyên nhập vào từ bàn phím).
Lỗi học sinh thường mắc phải : Học sinh dễ nhầm lẫn với việc giải phương
trình bậc nhất một ẩn nên thường không xét tới khả năng a=0 nên học sinh đưa
luôn ra nghiệm x=-b/a. Lỗi này do học sinh quên kiến thức toán học.
Cách khắc phục : Yêu cầu học sinh viết câu lệnh rẽ nhánh, xây dựng bộ Test
+ Nếu a=0 và b=0 thì phương trình có vơ số nghiệm
+ Nếu a=0 và b<>0 thì phương trình vơ nghiệm
+ Nếu a<>0 thì phương trình có nghiệm duy nhất x=-b/a.
Kết quả mong đợi :
If (a=0) and (b=0) then write(‘phuong trinh co vo so nghiem ’) ;
If (a=0) and (b<>0) then write(‘phuong trinh vo nghiem ’) ;
If a<>0 then write(‘phuong trinh co nghiem duy nhat x=’, - b/a :2:1) ;
- Học sinh phải hiểu rõ hoạt động của câu lệnh rẽ nhánh dạng thiếu, dạng đủ
và có thể sửa lại bằng cách sử dụng cấu trúc rẽ nhánh dạng đủ.
If a<>0 then write(‘phuong trinh co nghiem duy nhat x=’, - b/a :2:1)
8/20


Else
If b<>0 then write(‘phuong trinh vo nghiem ’)
Else wite(‘phuong trinh co vo so nghiem ’) ;
 Hướng dẫn cho học sinh xây dựng bộ Test tiêu biểu, có đủ các trường hợp
mà đã biết trước kết quả.
 Ví dụ một bộ Test tiêu biểu sau:
Input
a

Output

b

1

Phuong trinh vo nghiem

0

0

Phuong trinh co vo so nghiem

2

-6

0

Phuong trinh co nghiem duy nhat x=3.0

II.2.2 Lối không sử dụng câu lệnh ghép khi cần thiết.
Các lỗi thường gặp khi lập trình sử dụng câu lệnh rẽ nhánh là không tạo
câu lệnh ghép trong trường hợp cần thiết, đây là lỗi mà các em khó phát hiện vì
chương trình dịch khơng phát hiện giúp được. Khi có nhiều câu lệnh IF liền
nhau thường tạo ra nhiều tiềm ẩn dẫn tới lỗi. Học sinh thường mắc lỗi không sử
dụng câu lệnh ghép khi cần thiết.
Ví dụ 1: Có sẵn chương trình nhập vào 3 số thực a,b,c . Kiểm tra 3 số đó có là
3 cạnh của một tam giác không ?
Yêu cầu học sinh sửa lại chương trình : Nếu là 3 cạnh của một tam giác hãy
tính chu vi và diện tích tam giác đó ?
Bài toán này quen thuộc với học sinh nhưng khi sửa lại chương trình, lỗi học
sinh khơng sử dụng câu lệnh ghép:

If (a < b+c) and (b < a+c) and (c < a+b) Then
P := (a + b + c) / 2 ;
S := Sqrt(p*(p-a)*(p-b)*(p-c)) ;
+ Sau từ khóa Then muốn thực hiện hai câu lệnh tính P và S nên phải sử dụng
câu lệnh ghép, và hai câu lệnh này chỉ được thực hiện khi biểu thức (a < b+c)
and (b < a+c) and (c < a+b) nhận giá trị True.
9/20


Cách khắc phục:
+Nhấn mạnh cho học sinh khi nào cần sử dụng câu lệnh ghép: Sau các từ
khóa Then, Else muốn thực hiện nhiều hơn một câu lệnh ta sử dụng câu lệnh
ghép.
Kết quả:

If (a < b+c) and (b < a+c) and (c < a+b) Then
Begin
P := (a + b + c) / 2 ;
S := Sqrt(p*(p-a)*(p-b)*(p-c));

End;
Ví dụ 2: Viết chương trình kiểm tra 3 số a,b, c và thơng báo ra màn hình theo
thứ tự có phải là một cấp số cộng không ? Nếu là cấp số cộng hãy đưa ra cơng
sai của cấp số đó ?
Lối học sinh thường mắc :
+ Quên tính chất của cấp số cộng, từ đó dẫn đến việc khơng kiểm tra được
+ Không sử dụng câu lệnh ghép.
If b:=(a+c)/2 then
Writeln(‘ ba so theo thu tu la mot cap so cong : ’);
Writeln(‘ Cong sai d= ’, b-a);

- Đưa vào bộ Test cho học sinh phân tích trong trường hợp khơng sử dụng câu
lệnh ghép.
- Với hai bộ Input như sau:
Input
a
b
c
7
5
3
6
7
10
- Bộ thứ hai, kết quả ba số theo thứ tự không là cấp số cộng, nhưng chương
trình vẫn đưa ra cơng sai d=b-a=1. Từ đó dẫn đến kết quả của bài tốn sai.
Trường hợp này chương trình dịch khơng phát hiện được lỗi cú pháp. Chỉ khi
thực hiện chương trình với một bộ dữ liệu cụ thể trên các em thấy kết quả của
bài tốn khơng đúng do lỗi khơng sử dụng câu lệnh ghép.
- Nhấn mạnh cho học sinh khi nào cần sử dụng câu lệnh ghép.
Kết quả:
If b:=(a+c)/2 then
Begin
Writeln(‘ ba so theo thu tu la mot cap so cong : ’);
Writeln(‘ Cong sai d= ’, b-a);
10/20


End;
II.2.3 Phát triển tư duy lập trình cho học sinh thơng qua việc phát triển bài
tốn đã biết.

a) Lựa chọn và đưa vào bài tập phù hợp và có tính kế thừa, phát triển bài toán
mới nhưng quen thuộc với học sinh, phát huy tính tìm tịi sáng tạo của học
sinh.
Ví dụ 1: Ở ví dụ 3 sách giáo khoa trang 40, các em đã biết viết câu lệnh rẽ
nhánh để tìm Max của hai số a,b
If a > b Then Max := a Else Max:=b;
Câu hỏi 1: Đối với bài tốn tìm Max của 3 số a, b, c. thì các em sẽ thêm lệnh
nào?
học sinh dễ dàng nói thêm lệnh.
IF max < c Then max := c ;
Kết quả mong đợi :
IF a > b Then Max := a Else max := b ;
IF max < c Then Max := c ;
Câu hỏi 2: Đối với bài toán tìm Max của 4 số : a, b, c, d thì các em sẽ thêm
lệnh nào? học sinh dễ dàng nói thêm lệnh.
IF max < d Then max := d ;
- Tuy nhiên với bài tốn tìm Max của nhiều số thì phải có cơng cụ khác mà ở
các bài học sau các em sẽ biết, điều này gợi mở vấn đề cho học sinh tìm tịi kiến
thức mới, xây dựng lòng ham mê học tập của các em.
- Chương trình sau được cấu trúc lại từ các lệnh đã có ở chương trình trước.
Được bổ sung câu lệnh mới làm cho tính hợp lí, tính khoa học của lập trình
được nâng cao. học sinh có dịp nhìn lại chương trình cũ, ơn lại kiến thức cũ, so
sánh chương trình mới với chương trình cũ để thấy cái hay của chương trình
mới, cái hạn chế của chương trình cũ.
Câu hỏi 3: Hãy sửa lại chương trình trên thành bai tốn viết chương trình
nhận vào 2 số ngun khơng âm a và b viết lên màn hình 2 số đó theo thự tự
tăng dần.
 Giao cho nhóm học sinh về nhà: Sửa chương trình và chọn một bộ Test tiêu
biểu.
Kết quả:

Program sapxep_2so;
Uses Crt ;
Var a , b : Word ;
11/20


Begin
ClrScr ;
Wrieln (‘ Nhap vao 2 so nguyen ‘ ); Readln (a , b ) ;
IF a < b Then Writeln ( a :2 , b : 2 )
Else Writeln ( b:2 , a : 2 ) ;
End.
-Một bộ Test tiêu biểu
Input
a
3
9

Output

b
7
2

3

7

2


9

Câu hỏi 4: Phát triển thành mới
Bài toán. Viết chương trình cho máy tinh: Nhận vào giá trị của 3 biến nguyên a,
b, c sau đó sắp xếp theo thứ tự tăng dần và in ra màn hình giá trị của chúng sau
khi đã sắp xếp.
- Giao cho học sinh về nhà làm: Khuyến khích các em làm và xây dựng bộ
Test có báo cáo kết quả, chấm lấy điểm khích lệ học sinh.
- Kết quả :
Program Sapxep3so ;
Uses Crt ;
Var a, b, c, tg : Integer ;
Begin
ClrScr ; Write (‘Nhap 3 so nguyen ‘); Readln (a, b, c);
If a > b Then
Begin
tg := a ;
a := b ;
b := tg;
End ;
If b > c Then
Begin
tg := b ;
b := c ;
12/20


c := tg;
End ;
If a > b Then

Begin
tg := a ;
a := b ;
b := tg;
End ;
Writeln ( a : 7, b : 7, c : 7 );
End.
Ở chương trình 1 và trình bày cách đã dùng để giải quyết vấn đề là so sánh
giá trị của hai biến, nếu biến ở trước lớn hơn biến ở sau thì tráo đổi giá trị của
chúng cho nhau. Việc làm trên còn có cách hiểu khác là đưa giá trị lớn hơn trong
hai số về số đứng sau.
Có ba biến. Vậy theo cách tiếp cận như trên, phải đưa số lớn nhất về c, số lớn
thứ hai về b.
Ví dụ 2: Trong bài thực hành số 2 trang 49: Kiểm tra bộ 3 số nguyên dương
a,b,c có phải là bộ số pitago không?

- Bộ ba số a,b,c là bộ pitago nếu thỏa mãn điều kiện :


a 2  b2  c 2
�2
b  c2  a2


a 2  c2  b2


- Phát triển bài toán : Yêu cầu học sinh viết chương trình thành bài tốn viết
chương trình nhập vào 3 số nguyên dương a,b, c là 3 cạnh của tam giác. Hãy
kiểm tra và đưa ra thông báo thông báo tam giác đó có là tam giác vng, tam

giác cân, tam giác đều hay tam giác thường? Đề xuất một bộ Test tiêu biểu.
- Học sinh đã thực hiện trong bài tập và thực hành số 2-Sách giáo khoa trang 49.
Các em đã biết câu lệnh rẽ nhánh để kiểm tra như sau:
If (a * a  b * b  c * c) or (a * a  c * c  b * b) or (b* b  c * c  a * a)
Then write(‘Ba so la bo pitago’);
Vì vậy học sinh dễ dàng sử dụng câu lệnh rẽ nhánh trên để áp dụng giải bài toán
- Phân tích tìm lỗi cho học sinh: Cách để nhận dạng tam giác vuông, cân,
đều,học sinh thường nhầm lẫn khi xét tam giác chỉ vng ở một góc mà khơng
13/20


xét hết khả năng vng ở hai góc cịn lại. Khi xét tam giác cân thì cũng lỗi chỉ
xét cân tại một đỉnh mà không xét hết trường hợp cân tại hai đỉnh còn lại.
- Kết quả:
If (a * a  b * b  c * c) or (a * a  c * c  b * b) or (b* b  c * c  a * a) ;
If a=b=c then write(‘tam giac deu ’)
Else
If (a  b) or (b  c ) or (a  c) then write(‘Tam giac can’)
Else write(‘tam giac thuong’) ;
- Bộ Test tiêu biểu như sau: dữ liệu vào a,b,c phải thỏa mãn độ dài 3 cạnh của
tam giác.

a
3
6
13

Input
b
4

10
5

c
5
8
12

Output

Chú ý

Tam giac vuong
Tam giac vuong
Tam giac vuong

Vuông tại C
Vuông tại B
Vuông tại A

5

5

5

Tam giac deu

3


4

4

Tam giac can

3

7

8

Tam giac thuong

Ví dụ 3: Viết chương trình nhập vào ba số nguyên dương, kiểm tra và thơng
báo ra màn hình theo thứ tự ba số đó có phải là một cấp nhân khơng ? Nếu là
cấp số nhân hãy đưa ra cơng bội q ?
Phân tích bài toán :
+Input : a,b,c : 3 số nguyên dương
+ Out put : Là cấp số nhân có cơng bội q, hoặc khơng là cấp số nhân.
- Tính chất của cấp số nhân học sinh đã học ở chương trình Toán 11, học kỳ 1.
Để đưa vào điểu kiện kiểm tra:
- Do ba số a,b,c nguyên dương nên học sinh chỉ cần kiểm tra tính chất
14/20


Nếu b  a.c

thì 3 số theo thứ tự lập thành cấp số nhân


-Đề suất bộ Test tiêu biểu

a
5

Input
b
5

c
5

9

3

1

9

1

2

Output
La cap so nhan , q=1
1
q
3
La cap so nhan ,

Khong la cap so nhan

- Giao cho nhóm học sinh về nhà hồn thiện bài.
b) Đưa vào tình huống cơng việc thực tiễn xuất phát từ thực tiễn cuộc sống
hàng ngày, tạo hứng cho học sinh.
Ví dụ 1: Tất cả những học sinh dự thi nghề phổ thơng nếu đạt điểm trung bình
hai bài thi từ 5 điểm trở lên và không bài thi nào có điểm dưới 3.0 thì được cấp
chứng chỉ nghề phổ thông và được xếp loại theo tiêu chuẩn sau đây :
+ Loại Giỏi : Điểm trung bình hai bài thi đạt từ 9 đến 10 điểm
+ Loại Khá : Điểm trung bình hai bài thi đạt từ 7 đến dưới 9 điểm và khơng có
bài thi nào dưới 5.
+ Loại TB : Những trường hợp còn lại
- Hãy viết câu lệnh rẽ nhánh để xét đỗ hoặc không đỗ, xếp loại đỗ chứng chỉ
nghề cho học sinh theo tiêu chuẩn trên.
Kết quả :
If (LT<3) or (TH <3) then write(‘khong do’)
Else
If (TB >=9) and (LT>=5 and (TH>=5) then write(‘do loai Gioi’)
Else if TB >=7 then write(‘do loai Kha’)
Else write(‘do loai Trung Binh’) ;
Ví dụ 2: Bài tốn thực tế
Cho học sinh tìm hiểu cách tính điểm xét tốt nghiệp mới nhất của Bộ giáo dục
2019, Yêu cầu học sinh viết câu lệnh tính điểm xét tốt nghiệp cho học sinh
THPT. Viết chương trình nhập vào điểm của 3 mơn bắt buộc mơn Tốn, Anh,
15/20


Văn, và một môn Tổ hợp tự chọn, điểm khuyến khích của học sinh. Đưa ra
thơng báo thí sinh có đỗ tốt nghiệp hay khơng.
- Bài tốn này khá thực tế và các em học sinh rất quan tâm vì hàng năm số

lượng học sinh của trường trượt tốt nghiệp khơng phải ít, có học sinh nhờ có
điểm nghề mà vừa đủ điểm để đỗ tốt nghiệp.
- Giao cho học sinh hiểu và viết chương trình ở nhà, có khuyến khích chấm
điểm.
II.2.4 Bài tập bổ xung
Bài tốn 1: Viết câu lệnh rẽ nhánh tính (Đây là Bài 3.21, Sách bài tập Tin 11Trang 21)
�x  y

�x  y
v �
x  y


x  y


ne�
u x  1 va�y  1
ne�
u x  1 va�y �1
ne�
u x �1 va�y  0
ne�
u x �1 va�y �0

Bài tập 2: Trong hệ trục tọa độ OXY cho điểm M(x;y) và một đường tròn tâm
I(a,b) bán kính R cho trước. Hãy viết chương trình kiểm tra vị trí tương đối của
một điểm M(x;y) so với đường trịn.
Hướng dẫn về nhà cho học sinh : Bài tốn này học sinh có thể sử dụng
cấu trúc rẽ nhánh dạng thiếu hoặc dạng đủ. Nên khuyến khích học sinh sử dụng

rẽ nhánh dạng đủ.
Dựa vào khoảng cách từ điểm M đến tâm đường trịn so với bán kính, học
sinh dễ ràng kiểm tra được 3 trường hợp.
Cơng thức tính khoảng cách giữa hai điểm

IM  ( x  a ) 2  (y b )2

TH1: Nếu IM=R thì điểm M nằm trên đường trịn.
TH2: Nếu IM>R thì điểm M nằm phía ngồi đường trịn.
TH3: Nếu IM Bài tốn 3: Viết chương trình giải bài tốn dạng ax  b  0 (trong đó a,b là các
số nguyên nhập vào từ bàn phím).
Lỗi học sinh thường mắc phải : Học sinh dễ nhầm lẫn với việc giải bất phương
trình bậc nhất một ẩn nên thường không xét tới khả năng a=0, hoặc có xét
16/20


trường hợp a=0 nhưng đối với trường hợp a<0 khi tìm nghiệm sai do khơng đổi
dấu.
Cách khắc phục : Cho học sinh phân tích bài tốn trong Tốn học, sau đó viết
câu lệnh rẽ nhánh tương ứng.
Nếu a=0 và b=0 thì Bất phương trình vơ nghiệm
Nếu a=0 và b>0 thì Bất phương trình có nghiệm với mọi x
Nếu a=0 và b<0 thì Bất phương trình vơ nghiệm
Nếu a>0 thì Bất phương trình có tập nghiệm x>-b/a
Nếu a<0 thì Bất phương trình có tập nghiệm x<-b/a
Bài tốn 4 : Viết chương trình giải bài tốn dạng : ax  b  0 (trong đó a,b là
các số nguyên nhập vào từ bàn phím ).
Bài tốn 5: Viết chương trình giải bài tốn dạng : ax  b �0 (trong đó a,b là các
số ngun nhập vào từ bàn phím ).

Bài tốn 6: Viết chương trình giải bài tốn dạng : ax  b �0 (trong đó a,b là các
số nguyên nhập vào từ bàn phím )
Bài tốn 7. Giả sử em A có tuổi là Ta, em B có tuổi là Tb biết tuổi 2 em khơng
bằng nhau. Ai ít tuổi hơn được nhận gói kẹo to, ai nhiều tuổi hơn nhận gói kẹo
nhỏ.
Viết chương trình: Nhận vào tuổi của A và B viết lên màn hình ai nhận gói
kẹo to? Ai nhận gói kẹo nhỏ.
+ Bài tốn này rất quen thuộc, học sinh đã giải bài tốn tìm Max của hai số a,
b bằng cách so sánh hai số sử dụng cấu trúc rẽ nhánh dạng đủ nên học sinh dễ
dàng làm được.
 Kết quả :
Program Chiakeo;
Uses Crt ;
Var Ta , Tb : Byte ;
Begin
ClrScr ; Wrieln (‘ Nhap vao tuoi cua A va B ‘ ); Readln (Ta , Tb ) ;
If Ta < Tb Then Writeln ( ‘Ban A nhan goi to ban B nhan goi nho’ )
Else Writeln ( ‘Ban A nhan goi nho ban B nhan goi to’ ) ;
17/20


End.

2. 3. KẾT QUẢ ÁP DỤNG ĐỀ TÀI
Xếp loại
Lớp
11A1 (Thực nghiệm)
11A2 (Đối chứng)

Giỏi


Khá

Trung
Bình

Yếu

Kém

13

17

1

0

0

7

15

8

0

0


 Thơng qua kiểm tra
- Lớp 11A1 số lượng khá, giỏi tăng nhiều so với trước khi thực hiện đề tài.
- Lớp 11A2 không thực hiện đề tài, kết quả tăng rất ít.

18/20


PHẦN III : KẾT LUẬN VÀ KIẾN NGHỊ
III.1. KẾT LUẬN
- Sáng kiến kinh nghiệm được viết và áp dụng trong phạm vi năm học 20182019 và được áp dụng cho học sinh khối 11 của trường THPT Lưu Hoàng đã
đạt được những kết quả đáng kể trong việc cải tiến phương pháp giảng dạy, học
sinh chủ động lĩnh hội kiến thức, góp phần đổi mới căn bản giáo dục.
- Các lớp sau khi áp dụng đề tài, kết quả đã nâng cao rõ rệt. Hầu hết các em đều
yêu thích mơn Tin và tích cực tham gia bài giảng cũng như các bài tập được giao
về nhà. Các em phát huy tinh thần hợp tác và tác phong làm việc nhóm cao.
III.2. KIẾN NGHỊ
- Đề nghị các cấp quan tâm và đầu tư về cơ sở vật chất, số lượng các máy tính
nhiều hơn để tiết thực hành có chất lượng cao hơn.
- Trong q trình viết sáng kiến cịn nhiều thiếu sót vậy mong các thầy cơ
đóng góp ý kiến để tơi hồn thiện tốt hơn.
Tơi xin chân thành cảm ơn.
Ngày 26 tháng 02 năm 2019
Người thực hiện

Nguyễn Thị Mỹ Hạnh

19/20


TÀI LIỆU THAM KHẢO

1. Sách giáo khoa Tin 11 – Nhà xuất bản giáo dục
2. Sách Bài tập Tin 11 - Nhà xuất bản giáo dục.
3. Phương pháp dạy học đại cương mơn Tin học (Giáo trình Đại học Sư
Phạm) tác giả Nguyễn Bá Kim, Lê Khắc Thành, xuất bản năm 2006.
4. Tài liệu Bồi dưỡng thường xuyên Giáo viên THPT chu kì III(2004-2007)
nhà xuất bản Đại học sư phạm của nhóm tác giả Lê Khắc Thành –Hồ Cẩm
Hà-Nguyễn Vũ Quốc Hưng.

20/20



×