skkn sử dụng hệ thống bài tập thực hành nhằm nâng cao hiệu quả dạy và học chương trình con tro - Pdf 44

Sáng kiến kinh nghiệm

Môn: Tin học lớp 11

1. MỞ ĐẦU
1.1. Lý do chọn đề tài
Tốc độ phát triển của công nghệ thông tin ngày nay như vũ bão, người thầy
cần phải tìm ra phương pháp dạy học tích cực hơn để tăng hiệu quả dạy và học.
Dạy học sinh học cách chủ động, phương pháp học, cách học những điều mà thực
tế đòi hỏi thay vì chuyển tải một lượng kiến thức quá nhiều đến mức học sinh
không thể nhớ nổi, dẫu có nhớ lúc học, nhưng lại chóng quên.
Môn Tin học, học sinh chưa có tư duy lập trình tốt, vì vậy rất khó cho việc
dạy và học, mặc dù ngôn ngữ lập trình các học sinh cũng đã được giới thiệu ở lớp
dưới, dần hình thành một tư duy lập trình trong các em, nhưng phần đông học sinh
chưa được tích cực trong học tập, học tập lơ là dẫn đến kết quả yếu kém.
Xuất phát từ thực tiễn giảng dạy tại trường THPT Gia Nghĩa tôi thấy rằng,
để đạt hiệu quả cao trong mỗi phần học, tiết học cần có cách thiết kế bài giảng cho
phù hợp với nội dung kiến thức; phương pháp, phương tiện dạy học phải phù hợp
với từng đối tượng học sinh. Để qua mỗi phần học, tiết học học sinh thích thú với
kiến thức mới, qua đó hiểu được kiến thức đã học trên lớp, đồng thời học sinh thấy
được tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trước hết để đáp
ứng những yêu cầu của môn học, sau đó là việc ứng dụng của nó vào các công việc
thực tiễn trong đời sống xã hội.
Vấn đề sử dụng chương trình con để giải quyết những bài toán lớn hơn
trong tin học khá mới mẽ đối với học sinh của tôi, học sinh khó tiếp cận với đơn vị
kiến thức trên, và đặc biệt thực hành thường không hoàn thành được bài tập, đa số
học sinh thường lười thực hành, e ngại các bài tập có sử dụng chương trình con.
Trước khi thực hiện giải pháp này tôi chỉ sử dụng những ví dụ trong sách
giáo khoa, sách bài tập mà không có một hệ thống chọn lọc các bài tập làm nổi bật
vấn đề chương trình con, kết quả là học sinh thực hành không đạt yêu cầu, thường
than khó, ít hứng thú trong học tập.

Đánh giá thử nghiệm bằng câu hỏi trắc nghiệm khách quan kết hợp với bài
viết luận của học sinh để đánh giá sự tiếp thu kiến thức của học sinh.
1.5. Giới hạn phạm vi nghiên cứu
Sử dụng hệ thống bài tập này cho các tiết dạy thực hành phần chương trình
con trong tin học các lớp 11A5, 11A6 (năm học 2015 – 2016) trường THPT Gia
Nghĩa, Đăk Nông.

Giáo viên thực hiện: Nguyễn Trí Dũng

Trang: 3/14


Sáng kiến kinh nghiệm

Môn: Tin học lớp 11

2. NỘI DUNG
2.1. Cơ sở lý luận của vấn đề
2.1.1. Lợi ích của việc dùng chương trình con trong ngôn ngữ lập trình
Trong kỹ thuật lập trình việc tổ chức lập trình kiểu cấu trúc modul hóa với
các chương trình con trong ngôn ngữ lập trình bậc cao, chương trình con được diễn
đạt là các hàm (function) hoặc các thủ tục (procedure) và phương thức (method),...
Chương trình kiểu cấu trúc modul hóa, tức là chia chương trình thành
nhiều modul, và trong chương trình chính muốn thực hiện thì gọi chúng, điều đó
đem lại cho người lập trình các lợi ích sau:
+ Thay các đoạn trình giống nhau bằng một chương trình con, làm cho mã
chương trình ngắn hơn, sáng sủa và dễ kiểm tra tính đúng đắn của chương trình.
+ Đưa các chương trình con được viết sẵn vào thư viện (library) ở dạng văn
bản trình hoặc dạng mã, để khi lập trình mới thì chỉ cần liên kết tới thư viện đó và
sử dụng.



Sáng kiến kinh nghiệm

Môn: Tin học lớp 11

PROCEDURE <tên_thủ_tục>[(<Danh_sách_tham_số>)];
[]
BEGIN
<Các lệnh của thủ tục>;
END;
2.1.3. Biến toàn cục và biến cục bộ
Biến toàn cục là biến được khai báo trong chương trình chính. Các biến này
có thể được dùng ở mọi nơi trong chương trình và tồn tại trong suốt thời gian làm
việc của chương trình
Biến cục bộ (biến địa phương) là các biến được khai báo trong chương trình
con, các biến này chỉ được sử dụng trong phạm vi chương trình con mà nó được
khai báo, sau khi kết thúc chương trình con các biến này sẽ được giải phóng khỏi
bộ nhớ.
2.1.4. Cách truyền tham số trong chương trình con
Chương trình con không cần có tham số nếu không dùng đến chúng hoặc
dùng trực tiếp biến toàn cục.
Khi truyền tham số các tham số trong lời gọi chương trình con phải đúng
thứ tự và kiểu tương ứng với khi khai báo chương trình con.
+ Tham số hình thức (đối) là các tham số sau tên hàm và thủ tục trong khai
báo.
+ Tham số thực sự là các tham số sau tên hàm và thủ tục trong lời gọi.
+ Tham biến: Là các tham số được khai báo sau từ khóa var. Các tham số
thực phải là các biến chứ không được là giá trị. Tham biến có thể được thay đổi
trong chương trình con và sau khi ra khỏi chương trình con nó vẫn giữ giá trị thay

2.2. Thực trạng của vấn đề
Chương trình con là một nội dung khó, mặc dù đã được Bộ giáo dục giảm
tải nhiều phần, nhưng để học sinh thực hành và vận dụng được kiến thức trên với
học sinh THPT Gia Nghĩa còn rất nhiều khó khăn, đa số học sinh trung bình yếu
nên rất khó hoàn thành bài tập thực hành.
Trong quá trình giảng dạy bản thân đã thực hiện một số giải pháp, một trong
số các giải pháp đó là sử dụng hệ thống bài tập chọn lọc có sử dụng chương trình
con để làm sáng tỏ vấn đề giúp học sinh học tốt hơn, hứng thú hơn trong học tập.
2.3. Các biện pháp đã tiến hành để giải quyết vấn đề
Ngoài sử dụng các ví dụ trong sách giáo khoa, tôi sử dụng thêm các bài tập
sau để bổ sung cho học sinh từ dễ đến khó trong quá trình thực hành tại phòng máy
tính và bài tập về nhà.
Bài tập 1: Viết chương trình in ra màn hình hình chữ nhật được vẽ bằng các
kí tự * có N dòng và M cột, N và M được nhập từ bàn phím.
Yêu cầu: Chương trình có thể vẽ nhiều lần bằng cách gọi thủ tục
Vehcn(N,M);
Ví dụ
N=3, M=5
*****
*****
*****

N=5, M=3
***
***
***
***
***

N=2, M=10

End;
END;
BEGIN
Ch := 'Y';
While(Upcase(Ch)='Y') do
Begin
Write('Nhap so N = ' ); Readln (N);
Write('Nhap so M = '); Readln(M);
Vehcn(N,M); {M,N la tham so thuc su duoc truyen vao chuong
trinh con Vehcn(A,B)}
Write('Ban muon ve nua khong? (Y/N)');
Readln(Ch);
End;
END.
Bài tập 2 bổ sung thêm ngay sau ví dụ tham biến 1(trang 97, sách giáo
khoa tin học 11) nhằm làm cho học sinh hiểu rõ hơn về tham trị trước khi kết bằng
ví dụ tham biến 2 (trang 100, sách giáo khoa tin học 11) để học sinh hiểu rõ cách
sử dụng tham biến, tham trị trong chương trình con.
Bài tập 2: Một học sinh viết chương trình cho phép nhập hai số vào hai
biến, thực hiện đổi giá trị của hai biến cho nhau. Yêu cầu dùng chương trình con để
thực hiện chức năng đổi giá trị.
Nhận xét chương trình sau viết như vậy đúng hay chưa? Có thỏa mãn yêu
cầu của đề bài?
PROGRAM Vidu2;
USES crt;
VAR M,N: integer;
PROCEDURE DoiAB(A,B :Integer);
Var T: Integer;
Begin
T:=A;

VAR A, B, Max : integer; Ch:Char;
FUNCTION Max2so (A, B: integer): integer;
BEGIN
If A > B then Max2so := A else Max2so :=B;
END;
BEGIN
Ch := 'Y';
While(Upcase(Ch)='Y') do
Begin
Write('Nhap so nguyen thu nhat = ' ); Readln(a);
Write('Nhap so nguyen thu hai= '); Readln(b);
Max:= Max2so(a,b); {Max chua gia tri tra ve cua ham Max2so(a,b)}
Writeln('So Max la: ' , Max);
Write('Ban muon so sanh nua khong? (Y/N)');
Readln(Ch);
End;
END.
Bài tập 4 này dùng để thay thế cách tìm ước số chung lớn nhất của hai số
nguyên dương. Sau đó yêu cầu học sinh nghiên cứu ví dụ sách giáo khoa. Khẳng
định lại với học sinh một bài toán có thể có nhiều thuật toán để giải. Yêu cầu học
sinh so sánh thuật toán nào tốt hơn, vì sao?
Bài tập 4: Viết chương trình tìm ước số chung lớn nhất của hai số N và M,
với N, M nguyên dương được nhập vào từ bàn phím.
Yêu cầu: Chương trình dùng hàm tìm ước số chung lớn nhất USCLN(N,M)
PROGRAM Vidu4;
USES crt;
VAR M,N: integer;
FUNCTION USCLN(N,M :Integer):Integer;
Begin
While MN do

vừa nhập.
Ví dụ:
Nhập dãy số: 5 6 7 3 5 10 20 12 8
Dãy số được xuất ra màn hình là: 1 1 1 1 5 10 4 4
PROGRAM Vidu5;
USES crt;
TYPE Kieu_Mang = Array [1..10000] of integer;
VAR i,N: integer;
A: Kieu_Mang;
FUNCTION USCLN(N,M :Integer):Integer;
Begin
While MN do
If M>N then M:=M-N else N:=N-M;
USCLN:=N;
End;
PROCEDURE NhapdayNso(Var A: Kieu_Mang; N:Word);
Var i:integer;
Begin
For i:=1 to N do
Begin
Write('A[',i,']='); Readln(A[i]);
End;
End;
BEGIN
Write('Nhap vao day so co so phan tu N = '); Readln(N);
Giáo viên thực hiện: Nguyễn Trí Dũng

Trang: 9/14



PROCEDURE InsoNTNHN(N:Integer);
Var i:integer;
Begin
For i:=2 to N-1 do
If KTNT(i) then Write(i,' ');
End;
BEGIN
Write('Nhap vao so N = '); Readln(N);
InsoNTNHN(N);
Readln;
END.
Bài tập 7 đưa vào tiết phân phối chương trình 49: Bài tập luyện tập
Bài tập 7: Viết chương trình nhập vào một số nguyên dương N, tính giai
thừa của số n (Viết là n!). Với yêu cầu:
Sử dụng chương trình con để tính giai thừa của một số.
n! = 1 nếu n = 0;

Giáo viên thực hiện: Nguyễn Trí Dũng

Trang: 10/14


Sáng kiến kinh nghiệm

Môn: Tin học lớp 11

n! = 1.2.3.4.5...n (Tích của n thừa số).
PROGRAM Vidu7a;
USES Crt;
VAR N:integer; X:int64;

While N
NhapdayNso(A,N);
Write('Day vua nhap la:');
IndayNso(A,N);
Writeln;
SXDayTangDan(A,N);
Write('Day sau khi sap xep tang dan la:');
Giáo viên thực hiện: Nguyễn Trí Dũng

Trang: 12/14


Sáng kiến kinh nghiệm

Môn: Tin học lớp 11

IndayNso(A,N);
Readln;
END.
2.4. Kết quả đạt được
Sau khi xong chương trình con các lớp được làm bài kiểm tra đánh giá (Phụ
lục I).
Kết luận đa số học sinh hiểu bài, kết quả kiểm tra đạt 89,23% trên trung
bình. (Phụ lục II)

Giáo viên thực hiện: Nguyễn Trí Dũng

Trang: 13/14


Sáng kiến kinh nghiệm


Giáo viên thực hiện: Nguyễn Trí Dũng

Trang: 15/14




Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status