Tải bản đầy đủ (.doc) (21 trang)

Hướng dẫn học sinh phân biệt và sử dụng tham biến và tham trị trong lập trình có cấu trúc thông qua nội dung bài 18 – chương VI – tin học 11 ví dụ về cách viết và sử dụng chương trình con

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 (285.27 KB, 21 trang )

MỤC LỤC
1. MỞ ĐẦU................................................................................................................................2
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM.........................................................................3
2.1 Cơ sở lí luận của sáng kiến kinh nghiệm..................................................................................3
2.3 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm................................................5
2.3 Các biện pháp tiến hành để giải quyết......................................................................................6
2.4Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với bản thân, đồng nghiệp
và nhà trường.................................................................................................................................16

3. KẾT LUẬN...........................................................................................................................17
TÀI LIỆU THAM KHẢO.......................................................................................................19

1

1


1. MỞ ĐẦU
- Lý do chọn đề tài:
Mỗi môn học đều có đặc thù riêng, môn Tin học cũng vậy. Đối với môn
Tin học, các tiết bài tập và bài tập thực hành chiếm thời lượng giảng dạy khá
nhiều. Kết quả học lý thuyết thể hiện ở năng lực giải quyết bài tập và bài tập
thực hành của các em. Tuy nhiên, đối với học sinh khối 11, việc làm quen với
lập trình dù chỉ là các bài toán đơn giản cũng còn nhiều lạ lẫm và khó khăn. Đó
là những kiến thức mới, cách tiếp cận cũng như thực hành không như những
môn học các em đã được làm quen lâu nay. Để làm được bài tập phải vận dụng
nhiều kỹ năng như: Tư duy toán học, tư duy logic ... Mà không phải tất cả học
sinh đều có tư chất và say mê đối với môn học để tìm tòi và đáp ứng được.
Đặc biệt khi giảng dạy nội dung bài 18 - chương VI: “Ví dụ về cách viết
và sử dụng chương trình con” – Tin học 11 tôi nhận thấy đa số học sinh đều gặp
khó khăn khi tìm hiểu các khái niệm trừu tượng như: Danh sách tham số, tham


số giá trị(tham trị), tham số biến(tham biến). Thông qua các ví dụ minh họa
trong sách giáo khoa hầu hết các em chưa nắm bắt được các khái niệm một cách
hiệu quả nhất, và dễ bị nhầm lẫn các khái niệm: Tham biến, tham trị.
Đề tài này được viết dựa trên kinh nghiệm thực tiễn giảng dạy của bản
thân, và tôi xây dựng thành: “Hướng dẫn học sinh phân biệt và sử dụng tham
biến và tham trị trong lập trình có cấu trúc thông qua nội dung bài 18 –
chương VI – Tin học 11: Ví dụ về cách viết và sử dụng chương trình con”.
- Mục đích nghiên cứu
Giúp học sinh phân biệt và sử dụng tham trị, tham biến trong quá trình lập
trình. Từ đó, các em có thể hiểu vận dụng vào viết các chương trình con hỗ trợ
phục vụ cho quá trình lập trình giải quyết các bài toán từ đơn giản đến phức tạp.
- Đối tượng nghiên cứu
Học sinh khối 11 trường THPT Triệu Sơn 1.
- Phương pháp nghiên cứu
Trong phạm vi đề tài này tôi lựa chọn phương pháp nghiên cứu xây dựng
cơ sở lí thuyết

2


2.

NỘI DUNG SÁNG KIẾN KINH NGHIỆM

2.1 Cơ sở lí luận của sáng kiến kinh nghiệm
Cũng như những môn học khác, việc dạy Tin học cần được thực hiện
trong hoạt động và bằng hoạt động tự giác, tích cực, chủ động và sáng tạo
của người học. Khi cần dạy một nội dung Tin học cho học sinh, người giáo
viên phải biết phân tích nội dung đó xem nó liên quan đến những hoạt động
nào và một số hoạt động trong đó lại được phân tích thành những hoạt động

thành phần, rồi căn cứ vào mục tiêu tiết học, trình độ học sinh, trang thiết bị
hiện có mà lựa chọn cho học sinh tập luyện và thực hiện một số trong những
hoạt động tiềm tàng trong nội dung cần dạy. Để học sinh có ý thức về ý nghĩa
của những hoạt động, cần tạo động cơ học tập cho học sinh, để học sinh học
bằng sự hứng thú thực sự được nảy sinh từ việc ý thức sâu sắc ý nghĩa của
nội dung bài học.
Bên cạnh đó cần phải tập luyện cho học sinh những hoạt động ăn khớp
với những tri thức phương pháp. Phải phân bậc hoạt động để tuần tự nêu cao
yêu cầu khi tình huống dạy học cho phép hoặc hạ thấp yêu cầu khi học sinh
gặp khó khăn. Hệ thống bài tập được phân bậc để học sinh luyện tập tại lớp
hoặc làm ở nhà.
Quan điểm hoạt động trong phương pháp dạy học có thể được thể hiện ở
các tư tưởng chủ đạo sau:
* Cho học sinh thực hiện và tập luyện những hoạt động và hoạt động
thành phần tương thích với nội dung và mục tiêu dạy học;
* Gợi động cơ cho các hoạt động học tập;
* Dẫn dắt học sinh kiến tạo tri thức, đặc biệt là tri thức phương pháp như
phương tiện và kết quả của hoạt động;
* Phân bậc hoạt động làm căn cứ điều khiển quá trình dạy học.
Trong các tư tưởng chủ đạo đó, tôi lựa chọn tư tưởng: "Cho học sinh
thực hiện và tập luyện những hoạt động và hoạt động thành phần tương
thích với nội dung và mục tiêu dạy học" làm cơ sở lý luận cho SKKN này.
Có thể cụ thể hóa tư tưởng như sau:
*Phát hiện những hoạt động tương thích với nội dung:
Việc phát hiện những hoạt động tương thích với nội dung căn cứ một
phần quan trọng vào sự hiểu biết về những hoạt động nhằm lĩnh hội những
dạng nội dung khác nhau.
3



Ví dụ: Khi giới thiệu về danh sách tham số sử dụng trong phần đầu của
chương trình con ta có thể giải quyết như sau:
Nếu một chương trình con có danh sách tham số thì các tham số phải
được khai báo ở phần đầu chương trình con, cụ thể đối với thủ tục và hàm có
cấu trúc để khai báo:
Thủ tục: Procedure <Tên thủ tục>[(<Danh sách tham số>)];
Hàm: Function <Tên hàm>[(<Danh sách tham số>)]: <Kiểu dữ liệu>;
Trong đó: [(<Danh sách tham số>)] là tên của một hoặc nhiều biến đơn,
và phải khai báo kiểu dữ liệu của các biến đơn trong danh sách tham số. Thành
phần danh sách tham số có thể có hoặc không trong khai báo.
Ví dụ:
1.Procedure Ve_HCN;
2.Procedure Ve_HCN(chdai,chrong:integer);
Dựa vào khái niệm đưa ra và các ví dụ điển hình trong SGK học sinh dễ
dàng chỉ ra được thành phần danh sách tham số. Trong ví dụ 1 là một trường
hợp của bài toán đơn giản không cần sử dụng danh sách tham số còn ví dụ 2 là
một trường hợp có sử dụng danh sách tham số và cách khai báo các tham số sử
dụng trong chương trình đó là chdai, chrong có kiểu dữ liệu là integer.
*Phân tách hoạt động thành các hoạt động thành phần
Trong quá trình hoạt động, nhiều khi một hoạt động này có thể xuất hiện
như một thành phần của một hoạt động khác. Phân tách được một hoạt động
thành những hoạt động thành phần là biết được cách tiến hành hoạt động toàn
bộ, nhờ đó có thể vừa quan tâm rèn luyện cho học sinh hoạt động toàn bộ vừa
chú ý cho học sinh luyện tập tách riêng những hoạt động thành phần khó hoặc
quan trọng khi cần thiết.
Ví dụ: Khi giới thiệu về khái niệm tham trị và tham biến ta có thể giải
quyết như sau:
Theo SGK Tin học 11, tham biến và tham trị được định nghĩa như sau:
* Tham trị: Trong lệnh gọi chương trình con, các tham số hình thức được
thay bằng các tham số thực sự tương ứng là các giá trị cụ thể được gọi là các

tham số giá trị (tham trị).
* Tham biến: Trong lệnh gọi chương trình con, các tham số hình thức được
thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được
gọi là các tham số biến (tham biến).
* Để phân biệt tham trị và tham biến, ngôn ngữ lập trình Pascal sử dụng từ
khóa Var để khai báo những tham số biến.

4


Hoạt động 1: Nhận biết tham trị và tham biến thông qua phần đầu chương
trình con:
Ví dụ 1: a. Procedure Hoan_doi(a,b:integer);
b. Procedure Hoan_doi(x:integer; Var y:integer);
Học sinh dễ dàng nhận biết:
Ví dụ 1.a: a,b là tham trị;
Ví dụ 1.b: x là tham trị và b là tham biến.
Hoạt động 2: Nhận biết tham trị và tham biến thông qua lệnh gọi chương
trình con:
Ví dụ 2: Với thủ tục có khai báo:
Procedure Hoan_doi(a,b:integer);
Hãy cho biết trong các lệnh gọi sau đâu là tham trị? tham biến?
a. Hoan_doi(a,b);
b. Hoan_doi(7,5);
Dựa vào khái niệm tham trị và tham biến học sinh chỉ ra được:
Ví dụ 2.a: a và b đóng vai trò là tham biến;
Ví dụ 2.b: 5 và 7 đóng vai trò làm tham trị;
2.3

Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm

Trong các chương học trước các em đã làm quen khá nhiều với các dạng
bài tập lập trình, và các phương pháp lập trình. Tuy nhiên trong chương VI này,
các em được làm quen với phương pháp lập trình có cấu trúc do đó còn nhiều bỡ
ngỡ và chưa thành thạo. Mặc dù các ví dụ của sách giáo khoa là các chương
trình cụ thể để giải quyết bài toán tuy nhiên học sinh sẽ gặp rất nhiều khó khăn.
Chính vì vậy, đối với những học sinh khá và giỏi việc vận dụng lý thuyết để làm
các bài tập đã khó; đối với học sinh trung bình và yếu càng khó hơn.
Thực tế giảng dạy đặt ra vấn đề: làm thế nào để học sinh hiểu bài, có khả
năng tư duy vận dụng để giải quyết các bài tập, từ đó khơi dậy tính tích cực, chủ
động, sáng tạo và say mê tìm tòi dẫn đến yêu thích môn học là điều quan trọng
đối với mỗi giáo viên.
Bên cạnh đó, nếu sau một thời gian học sinh không biết cách vận dụng lý
thuyết vào để làm các bài tập và cảm thấy khó khăn khi giải quyết vấn đề sẽ dẫn
đến tình trạng các em thụ động trong việc tiếp thu bài giảng, không còn hứng thú
với môn học. Để giải quyết vấn đề này là không phải là đơn giản.

5


Do đó khi giảng dạy nội dung bài 18 chương VI- Tin học 11 tôi đã áp
dụng SKKN của mình với hi vọng có thể giúp học sinh vận dụng để giải quyết
được các bài tập lập trình có sử dụng chương trình con.


Thuận lợi:
- Có nhiều tài liệu viết về chương trình con.
- Thời lượng cho các tiết bài tập và thực hành Tin học khối 11 nhiều
thuận lợi cho việc áp dụng các bài tập trong sáng kiến vào bài dạy.
- Các phòng học đều có máy chiếu, có phòng máy đáp ứng được các
yêu cầu giảng dạy của bộ môn.

- Sự quan tâm và chỉ đạo kịp thời của Ban giám hiệu nhà trường.



Khó khăn:
- Chương trình con là một phần mới và khó đối với học sinh.
- Môn tin là môn học không không được học sinh đầu tư nhiều thời
gian như các môn học khác.
- Để học tốt chương trình tin học 11 học sinh phải có nền tảng tư duy
toán học.

2.3

Các biện pháp tiến hành để giải quyết

2.3.1

Sự khác nhau cơ bản của tham trị và tham biến
Ngoài sự khác nhau trong cách khai báo, trong lệnh gọi chương trình con
mà học sinh dễ dàng nhận biết thì sự khác nhau về bản chất của tham trị và tham
biến lại thực sự là một vấn đề khá phức tạp và dễ nhầm lẫn trong quá trình viết
chương trình giải quyết các bài toán. Vậy làm thế nào để học sinh nhận biết
được sự khác nhau cơ bản giữa tham trị và tham biến?
Giá trị của tham biến thay đổi còn giá trị của tham trị không thay đổi
sau khi thực hiện lời gọi chương trình con.
Bài toán 1: Quan sát kết quả thực hiện chương trình và cho biết:
a. Tham biến và tham trị sử dụng trong chương trình?
b. Đưa ra nhận xét về sự thay đổi giá trị của tham biến và tham trị
sau khi lệnh gọi thủ tục được thực hiện?
Program ThamSo;

Var x,y:integer;
Procedure Gia_tri(Var a:integer; b:integer);
Begin
6


a:=5;b:=5;
End;
Begin
x:=10;y:=10;
Writeln('Gia tri ban dau:x=',x,' y=',y);
Gia_tri(x,y);
Writeln('Sau khi thu hien CHƯƠNG TRÌNH CON:x=',x,'
y=',y);
Readln
End.

Kết quả sau khi thực hiện chương trình:

Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích
Bài toán 1a học sinh nhận biết tham trị và tham biến thông qua phần đầu
chương trình con có sử dụng từ khóa Var trong danh sách tham số hay không?
Do đó học sinh chỉ ra trong danh sách tham số a là tham biến còn b là tham trị.
Và trong lệnh gọi thủ tục tương ứng thì x là tham biến, y là tham trị.
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần
Bài toán 1b, đầu tiên x và y được truyền giá trị là x:=10; y:=10;
Khi lệnh gọi thủ tục Thamso(x,y) được thực hiện, do tham biến là biến
chứa dữ liệu ra nên giá trị của tham biến x sẽ bị tác động bởi câu lệnh trong thủ
tục a:=5 (Tương ứng là x:=5).

Bên cạnh đó, khi lệnh gọi thủ tục Thamso(x,y) được thực hiện, do tham trị
là các giá trị cụ thể nên lệnh gọi lúc này có thể hiểu là Thamso(x,10). Chính vì

7


vậy giá trị của y không bị thay đổi bởi lệnh b:=5 trong thủ tục và giá trị của y
vẫn là 10.
Kết luận: Sau khi thực hiện lệnh gọi chương trình con, giá trị của tham
biến thay đổi còn giá trị của tham trị không thay đổi.
2.3.2
Chương trình con có tham số sử dụng tham biến và tham trị
như thế nào?
Bài toán 2: Quan sát chương trình và cho biết kết quả của chương
trình sau khi thực hiện? Và cho biết để nhận được kết quả phù hợp cần sử
dụng tham biến hoặc tham trị như thế nào?
Program BaiToan2;
Var a,b:integer;
Procedure Hoandoi(x,y:integer);
Var tg:integer;
Begin
tg:=x;
x:=y;
y:=tg;
End;
Begin
a:=5;b:=10;
Writeln('Truoc khi hoan doi a=',a,'

', 'b=',b);


Hoandoi(a,b);
Write('Sau khi thuc hien thu tuc a=',a,'

','b=',b);

Readln
End.
Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích:
Thuật toán sử dụng trong chương trình con là thuật toán tráo đổi giá trị của
hai số x,y cho thông qua biến trung gian tg mà các em đã được học trong bài
toán sắp xếp mảng một chiều. Do đó học sinh sẽ phát hiện được chương trình
con là thủ tục thực hiện công việc tráo đổi giá trị của hai số nguyên x,y.
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần
Hoạt động 2.1: Danh sách tham số sử dụng trong chương trình là tham
biến hay tham trị?

8


Thông qua việc khai báo danh sách tham số các em nhận biết được x và y
là tham trị; còn trong lệnh gọi thủ tục Hoandoi(a,b) hai tham số a,b là tương ứng
với x,y nên a và b là tham trị.
Hoạt động 2.2: Tìm hiểu hoạt động của chương trình thông qua hoạt động
của các câu lệnh và đưa ra kết quả sau khi thực hiện chương trình.
Thủ tục Hoandoi(x,y) trong ví dụ này dùng để đổi giá trị giữa 2 biến
nguyên x và y. Tuy nhiên khi chạy chương trình, điều này không xảy ra. Giá trị
của 2 biến nguyên a và b trước khi gọi thủ tục a có giá trị bằng 5, b có giá trị
bằng 10 và sau khi gọi thủ tục Hoandoi(a,b) giá trị của a, b có giá trị vẫn không

đổi: a=5, b=10. Việc phát hiện giá trị của a,b không thay đổi sau khi thực hiện
lệnh gọi thủ tục là do “Giá trị của tham trị không thay đổi” (Kết luận của Bài
toán 1) và kết quả trên màn hình là:

Hoạt động 2.3: Chỉnh sửa lại chương trình cho phù hợp.
Rõ ràng lỗi xảy ra do thủ tục Hoandoi(x,y) sử dụng tham trị nên các giá trị
của các biến a và b không bị ảnh hưởng bởi các lệnh tráo đổi giá trị trong thủ
tục. Nếu muốn nhận được giá trị của a=10 và b=5 thì trong danh sách tham số
của chương trình con cần phải khai báo các tham số x, y là tham biến:
Procedure Hoandoi(Var x,y:integer);
Khi đó chương trình sẽ cho kết quả như mong muốn: a=10, b=5. Và trên
màn hình kết quả sẽ là:

9


Đây là một ví dụ điển hình để chỉ ra cho học sinh thấy khi nào cần sử dụng
tham trị và tham biến trong chương trình con.
Kết luận: Việc sử dụng tham trị hay tham biến cho một tham số là
không thể tuỳ tiện vì nó có thể dẫn đến những kết quả sai với yêu cầu của bài
toán. Bài toán trên đã minh hoạ các tình huống có thể xảy ra. Chương trình
cho kết quả sai khi sử dụng tham trị, nếu sửa lại việc khai báo các tham số
trong thủ tục Hoandoi là tham biến thì chương trình sẽ cho kết quả đúng với
yêu cầu của bài toán.
2.3.3 Một số bài tập đơn giản để rèn luyện kĩ năng cho học sinh trong việc
sử dụng tham trị và tham biến khi lập trình có cấu trúc
Bài toán 3: Sử dụng chương trình con để lập trình tính chu vi và diện
tích hình chữ nhật có độ dài các cạnh là a, b. Với a, b nguyên dương nhập
vào từ bàn phím.
Hướng dẫn:

Hoạt động 1: Phát hiện nội dung tương thích:
* Câu lệnh gán để tính chu vi và diện tích hình chữ nhật;
* Lựa chọn chương trình con phù hợp;
* Danh sách tham số cần sử dụng;
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần:
Hoạt động 2.1: Xây dựng các câu lệnh gán để tính chu vi và diện tích hình
chữ nhật có kích thước a,b:
CV:=(a+b)*2;
DT:=a*b;

10


Hoạt động 2.2: Khi lựa chọn chương trình con cần sử dụng trong chương
trình thì học sinh xác định cần phải dùng thủ tục vì trong trường hợp này nếu
dùng Hàm thì cần phải viết 2 Hàm: một hàm tính chu vi và một hàm tính diện
tích vì vậy chương trình sẽ dài hơn và mất thời gian.
Hoạt động 2.3: Viết chương trình con dạng thủ tục tính chu vi và diện tích
hình chữ nhật có kích thước a,b.
Để viết chương trình con, học sinh cần xác định xem danh sách tham số
cần sử dụng là những tham số nào? Và trong đó những tham số nào khai báo là
tham trị và tham biến?
Trong bài toán này, các cạnh của hình chữ nhật sẽ có giá trị không thay đổi
nên cần khai báo là tham trị; còn chu vi và diện tích cần phải tính trong thủ tục
nên khai báo là tham biến. Do đó danh sách tham số gồm bốn tham số, trong đó
x, y là tham trị với mục đích lưu trữ độ dài các cạnh của hình chữ nhật và CV,
DT là tham biến với mục đích lưu trữ giá trị CV, DT sau khi tính.
Thủ tục được học sinh viết như sau:
Procedure Tinh(x,y:word; Var CV,DT:word);
Begin

CV:=(x+y)*2;
DT:=x*y;
end;
Hoạt động 2.4: Hoàn thiện chương trình
Dựa vào các hoạt động trên, học sinh sẽ tiến hành viết chương trình hoàn
chỉnh để giải quyết bài toán ban đầu:
Program BaiToan3;
Uses crt;
Var a,b,C,S:word;
Procedure Tinh(x,y:word; Var CV,DT:word);
Begin
CV:=(x+y)*2;
DT:=x*y;
end;
Begin
clrscr;
Write('Nhap a va b:');
Readln(a,b);
11


Tinh(a,b,C,S);
Writeln('Chu vi HCN la:C= ',C,'(dvcv)');
Writeln('Dien tich HCN la: S= ',S,'(dvdt)');
Readln
End.
Bài toán 4: Sử dụng chương trình con để lập trình tính tổng hai dãy
số a1, a2, a3, ..., aN và b1, b2, b3, ..., bM . Với N, M nguyên dương nhập vào từ
bàn phím (N, M <= 250);
Hướng dẫn:

Hoạt động 1: Phát hiện nội dung tương thích
* Nhập N, M, hai dãy số và dùng câu lệnh gán để tính tổng;
* Lựa chọn chương trình con phù hợp;
* Danh sách tham số cần sử dụng;
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần
Hoạt động 2.1: Đây là một bài toán các em đã được làm quen từ các
chương học trước khi thao tác với mảng một chiều, do đó các em dễ dàng xác
định được cách nhập N, dãy số a và tổng dãy a:
S1:=0;
Write('Nhap so luong phan tu chua day N=');
Readln(N);
For i:=1 to N do
Begin
Write('Nhap phan tu thu
Readln(a[i]);
S1:=S1+a[i];

',i, ': ');

End;
Tương tự như vậy đối với M, dãy b và tổng dãy b.
Hoạt động 2.2: Lựa chọn chương trình con cần sử dụng:
Bài toán này là bài toán quen thuộc mà học sinh đã làm trong các chương
học trước. Có nhiều cách để thực hiện tính tổng hai dãy số chính vì thế khi sử
dụng chương trình con cũng có thể có nhiều cách để triển khai. Nên khuyến
khích các em phát triển tư duy lập trình theo nhiều cách. Ở đây tôi đề xuất cách
viết có sử dụng tham biến và tham trị trong việc viết các thủ tục để giải quyết
bài toán ban đầu.
Hoạt động 2.3: Danh sách tham số cần sử dụng:
12



Bao gồm:
* Tham trị X là tham số tương ứng với N và M
* Tham trị C là tham số tương ứng với mảng A và B lưu trữ giá trị hai dãy
số;
* Tham biến S là tham số tương ứng lưu trữ giá trị tổng của từng dãy số;
Hoạt động 2.4: Hoàn thiện chương trình:
Dựa vào các hoạt động trên, học sinh sẽ tiến hành viết chương trình hoàn
chỉnh để giải quyết bài toán ban đầu:
Program Baitoan4;
Uses Crt;
Type KM=Array [1..250] of integer;
Var A,B:KM;
N,M:Byte;
S1,S2:longint;
Procedure Tong(X:byte;C:KM;Var S:longint);
Var i:Byte;
Begin
S:=0;
Writeln('Moi nhap day so ',X,' phan tu:');
For i:=1 to X do
Begin
Write('Nhap phan tu thu ',i,':');
Readln(C[i]);
S:=S+C[i];
End;
End;
Begin
Clrscr;

Write('Nhap gia tri N va M:');
Readln(N,M);
Tong(N,A,S1);
Tong(M,B,S2);
Writeln('Tong hai day so A va B la: S=',S1+S2);
Readln
End.
13


Bài toán 5: Sử dụng chương trình con viết chương trình tìm và thông
báo có hay không số nguyên dương có giá trị bằng K trong dãy số nguyên
a1, a2, a3, ..., aN. Với N nguyên dương (N<=250) . N và K nhập vào từ bàn
phím.
Hướng dẫn:
Hoạt động 1: Phát hiện nội dung tương thích
* Nhập N, K, dãy số A từ bàn phím và kiểm tra xem có tồn tại số K trong
dãy hay không?
* Lựa chọn chương trình con phù hợp;
* Danh sách tham số cần sử dụng;
Hoạt động 2: Phân tách hoạt động thành các hoạt động thành phần
Hoạt động 2.1: Nhập N, K, dãy số A và kiểm tra có tồn tại K trong dãy hay
không?
Việc nhập N, K, và dãy số A tương tự như Bài toán 4, và thay thế câu lệnh
tính tổng dãy số bằng câu lệnh kiểm tra xem có tồn tại số K trong dãy số hay
không? Đoạn chương trình như sau:
KT:=False;
Writeln('Moi nhap so phan tu cua day N=');
Readln(N);
For i:=1 to N do

Begin
Write('Nhap phan tu thu ',i,' :');
Readln(A[i]);
If A[i]=K then KT:=True;
End;
Hoạt động 2.2: : Lựa chọn chương trình con cần sử dụng:
Bài toán này là bài toán tìm kiếm mà học sinh đã làm trong các chương học
trước. Có nhiều cách viết chương trình để giải quyết bài toán. Vì thế khi sử dụng
chương trình con cũng có thể có nhiều cách để triển khai. Ở đây tôi đề xuất cách
viết có sử dụng tham biến và tham trị trong việc sử dụng thủ tục để giải quyết
bài toán ban đầu.
Hoạt động 2.3: Hoàn thiện chương trình:
Dựa vào các hoạt động trên, học sinh sẽ tiến hành viết chương trình hoàn
chỉnh để giải quyết bài toán ban đầu:
Program Baitoan5;
14


Uses Crt;
Type KM=Array[1..250] of integer;
Var N:byte;
A:KM;
K:integer;
KT:Boolean;
Procedure Nhap(X:Byte;C:KM;Var KT:Boolean);
Var i:Byte;
Begin
KT:=False;
Writeln('Moi nhap day ',X,' phan tu:');
For i:=1 to X do

Begin
Write('Nhap phan tu thu ',i,' :');
Readln(C[i]);
If C[i]=K then KT:=True;
End;
End;
Begin
Clrscr;
Write('Nhap N va K:');
Readln(N,K);
Nhap(N,A,KT);
If KT then Writeln('Co so ',K,' trong day A')
Else Writeln('Khong co so ',K,' trong day A');
Readln
End.
2.3.4 Một số bài tập luyện tập thêm
Bài tập 1: Sử dụng chương trình con viết chương trình sắp xếp dãy số
nguyên a1, a2, a3, ..., aN thành dãy không giảm. Với N nguyên dương nhập
vào từ bàn phím (N<=250);
Bài tập 2: Sử dụng chương trình con viết chương trình cho phép trộn
hai dãy số A và B cùng có số phần tử là k để được dãy số C theo yêu cầu
sau:
15


A = a1, a2 , ..., ak
B = b1, b2 , ..., bk
Được C = a1, b1, a2, b2 ... ak, bk.
Bài tập 3: Sử dụng chương trình con viết chương trình in ra các số
nguyên tố nhỏ hơn N. Với N nguyên dương nhập vào từ bàn phím.

2.4 Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo dục, với
bản thân, đồng nghiệp và nhà trường
Năm học 2010 - 2011 là năm đầu tiên tôi được phân công giảng dạy “Tin
học 11”, vì mới ra trường kinh nghiệm chưa có nên thật khó khăn để giúp học
sinh phân biệt tham trị và tham biến trong lập trình có cấu trúc, cũng như việc
vận dụng chương trình con để giải quyết các bài toán lập trình. Tỷ lệ học sinh
hiểu bài và làm được các bài tập rất thấp, chỉ một số em khá giỏi mới hiểu bài.
Nhưng trong một số năm học gần đây, tôi đã mạnh dạn vận dụng phương pháp
giảng dạy trên, kết quả đã khác biệt hơn rất nhiều. Học sinh đã hiểu bài và làm
bài tập tốt hơn. Hơn thế nữa trong chương này khi học sinh nắm vững về
chương trình con và lập trình có cấu trúc sẽ giúp các em có thể lập trình giải
quyết các bài toán điển hình cũng như các bài toán phức tạp. Và những em sau
này muốn học sâu hơn về lĩnh vực lập trình thì đó cũng là một nền tảng vững
chắc.
Kết quả SKKN được thể hiện qua các bảng thống kê tỷ lệ bài kiểm tra
nội dung kiến thức chương VI qua các năm:
*Năm học chưa áp dụng SKKN
Năm học 2011 – 2012
STT
1
2

LỚP
11B8
11B9

Sĩ số
38
36


Số lượng TB trở lên
20
19

Tỉ lệ % trên TB
52.6
52.8

STT LỚP Sĩ số
1
11C8
42
2
11C9
42
Năm học 2013 - 2014

Số lượng TB trở lên
35
34

Tỉ lệ % trên TB
83.3
80.9

STT
1
2

Số lượng TB trở lên

35
46

Tỉ lệ % trên TB
92.1
90.2

*Năm học đã áp dụng SKKN
Năm học 2012 – 2013

LỚP
11A1
11A2

Sĩ số
38
51

Năm học 2014 - 2015
16


STT
1
2

LỚP
11B3
11B4


Sĩ số
48
39

Số lượng TB trở lên
45
37

Tỉ lệ % trên TB
93.8
94.9

3. KẾT LUẬN
a. Những mặt đã đạt được và chưa đạt được
* Những mặt đạt được:
- Phần lớn học sinh nắm được kiến thức của bài học và vận dụng vào làm
các bài tập.
- Có thái độ tích cực trong học tập, đặc biệt là việc sử dụng chương trình
con để viết các chương trình trong quá trình lập trình.
- Một số em học sinh khá giỏi biết áp dụng thành thạo chương trình con để
lập trình giải quyết các bài toán từ đơn giản đến phức tạp. Cụ thể trong năm học
2012 – 2013 có 02 em tham gia thi HSG cấp tỉnh môn tin đạt giải nhì.
* Những mặt chưa đạt được:
- Một số em tiếp xúc ít với máy tính nên còn chậm trong các thao tác viết
chương trình và thực hành trên máy;
- Một số học sinh chưa thực sự nhạy bén trong việc áp dụng lý thuyết vào
giải quyết các bài tập;
b. Nguyên nhân
* Khách quan
- Môn tin là môn học khó đối với học sinh;

- Số em gia đình có máy tính còn ít;
- Do môn tin là môn học không thi tốt nghiệp và thi đại học nên học sinh
không dành nhiều thời gian để học và tự nghiên cứu thêm các tài liệu ở nhà;
* Chủ quan
- Một số học sinh chưa chú ý nên dẫn đến hiện tượng cảm thấy môn học khó
và không tư duy để tìm cách vận dụng giải quyết bài tập;
- Kinh nghiệm của bản thân trong giảng dạy tin học 11 còn ít do thời lượng
tiết dạy chủ yếu là tin học 12;

17


XÁC NHẬN CỦA HIỆU TRƯỞNG

Triệu Sơn, tháng 5 năm 2016
Tôi xin cam đoan đây là SKKN của
mình viết, không sao chép nội dung
của người khác.

Nguyễn Trung Linh

18


TÀI LIỆU THAM KHẢO
1. Hồ Sĩ Đàm – Hồ Cẩm Hà - Trần Đỗ Hùng – Nguyễn Đức Nghĩa –
2.

3.
4.

5.

Nguyễn Thành Tùng – Ngô ánh Tuyết . Tin học 11(SGK ), NXBGD
Hồ Sĩ Đàm – Hồ Cẩm Hà - Trần Đỗ Hùng – Nguyễn Đức Nghĩa –
Nguyễn Thành Tùng – Ngô ánh Tuyết . Tin học 11(SGV ), NXBGD
Sách bài tập tin học 11, NXBGD
Lí luận dạy học tin học (Trương Trọng Cần, ĐHV)
Tài liệu bồi dưỡng thường xuyên giáo viên THPT chu kì III môn Tin
học, NXB Đại học sư phạm.

19


NHẬN XÉT CỦA HỘI ĐỒNG KHOA HỌC
NHẬN XÉT CỦA TỔ CHUYÊN MÔN
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................

NHẬN XÉT CỦA HỘI ĐỒNG KHOA HỌC NHÀ TRƯỜNG
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................

20



NHẬN XÉT CỦA HỘI ĐỒNG KHOA HỌC SỞ GIÁO DỤC
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................

..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................

21



×