Sáng kiến kinh nghiệm Rèn luyện kỹ năng viết chương trình con thông qua các tiết bài tập và thực hành

Sáng kiến kinh nghiệm Rèn luyện kỹ năng viết chương trình con thông qua các tiết bài tập và thực hành

II.1. HỆ THỐNG KIẾN THỨC VỀ CHưƠNG TRÌNH CON

II.1.1 Chương trình con và lợi ích của việc sử dụng chương trình con

a) Khái niệm

- Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể

được thực hiện ở nhiều vị trí trong chương trình.

b) Lợi ích của việc sử dụng chương trình con:

- Tránh việc phải viết lặp lại một nhóm lệnh khi nhóm lệnh này được thực hiện

nhiều lần khác nhau trong chương trình.

- Hỗ trợ cho các chương trình lớn.

- Có thể giao cho nhiều người cùng viết một chương trình.

- Thuận tiện cho việc phát triển, nâng cấp chương trình.

c) Phân loại

- Chương trình con gồm hai loại : Hàm và thủ tục

d) Cấu trúc chương trình con

- Chương trình con có cấu trúc tương tự chương trình, nhưng nhất thiết phải có

tên và phần đầu dùng để khai báo tên, nếu là hàm phải khai báo kiểu dữ liệu cho

giá trị trả về của hàm.

pdf 18 trang Người đăng phuongnguyen22 Ngày đăng 05/03/2022 Lượt xem 334Lượt tải 2 Download
Bạn đang xem tài liệu "Sáng kiến kinh nghiệm Rèn luyện kỹ năng viết chương trình con thông qua các tiết bài tập và thực hành", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ỨU VÀ THỜI GIAN THỰC 
HIỆN ĐỀ TÀI .................................................................................................... 1 
I.4. QUÁ TRÌNH THỰC HIỆN ĐỀ TÀI........................................................ 2 
I.4.1. Tình hình thực tế trƣớc khi thực hiện đề tài .......................................... 2 
I.4.2. Số liệu điều tra trƣớc khi thực hiện đề tài ............................................. 2 
PHẦN 2: GIẢI QUYẾT VẤN ĐỀ ........................................................................ 3 
II.1. HỆ THỐNG KIẾN THỨC VỀ CHƢƠNG TRÌNH CON ......................... 3 
II.2. CÁC LỖI CỦA HỌC SINH THƢỜNG MẮC VÀ CÁCH KHẮC PHỤC 4 
II.3. KHAI THÁC MỘT SỐ THUẬT TOÁN SỬ DỤNG CHƢƠNG TRÌNH 
CON ................................................................................................................... 9 
II.2.1 Hàm tìm ƣớc số chung lớn nhất của hai số nguyên dƣơng M và N ........ 9 
II.2.2 Hàm tìm giá trị nhỏ nhất của hai số nguyên a và b ................................ 13 
II. 3. KẾT QUẢ ÁP DỤNG ĐỀ TÀI ............................................................. 14 
PHẦN III : KẾT LUẬN VÀ KIẾN NGHỊ ......................................................... 15 
III.1. KẾT LUẬN ............................................................................................. 15 
III.2. KIẾN NGHỊ ............................................................................................ 15 
Trang 1/15 
PHẦN I : ĐẶT VẤN ĐỀ 
I.1. LÝ DO CHỌN ĐỀ TÀI 
- Thực hiện công văn số 3147/SGDĐT về việc hƣớng dẫn nhiệm vụ năm học 
2020-2021 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. Thực hiện hiệu quả chƣơng trình giáo dục phổ 
thông hiện hành theo định hƣớng phát triền phẩm chất năng lực cho học sinh. 
- Với tình hình thực tế giảng dạy bộ môn Tin ở trƣờng THPT Lƣu Hoàng, kế 
hoạch giảng dạy của bộ môn xây dựng giành cho các tiết bài tập và thực hành 
tƣơng đối nhiều.Việc củng cố kiến thức thông thông qua hệ thống các tiết bài tập 
một cách hiệu quả là rất cần thiết. 
- Nội dung về cách viết và sử dụng chƣơng trình con vẫn còn là bài học khá khó 
đối với nhiều em học sinh khối 11 do nhiều học sinh còn yếu kiến thức về mặt 
Toán học và không hứng thú với việc học bộ môn Tin. Tôi tìm giải pháp khắc 
phục, giúp cho học sinh tiếp thu đƣợc kiến thức thông qua giải quyết nhiệm vụ 
học tập đặt ra trong bài học, khai thác các ví dụ trong bài học nhằm củng cố kiến 
thức cho các em thông qua các tiết bài tập và thực hành. 
- Việc chuyển giao nhiệm vụ cho học sinh nhằm mục đích phát huy sự chủ động 
và sáng tạo của học sinh, tăng cƣờng tính giao lƣu, hợp tác thúc đẩy học sinh 
hứng thú học tập, đó là lí do tôi chọn đề tài này. 
I.2. MỤC ĐÍCH NGHIÊN CỨU 
Tên đề tài : “ RÈN LUYỆN KỸ NĂNG VIẾT CHƢƠNG TRÌNH CON 
THÔNG QUA CÁC TIẾT BÀI TẬP VÀ THỰC HÀNH ” 
Đề tài này chủ yếu tập trung vào nghiên cứu khắc phục những sai lầm mà 
học sinh thƣờng mắc phải. Khai thác các ví dụ trong sách giáo khoa nhằm khắc 
sâu kiến thức về chƣơng trình con cũng nhƣ vai trò ý nghĩa của chƣơng trình 
con. 
Phát triển tƣ duy lập trình cho học sinh, giải quyết các vấn đề trong khoa 
học cũng nhƣ trong cuộc sống, thông qua tiết bài tập và thực hành tạo sự hứng 
thú học tập cho các em học sinh. 
I.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 khi trình bày chƣơng trình con 
I.3.2. Phạm vi nghiên cứu 
- Các thuật toán đơn giản 
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 2020-2021 
Trang 2/15 
I.4. QUÁ TRÌNH THỰC HIỆN ĐỀ TÀI 
I.4.1. Tình hình thực tế trƣớc khi thực hiện đề tài 
- Sau khi giảng dạy xong bài 18 “ Ví dụ về cách viết và sử dụng chƣơng trình 
con”, tôi đã cho khảo sát lớp 11A1, 11A2. 
*Kết quả tồn tại: 
+Nhiều học sinh chƣa phân biệt rõ đƣợc vấn đề khi nào viết chƣơng trình con là 
hàm và khi nào nên viết chƣơng trình con dƣới dạng thủ tục. 
+Học sinh còn lúng túng trong việc trình bày chƣơng trình con, khai báo biến, 
tham số. 
+Học sinh không nhớ đƣợc kiến thức cũ để áp dụng giải bài tập. 
- Các yếu tố này làm ảnh hƣởng đến chất lƣợng, hiệu quả của bài học. 
I.4.2. Số liệu điều tra trƣớc khi thực hiện đề tài 
Lớp Sĩ 
số 
Giỏi 
Khá 
Trung 
Bình 
Yếu 
Kém 
11A1 (Thực nghiệm) 42 6 13 11 12 0 
11A2 (Đối chứng) 42 5 12 13 12 0 
Trang 3/15 
PHẦN 2: GIẢI QUYẾT VẤN ĐỀ 
Tên đề tài sáng kiến kinh nghiệm: 
“RÈN KỸ NĂNG VIẾT CHƢƠNG TRÌNH CON TRONG CÁC TIẾT BÀI 
TẬP VÀ THỰC HÀNH” ”. 
Sáng kiến gồm các nội dung chính : 
+Hệ thống kiến thức về chƣơng trình con 
+ Phân biệt hàm và thủ tục 
+ Các lỗi học sinh thƣờng mắc 
+ Đề xuất giải pháp khắc phục. 
+Khai thác một số ví dụ về chƣơng trình con để giải quyết các bài tập. 
+Thử nghiệm sƣ phạm. 
II.1. HỆ THỐNG KIẾN THỨC VỀ CHƢƠNG TRÌNH CON 
II.1.1 Chƣơng trình con và lợi ích của việc sử dụng chƣơng trình con 
a) Khái niệm 
- Chƣơng trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể 
đƣợc thực hiện ở nhiều vị trí trong chƣơng trình. 
b) Lợi ích của việc sử dụng chƣơng trình con: 
- Tránh việc phải viết lặp lại một nhóm lệnh khi nhóm lệnh này đƣợc thực hiện 
nhiều lần khác nhau trong chƣơng trình. 
- Hỗ trợ cho các chƣơng trình lớn. 
- Có thể giao cho nhiều ngƣời cùng viết một chƣơng trình. 
- Thuận tiện cho việc phát triển, nâng cấp chƣơng trình. 
c) Phân loại 
- Chƣơng trình con gồm hai loại : Hàm và thủ tục 
d) Cấu trúc chƣơng trình con 
- Chƣơng trình con có cấu trúc tƣơng tự chƣơng trình, nhƣng nhất thiết phải có 
tên và phần đầu dùng để khai báo tên, nếu là hàm phải khai báo kiểu dữ liệu cho 
giá trị trả về của hàm. 
II.1.2 Thủ tục 
- Là chƣơng trình con thực hiện các thao tác nhất định nhƣng không trả về giá 
trị qua tên của nó. 
- Cấu trúc thủ tục 
Procedure []; 
 [] 
 Begin 
 [] 
 End; 
Trang 4/15 
+Phần đầu: gồm Procedure, tên thủ tục và các tham số hình thức. 
+Phần khai báo: các hằng, kiểu, biến và cũng có thể các chƣơng trình con. 
+Phần thân: dãy các lệnh viết giữa Begin và end; 
II.1.3 Hàm 
- Là chƣơng trình con thực hiện một số thao tác nào đó và trả về giá trị qua tên 
của nó. 
- Cấu trúc hàm 
Function [()]: ; 
 [] 
Begin 
[] ; 
:= ; 
End; 
Chú ý: 
+Kiểu dữ liệu là kiểu dữ liệu của giá trị mà hàm trả về và chỉ có thể là 
các kiểu: integer, real, char, boolean, string. 
+Trong thân hàm cần phải có câu lệnh gán giá trị cho tên hàm. 
II.1.4 So sánh hàm và thủ tục 
* Giống nhau: Đều là chƣơng trình con có cấu trúc tƣơng tự nhau 
* Khác nhau: Điểm khác nhau cơ bản giữa thủ tục và hàm là việc thực hiện 
hàm luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó đƣợc gán cho tên 
hàm. 
- Trong thân hàm cần có lệnh gán giá trị cho tên hàm :=; 
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 Học sinh còn lúng túng trong việc viết chƣơng trình con 
- Đây là lỗi hầu hết các học sinh đều mắc phải, các em chƣa phân biệt rõ sự khác 
nhau cơ bản giữa hàm và thủ tục. Các em rất lúng túng trong việc xác đinh 
những bài toán nhƣ thế nào nên chọn thủ tục hay những bài toán nào cần sử 
dụng hàm. 
- Khi biết chƣơng trình con học sinh nhầm lẫn việc khai báo các biến. 
Cách khắc phục: Giáo viên phân biệt cho học sinh thấy rõ khi nào các em nên 
chọn hàm và khi nào nên chọn thủ tục bằng cách đƣa ra hệ thống các bài tập từ 
dễ đến khó. 
-Khi cần thực hiện một công việc nào đó ngƣời ta dùng thủ tục, còn khi cần tính 
một giá trị nào đó ngƣời ta dùng hàm. 
Trang 5/15 
- Rèn luyện khả năng sử dụng chƣơng trình. Đó là con đƣờng có hiệu quả để 
phát triển ở học sinh năng lực xây dựng chƣơng trình đơn giản từ đó phát triển 
tƣ duy lập trình có cấu trúc. 
- Đối với mỗi bài tập giáo viên lặp đi lặp lại một cách có dụng ý những câu hỏi 
sau: 
1) Bài toán đã cho có thể chia thành những bài toán nhỏ hơn như thế nào ? 
2) Những biến nào cần dùng trong toàn bộ chương trình ? 
3) Những biến nào chỉ cần cho một chương trình con cụ thể ? 
4) Chương trình con nào cần viết dưới dạng hàm ? 
5) Có thể cấu trúc chương trình như thế nào? 
- Qua việc rèn luyện lập trình giải các bài tập, học sinh sẽ dần dần lĩnh hội và 
vận dụng chúng nhƣ một chiến lƣợc xây dựng và sử dụng chƣơng trình con, một 
yếu tố quan trọng của lập trình có cấu trúc. 
 VÍ DỤ 
Bài toán 1: Viết chƣơng trình thực hiện nhập vào hai số thực a,b là độ dài hai 
cạnh hình chữ nhật . Tính diện tích hình chữ nhật (có sử dụng chƣơng trình con). 
Với các câu hỏi nhƣ lặp lại phần trên, ta chờ đợi học sinh những câu trả lời : 
+ Bài toán trên có thể chia nhỏ thành những bài toán sau: 
- Nhập hai số thực từ bàn phím 
- Tính diện tích hình chữ nhật chính là tích a*b 
- Biến a,b,S : thực là biến dùng cho cả chƣơng trình. 
- Bài toán này có thực hiện công việc tính toán diện tích hình chữ nhật học sinh 
có thể lựa chọn chƣơng trình con là thủ tục hoặc hàm. 
Từ đó học sinh có thể viết đƣợc chƣơng trình có sử dụng các chƣơng trình con là 
thủ tục nhƣ sau: 
Program DTICH_HCN; 
Var a,b , S: real; 
Procedure Nhap; 
Begin 
 Write(„Nhap a,b‟); Readln(a,b); 
End; 
Procedure DTICH_HCN; 
Begin 
 S:=a*b; 
 Write(„Dien tich hcn = ‟,S:2:1); 
End; 
Trang 6/15 
BEGIN 
 Nhap; 
 DTICH_HCN; 
END. 
Bài toán 2: Lập chƣơng trình thực hiện tính diện tích của hình tứ giác khi biết 
số đo 4 cạnh và một đƣờng chéo nhập vào từ bàn phím. 
Dẫn dắt học sinh : 
Câu hỏi 1: Có thể chia nhỏ bài toán nhƣ thế nào? 
 - Nhập các số từ bàn phím 
 - Tính diện tích và đƣa kết quả ra màn hình 
Dẫn dắt: Bài toán tính diện tích tam giác khi biết độ dài 3 cạnh a,b,c rất quen 
thuộc với các em, công thức Hê-Rông 
 (p a)(p b)(p c)S p    với 
2
a b c
p
 
 
- Tìm các đƣa bài toán này về bài toán quen thuộc, để tính diện tích tứ giác này 
cần chia tứ giác này thành hai tam giác, khi đó diện tích tứ giác sẽ đƣợc tính 
bằng tổng diện tích hai tam giác đã chia 
Câu hỏi 2: Chƣơng trình con cần viết dƣới dạng hàm hay thủ tục ? 
- Do cần lấy giá trị của chƣơng trình con là kết quả diện tích tam giác. Học sinh 
dễ dàng nhận ra việc sử dụng chƣơng trình con trong bài toán này là hàm. 
Câu hỏi 3: Những biến nào cần dùng trong toàn bộ chƣơng trình ? 
 - Cần 5 biến a,b,c,d, e để lƣu trữ độ dài 4 cạnh và đƣờng chéo của tứ giác 
Câu hỏi 4: Những biến nào chỉ cần cho hàm tính diện tích? 
- Cần biến tính chu vi, diện tích: S, p 
Câu hỏi 5: Có thể cấu trúc chƣơng trình nhƣ thế nào ? 
Kết quả mong đợi 
Program Tugiac; 
Var a,b,c ,d,e: real; 
Function Dientich(x,y,z: real): real ; 
Var 
 S, p: real; 
Begin 
 p:=(x+y+z)/2; 
 S:= SQRT(p*(p-x)*(p-y)*(p-z)); 
 Dientich:=S; 
End; 
Trang 7/15 
BEGIN 
Write(„nhap a,b,c,d,e =‟); 
Readln(a,b,c,d,e); 
Write(„dien tich cua tu giac la :‟, Dientich(a,b,c)+ Dientich(d,e,c):5:2); 
END. 
Bài toán 3: Viết chƣơng trình nhập vào ba số thực, kiểm tra xem ba số đó có là 
số đo ba cạnh của tam giác không ? Nếu ba số đó là số đo ba cạnh tam giác thì 
tam giác đó là tam giác gì ? (tam giác có ba góc nhọn, tam giác vuông, cân hay 
tam giác tù). 
 Với các câu hỏi nhƣ lặp lại phần trên, ta chờ đợi học sinh những câu trả lời : 
+ Bài toán trên có thể chia nhỏ thành những bài toán sau: 
- Nhập ba số thực a,b,c từ bàn phím. Đƣa giá trị lớn nhất trong ba số về c. Kiểm 
tra xem c có nhỏ hơn tổng a+b hay không (học sinh có thể kiểm tra trực tiếp các 
điểu kiện tổng hai số bất kỳ trong ba số lớn hơn số còn lại hoặc hiệu hai số bất 
kỳ nhỏ hơn số còn lại). 
- Nhận dạng tam giác theo ba cạnh, suy ra từ việc so sánh tổng bình phƣơng 
cạnh lớn nhất với tổng bình phƣơng hai cạnh còn lại. 
+ Biến a,b,c : Thực là biến dùng cho cả chƣơng trình. Trong chƣơng trình đƣa số 
lớn nhất về c cần biến trung gian là tg: thực là biến chỉ dùng trong chƣơng trình 
con để tráo đổi a cho b. 
+ Chƣơng trình nhận vào ba số, đƣa số lớn nhất về c rồi kiểm tra xem c<a+b là 
đúng hay sai học sinh quen thuộc có thể viết đƣợc 
Từ đó học sinh có thể viết đƣợc chƣơng trình nhƣ sau: 
Program TamGiac; 
Uses crt; 
Var a,b,c : real; 
Function KTra : Boolean; 
Var tg: real; 
Begin 
Writeln(„nhap ba so thuc a,b,c : ‟) ; 
Readln(a,b,c); 
If c<a then 
begin 
Tg:=a; a:=c; c:=tg; 
end; 
 If c< b then 
Trang 8/15 
begin 
Tg:=b; b:=c; c:=tg; 
end; 
 KTra:=c<a+b 
End; 
Procedure NhanDang_TG; 
 Begin 
 b:=a*a+b*b ; c:=c*c; 
 if c<b then Writeln („Tam giac co ba goc deu nhon‟) 
 If c=b then write(„Tam giac vuong‟) 
 Else write(„Tam giac tu‟); 
End; 
BEGIN 
 clrscr; 
 If KTra then NhanDang_TG Else write(„Khong la tam giac‟); 
END. 
Mở rộng bài toán: Giao cho học sinh về nhà thực hiện 
Bài tập 1: Viết chƣơng trình con thực hiện các công việc sau 
a) Tinh dien tich hinh vuong 
 b) Tinh dien tich hinh tron 
 c) Tinh dien tich hinh thang 
Kết quả mong đợi 
uses crt; 
Procedure HCN; 
 var a,b:real; 
 Begin 
 write(' nhap a = '); readln(a); 
 writeln('Dien tich hcn la : ', a*a:1:2); 
 readln; 
 End; 
Procedure HINHTRON; 
 var r : real; 
 Begin 
 write('R = '); Readln(r); 
 writeln('Dien tich hinh tron : ', r*r*3.14:1:2); 
 readln; 
 End; 
Trang 9/15 
Procedure HINHTHANG; 
 var a,b,h:real; 
 Begin 
 write('Nhap day lon, day be, chieu cao : '); Readln(a,b,h); 
 writeln('Dien tich hinh thang : ',(a+b)*h/2:1:2); 
 readln; 
 End; 
Bài tập 2: Dùng thủ tục giải phƣơng trình bậc hai : ax2 + bx + c = 0 
+ Bài toán trên có thể chia nhỏ thành những bài toán sau: 
- Nhập các hệ số a,b,c, 
- Giải phƣơng trình ax2 + bx + c = 0 
Bài tập 3 : Viết chƣơng trình thực hiện lần lƣợt các công việc sau : 
a) Lập thủ tục nhập ba số thực dƣơng a , b , c từ bàn phím. 
b) Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay 
không ? 
c) Viết thủ tục tính diện tích của tam giác. 
d) Viết thủ tục tính các trung tuyến của tam giác. 
e) Viết hoàn thiện chƣơng trình chính. 
II.3. KHAI THÁC MỘT SỐ THUẬT TOÁN SỬ DỤNG CHƢƠNG TRÌNH 
CON 
II.2.1 Hàm tìm ƣớc số chung lớn nhất của hai số nguyên dƣơng M và N 
a) Mục tiêu: Nhằm vận dụng kiến thức mới mà HS đã đƣợc lĩnh hội để giải 
quyết những vấn đề mới trong học tập và thực tiễn về chƣơng trình con là 
Hàm 
b) Ý tƣởng thuật toán: Viết hàm tìm ƣớc số chung 
- So sánh M và N 
- Nếu M=N thì UCLN:=M 
- Nếu M> N thì UCLN:=M-N ngƣợc lại UCLN:=N quá trình đƣợc lặp đi lặp 
lại đến khi M=N 
Function UCLN(a,b: integer):integer; 
 Begin 
 While a b do 
 If a > b then a:= a – b else b := b-a; 
 UCLN := a; 
 End; 
c) Vận dụng : Chuyển giao nhiệm vụ cho học sinh 
Trang 10/15 
Bài toán 1: Cho một dãy gồm N số nguyên dƣơng A1, A2, ...AN ngẫu nhiên nhập 
từ bàn phím. Hãy tìm ƣớc chung lớn nhất của các cặp số đứng liền nhau mà số 
sau lớn hơn hoặc bằng số đứng trƣớc trong dãy trên và viết ra màn hình. 
+ Xác định bài toán 
 Input: cho N và dãy số nguyên A1, A2, ...AN 
 Output: một dãy gồm N -1 số nguyên là các ƣớc chung lớn nhất của các số 
trong dãy số đã đƣợc sắp xếp thành dãy không giảm. 
+ Bài toán trên có thể chia nhỏ thành những bài toán sau: 
 - Nhập N và dãy số nguyên dƣơng A1, A2, ...AN : Sử dụng thủ tục Nhap 
- Sắp xếp dãy A1, A2, ...AN thành dãy không giảm: Sử dụng thủ tục Sap_xep 
- Tìm ƣớc chung lớn nhất của dãy đã sắp xếp: Sử dụng hàm tìm ƣớc số chung 
lớn nhất của hai số nguyên dƣơng 
Kết quả mong đợi trong chƣơng trình chính 
BEGIN 
 Nhap ; 
 Sap_xep; 
 Writeln(„ day cac uoc chung lon nhat:‟); 
 For i :=1 to N-1 do write (UCLN(A[i], A[i+1]) : 5); Readln 
END. 
Bài toán 2: Tìm bội số chung nhỏ nhất của hai số nguyên dƣơng M và N 
 Ý tƣởng : 
.
(M, N)
(M, N)
M N
BSCNN
USCLN
 
Dẫn dắt học sinh: Sử dụng hàm tìm ƣớc số chung lớn nhất của hai số nguyên 
dƣơng. 
Kết quả mong đợi : 
Program BOI_SCNN; 
Var 
 M,N: byte; 
Function UCLN(a,b: integer):integer; 
 Begin 
 While a b do 
 If a > b then a:= a – b else b := b-a; 
 UCLN := a; 
 End; 
Trang 11/15 
BEGIN 
 Write(„nhap M,N‟); 
 Readln(M,N); 
 Write( „Boi so chung nho nhat=‟, (M*N) /USCLN(M,N)); 
END. 
Bài toán 3: Rút phân số thành phân số tối giảm 
Ý tƣởng: Chia tử và mẫu cho ƣớc số chung lớn nhất của cả tử và mẫu. 
- Sử dụng hàm tìm ƣớc số chung lớn nhất của hai số nguyên dƣơng. 
Program Rutgon_Phanso; 
Uses crt; 
Var 
 Tuso, Mauso, a: Integer; 
Function USLN(x,y : integer):integer; 
Var sodu: integer; 
Begin 
 While y0 do 
Begin 
 sodu:=x mod y; 
 x:=y; 
 y:=sodu; 
End; 
UCLN:=x; 
End; 
BEGIN 
Clrscr; 
Write(„nhap vao Tuso, Mauso : ‟); Readln(Tuso, Mauso); 
a:= USCLN(Tuso,Mauso); 
If a>1 then Begin 
 Tuso:=Tuso div a; 
 Mauso:=Mauso div a; 
 End; 
Writeln(Tuso:5, Mauso:5); 
END. 
Mở rộng bài toán: Giao cho nhóm học sinh về nhà thực hiện 
Bài toán: Viết chƣơng trình nhập số N, sau đó nhập N số hạng, tính UCLN 
và BCNN của N số đó. 
Trang 12/15 
Gợi mở: Viết hàm tính UCLN, BCNN giữa 2 số 
 UCLN (A1..An) = UCLN( UCLN(A1..An-1) ,An) 
 BCNN (A1..An) = BCNN( BCNN(A1..An-1) ,An)} 
Kết quả mong đợi 
uses crt; 
VAR 
 a,i,n:integer; 
 u,b:integer ; 
Function UCLN(a,b:integer):integer; 
 Begin 
 while ab do 
 if a>b then a:=a-b else b:=b-a; 
 UCLN:=a; 
 End; 
Function BCNN(a,b:integer):integer; 
 Begin 
 BCNN:=a*b div ucln(a,b); 
 End; 
BEGIN 
 clrscr; 
 write('N = '); Readln(n); 
 write('So thu 1 : '); Readln(a); 
 u:=a;b:=a; 
 for i:=2 to n do 
 begin 
 write('So thu ',i,' : '); Readln(a); 
 u:=UCLN(u,a); 
 b:=bcnn(b,a); 
 end; 
 writeln('UCLN = ', u); 
 writeln('BCNN = ', b); 
 readln; 
END. 
Trang 13/15 
II.2.2 Hàm tìm giá trị nhỏ nhất của hai số nguyên a và b 
- Ý tưởng: Khai thác hàm tìm Min của hai số 
Function Min(a,b: Real): Real; 
Begin 
 If a<b then Min:=a 
Else Min:=b; 
End; 
- Sử dụng hàm trên để giải quyết bài toán sau 
Bài toán 1 : Viết chƣơng trình con tìm số nhỏ nhất của ba số a,b,c 
- Dẫn dắt học sinh : Sử dụng hàm Min của hai số gọi lại chƣơng trình con đó 
- Kết quả mong đợi 
Program Min3so; 
Var a, b, c : Real; 
Function Min(var a,b:real) : real ; 
Begin 
 If a<b then Min:=a Else Min:=b; 
End; 
BEGIN 
Write(„Nhap 3 so‟); Readln(a,b,c); 
Writeln(„So nho nhat trong 3 so la: ‟, Min(Min(a,b),c)); 
END. 
Bài toán 2 : Viết chƣơng trình con tìm số lớn nhất của ba số a,b,c 
- Dẫn dắt học sinh : Sử dụng hàm Max của hai số gọi lại chƣơng trình con đó 
- Kết quả mong đợi 
Program Max3so; 
Var a, b, c : Real; 
Function Max(var a,b:real) : real ; 
Begin 
 If a>b then Max:=a Else Max:=b; 
End; 
BEGIN 
Write(„Nhap 3 so‟); Readln(a,b,c); 
Writeln(„So lon nhat trong 3 so la: ‟, Max(Max(a,b),c)); 
END. 
Trang 14/15 
Phát triển bài toán: Chuyển giao nhiệm vụ cho nhóm học sinh về nhà thực hiện 
nộp và trình bày vào tiết bài tập sau: 
Bài 1: Tìm Min của 4 số a,b,c,d nhập vào từ bàn phím 
Bài 2: Tìm Max của 4 số a,b,c,d nhập vào từ bàn phím 
II. 3. KẾT QUẢ ÁP DỤNG ĐỀ TÀI 
Xếp loại 
 Lớp 
Sĩ số Giỏi Khá 
Trung 
Bình 
Yếu Kém 
11A1 (Thực nghiệm) 42 18 23 1 0 0 
11A2 (Đối chứng) 42 15 15 12 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. 
Trang 15/15 
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 2020-
2021 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. 
- Đề tài góp phần xây dựng cho học sinh năng lực tƣ duy lập trình có cấu trú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ị nhà trƣờng quan tâm và đầu tƣ về cơ sở vật chất, phòng thực hành, 
các thiết bị giảng dạy để hỗ trợ bài giảng, học sinh tiếp thu bài đạt kết quả 
cao hơn. 
- Đƣợc triển khai, thảo luận các chu

Tài liệu đính kèm:

  • pdfsang_kien_kinh_nghiem_ren_luyen_ky_nang_viet_chuong_trinh_co.pdf