SKKN Gợi động cơ cho học sinh trong việc dạy học chương trình con tại Trường THPT Hồng Bàng

Công nghệ thông tin là một ngành khoa học đang phát triển rất mạnh mẽ. Sự bùng nổ thông tin trong thời đại ngày nay, tốc độ phát triển của công nghệ thông tin khiến cho người thầy không thể hết mọi điều cho học trò, mà dù có kéo dài thời gian để dạy hết mọi điều thì rồi các kiến thức đó cũng nhanh chóng trở nên lạc hậu, Do đó 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 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 chúng không thể nhớ nổi hoặc có nhớ lúc học, còn lúc cần vận dụng thì quên sạch. Môn Tin học là một môn học mới mẻ của học sinh THPT, học sinh chưa có khái niệm về công nghệ thông tin, khái niệm thuật toán trong các ngôn ngữ lập trình, vì vậy rất khó cho việc dạy và học. Vậy cần phải có phương pháp dạy và học cho một môn học hoàn toàn mới.

pdf 8 trang Huy Quân 28/03/2025 360
Bạn đang xem tài liệu "SKKN Gợi động cơ cho học sinh trong việc dạy học chương trình con tại Trường THPT Hồng Bàng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: SKKN Gợi động cơ cho học sinh trong việc dạy học chương trình con tại Trường THPT Hồng Bàng

SKKN Gợi động cơ cho học sinh trong việc dạy học chương trình con tại Trường THPT Hồng Bàng
 SỞ GIÁO DỤC VÀO ĐÀO TẠO LÀO CAI 
TRƯỜNG THPT SỐ 1 BÁT XÁT 
*** 
SÁNG KIẾN KINH NGHIỆM 
“GỢI ĐỘNG CƠ CHO HỌC SINH TRONG VIỆC 
DẠY HỌC CHƯƠNG TRÌNH CON” 
Họ tên: Nguyễn Thị Thu 
Tổ: Toán – Lí – KTCN - Tin 
Bát Xát, tháng 3 năm 2012 
A.- ĐẶT VẤN ĐỀ 
 1.- Lý do chọn đề tài: 
 Công nghệ thông tin là một ngành khoa học đang phát triển rất mạnh 
mẽ. Sự bùng nổ thông tin trong thời đại ngày nay, tốc độ phát triển của công 
nghệ thông tin khiến cho người thầy không thể hết mọi điều cho học trò, mà 
dù có kéo dài thời gian để dạy hết mọi điều thì rồi các kiến thức đó cũng 
nhanh chóng trở nên lạc hậu, 
 Do đó 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 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 chúng không thể nhớ nổi hoặc có nhớ lúc học, còn 
lúc cần vận dụng thì quên sạch. 
 Môn Tin học là một môn học mới mẻ của học sinh THPT, học sinh 
chưa có khái niệm về công nghệ thông tin, khái niệm thuật toán trong các 
ngôn ngữ lập trình, vì vậy rất khó cho việc dạy và học. 
 Vậy cần phải có phương pháp dạy và học cho một môn học hoàn toàn 
mới. 
 2.- Mục đích yêu cầu: 
Việc làm các bài tập về mảng hai chiều là một việc rất khó. 
Vậy trước hết học sinh phải hình dung được mảng hai chiều như một 
bảng có các dòng và các cột. Các dòng và các cột được đánh số liên tục bằng 
các số nguyên liên tiếp. Hai đoạn số nguyên dùng để đánh số cho các dòng 
và các cột có thể khác nhau. Mỗi phần tử của mảng hai chiều được hình dung 
như giá trị của một ô của bảng, mỗi ô có chỉ số dòng và chỉ số cột. 
 Giống như mảng một chiều, có thể tham chiếu trên mỗi phần tử của 
mảng hai chiều, nhưng khác ở chỗ mỗi phần tử của mảng hai chiều có hai chỉ 
số ( chứ không phải có một chỉ số như mảng một chiều) và do vậy nó được 
xác định bởi tên mảng và hai chỉ số của nó. 
 Mảng hai chiều là mảng một chiều mà mỗi phần tử của nó lại là một 
mảng một chiều. 
 3.- Phạm vi nghiên cứu, phương pháp nghiên cứu. 
 Nội dung bài tập về mảng hai chiều có nhiều phần, trong phạm vi 
nghiên cứu này chỉ đề cập đến một phần nhỏ của bài tập về mảng hai chiều, 
nhưng lại là một phần rất quan trọng, đó là : tính tổng các phần tử nằm trên 
đường chéo chính, tính tổng các phần tử nằm trên đường chéo phụ của mảng 
hai chiều có N cột và N hàng. 
 Để thực hiện được mục tiêu trên, yêu cầu học sinh cần nắm vững được 
kiến thức sau: 
 - Cách khai báo kiểu dữ liệu mảng hai chiều 
 + Khai báo gián tiếp 
 + Khai báo trực tiếp 
 * Tên kiểu mảng hai chiều 
 * Số lượng phần tử của mỗi chiều 
 * Kiểu dữ liệu của phần tử 
 * Cách khai báo biến 
 * Cách tham chiếu đến phần tử 
 - Các kỹ năng 
 * Nhận biết được các thành phần trong khai báo kiểu mảng hai chiều 
* Nhận biết được định danh của một phần tử mảng hai chiều xuất hiện 
trong một chương trình. Cách tham chiếu đến một phần tử của mảng 
hai chiều. 
* Viết được khai báo mảng hai chiều với các chỉ số thuộc kiểu nguyên. 
 4.- Đối tượng, phạm vi và kế hoạch nghiên cứu: 
 Đối tượng là học sinh khối 11 trường THPT Hồng Bàng, thực hiện kế 
hoạch nghiên cứu trong phạm vi chương 4 - Kiểu dữ liệu có cấu trúc. 
B.- NỘI DUNG 
{phần khai báo mảng hai chiều } 
Program mang_2_chieu; 
type mang:array[1..100,1..100] of integer; 
 var i,j,n:integer; 
 a:mang; 
 Begin 
 { Mảng hai chiều với số hàng bằng số cột bằng N } 
 writeln(' nhap so hang va so cot n:='); readln(n); 
 {Nhập các phần tử của mảng hai chiều với số hàng bằng số cột bằng 
N} 
 for i:=1 to n do 
 for j:=1 to n do 
 Begin 
 write(' nhap phan tu thu a[ hang ',i,' va cot ',j,']:='); readln(a[i,j]); 
 end; 
 { Đưa ra màn hình các phần tử đã nhập của mảng ra màn hình} 
 for i:=1 to n do 
 begin 
 for j:=1 to n do 
 write(' cac phan tu cua mang la:=',a[i,j]:4); 
writeln; 
writeln; 
end; 
Readln; 
End. 
Trên là các thủ tục nhập phần tử cho mảng hai chiều và đưa ra các 
phần tử đã nhập của mảng theo N hàng và N cột. Sau đây là các bài toán tính 
tổng các phần tử của mảng nằm trên đường chéo chính và đường chéo phụ: 
 Trước hết ta phải xác định xem các phần tử nằm trên đường chéo 
chính giữa hàng và cột có quy luật gì không: Ví dụ 1 mảng sau: Các phần tử 
nằm trên đường chéo chính nằm ở ô có mầu sẫm 
Hàng = cột = 4 Hay I = J = 4 
A[Hàng, Cột] J=1 J=2 J=3 J=4 
I = 1 8 9 13 5 
I = 2 -21 68 34 9 
I = 3 5 23 56 0 
I = 4 -89 21 6 7 
I là chỉ số hàng trong mảng, J là chỉ số cột trong mảng, ta thấy mảng trên 
gồm I hàng và J cột và I = J = 4. 
Ta xét phần tử đầu tiên (từ trái sang phải) của đường chéo chính: I:=1 ; J:=1; 
 Hàng 1 cột 1 
 Phần tử thứ hai của đường chéo chính: I:=2 ; J:=2; 
 Hàng 2 cột 2 
 Phần tử thứ ba của đường chéo chính: I:=3 ; J:=3 
 Hàng 3 cột 3 
 Phần tử thứ tư của đường chéo chính: I:=4 ; J:=4; 
 Hàng 4 cột 4 
 ( Nếu mảng gồm N hàng và N cột thì theo cách tính như trên, phần tử 
cuối cùng của đường chéo chính là hàng N cột N. Từ đó suy ra các phần tử 
nằm trên đường chéo chính là các phần tử có hàng và cột bằng nhau ( nghĩa 
là I = J ) 
 Vậy chương trình tính tổng các phần tử nằm trên đường chéo chính ta 
làm như sau: 
{phần khai báo mảng hai chiều } 
Program Tong_duong_cheo_chinh_mang_2_chieu; 
type mang:array[1..100,1..100] of integer; 
 var Tong_duong_CC,i,j,n:integer; 
 a:mang; 
 Begin 
 { Mảng hai chiều với số hàng bằng số cột bằng N } 
 writeln(' nhap so hang va so cot n:='); readln(n); 
 {Nhập các phần tử của mảng hai chiều với số hàng bằng số cột bằng 
N} 
 for i:=1 to n do 
 for j:=1 to n do 
 Begin 
 write(' nhap phan tu thu a[ hang ',i,' va cot ',j,']:='); readln(a[i,j]); 
 end; 
 { Đưa ra màn hình các phần tử đã nhập của mảng ra màn hình} 
 for i:=1 to n do 
 begin 
 for j:=1 to n do 
 write(' cac phan tu cua mang la:=',a[i,j]:4); 
writeln; 
writeln; 
end; 
Tong_duong_CC:=0; 
Begin 
for i:=1 to n do 
for j:=1 to n do 
if i:=j then {phần tử có hàng bằng cột } 
Tong_duong_CC:=Tong_duong_CC+A[i,j]; 
Writeln(' tong cac phan tu nam tren duong cheo chinh la',Tong_duong_CC); 
end; 
Readln; 
End. 
 Theo cách trên ta có thể tìm ra thuật giải của bài toán tính tổng các 
phần tử nằm trên đường chéo phụ: Với ví dụ sau ta thấy các phần tử nằm ở ô 
sẫm mầu: 
Hàng = cột = 4 Hay I = J = 4 ( N=4) 
A[Hàng, Cột] J=1 J=2 J=3 J=4 
I = 1 8 9 13 5 
I = 2 -21 68 34 9 
I = 3 5 23 56 0 
I = 4 -89 21 6 7 
Ta xét phần tử đầu tiên (từ trái sang phải )của đường chéo phụ: I:=4 ; J:=1; 
 Hàng 4 cột 1 
 Phần tử thứ hai của đường chéo chính: I:=3 ; J:=2; 
 Hàng 3 cột 2 
 Phần tử thứ ba của đường chéo chính: I:=2 ; J:=3 
 Hàng 3 cột 3 
 Phần tử thứ tư của đường chéo chính: I:=1 ; J:=4; 
 Hàng 1 cột 4 
 ( Nếu mảng gồm N hàng và N cột thì theo cách tính như trên, phần tử 
cuối cùng của đường chéo phụ là hàng 1 cột N, phần tử đầu tiên là hàng N 
cột 1 Từ đó suy ra các phần tử nằm trên đường chéo phụ là các phần tử tổng 
hàng và cột 
( I + J = N+1 ) suy ra J=N+1-I. Ta thấy khi I=4 (J = 4+1 - 4) => J=1, khi I=3 
thì J = 2, . . . 
 Vậy chương trình tính tổng các phần tử nằm trên đường chéo phụ ta 
làm như sau: 
{phần khai báo mảng hai chiều } 
Program Tong_duong_cheo_phu_mang_2_chieu; 
type mang:array[1..100,1..100] of integer; 
 var Tong_duong_CP,i,j,n:integer; 
 a:mang; 
 Begin 
 { Mảng hai chiều với số hàng bằng số cột bằng N } 
 writeln(' nhap so hang va so cot n:='); readln(n); 
 {Nhập các phần tử của mảng hai chiều với số hàng bằng số cột bằng 
N} 
 for i:=1 to n do 
 for j:=1 to n do 
 Begin 
 write(' nhap phan tu thu a[ hang ',i,' va cot ',j,']:='); readln(a[i,j]); 
 end; 
 { Đưa ra màn hình các phần tử đã nhập của mảng ra màn hình} 
 for i:=1 to n do 
 begin 
 for j:=1 to n do 
 write(' cac phan tu cua mang la:=',a[i,j]:4); 
writeln; 
writeln; 
end; 
Tong_duong_CP:=0; 
Begin 
for i:=1 to n do 
for j:=1 to n do 
if j:=n+1-i then {phần tử có hàng bằng cột } 
Tong_duong_CP:=Tong_duong_CP+A[i,j]; 
Writeln(' tong cac phan tu nam tren duong cheo chinh la',Tong_duong_CP); 
end; 
Readln; 
End. 
 Qua cách tính như trên ta có thể tính toán được tất cả các đường chéo 
của mảng hai chiều, tham chiếu đến các hàng, các cột của mảng hai chiều. Vì 
thực ra nếu tính riêng hàng hoặc cột của mảng hai chiều thì đó chính là mảng 
một chiều. 
 Qua nghiên cứu và thực hiện việc giảng dạy kết quả như sau: 
Đối chứng Thực nghiệm 
Số bài 
KT 
Đạt yêu cầu Không đạt 
y.c 
Số bài 
KT 
Đạt yêu cầu Không đạt 
y.c 
S.L % S.L % S.L % S.L % 
51(B9) 30 56% 24 44% 44(B1) 37 82% 16 18% 
52(B10) 30 57% 22 43% 53(B8) 45 78% 14 22% 
 Trong đó lớp B1 và lớp B8 trình độ và tương đương nhau ( đầu vào ), 
lớp B9 có trình độ tương đương với lớp B10 
Biểu đồ 
0
10
20
30
40
50
60
70
80
90
§.Yªu cÇu % K §¹t Y.C %
B5
B3
B9
B1
C.- KẾT LUẬN VÀ KIẾN NGHỊ 
 Sau khi nghiên cứu và thử nghiệm tôi thấy cần có thời gian nhiều hơn 
để thử nghiệm, vì vẫn còn có một số học sinh vẫn chưa đạt yêu tuy điểm 
kiểm tra xấp xỉ trung bình. 
Môn Tin học là một môn học mới mẻ của học sinh THPT, học sinh 
chưa có khái niệm về công nghệ thông tin, khái niệm thuật toán trong các 
ngôn ngữ lập trình, vì vậy rất khó cho việc dạy và học. Cần phải có thời gian 
nhiều hơn cho lý thuyết và thực hành, vì theo phân phối chương trình như 
hiện thời gian giảng dạy còn ít, học sinh chưa nắm bắt được lý thuyết cũng 
như thực hành. Đội ngũ giáo viên Tin học còn ít kinh nghiệm về giảng dạy, 
cho nên bài tập thực hành còn ít, hầu như chỉ bó gọn trong sách giáo khoa, 
chưa có được những thư viện về bài tập. Vận dụng và sử dụng các thiết bị về 
công nghệ thông tin còn ít. 
D.- TÀI LIỆU THAM KHẢO: 
 - Cấu trúc dữ liệu và giải thuật của Đỗ Xuân Lôi 
 - Tin học và ứng dụng tập II của Nguyễn Bá Kim và Lê Khắc Thành 

File đính kèm:

  • pdfskkn_goi_dong_co_cho_hoc_sinh_trong_viec_day_hoc_chuong_trin.pdf