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

SKKN sử dụng kiến thức toán học trong lập trình giải một số bài toán nhằm tạo hứng thú và nâng cao kết quả học tập cho học sinh

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 (139.51 KB, 18 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ

TRƯỜNG THPT TRIỆU SƠN 3

SÁNG KIẾN KINH NGHIỆM

SỬ DỤNG KIẾN THỨC TOÁN HỌC TRONG LẬP TRÌNH
GIẢI MỘT SỐ BÀI TỐN NHẰM TẠO HỨNG THÚ VÀ
NÂNG CAO KẾT QUẢ HỌC TẬP CHO HỌC SINH

Người thực hiện: Lê Thị Quỳnh
Chức vụ: Tổ phó chun mơn
Đơn vị công tác: Trường THPT Triệu Sơn 3
SKKN thuộc môn: Tin học

THANH HOÁ NĂM 2021


MỤC LỤC

1. MỞ ĐẦU....................................................................................................................................1
1.1. Lý do chọn đề tài.............................................................................................................1
1.2. Mục đích nghiên cứu.......................................................................................................1
1.3. Đối tượng nghiên cứu......................................................................................................1
1.4. Phương pháp nghiên cứu.................................................................................................2
2. NỘI DUNG................................................................................................................................3
2.1. Thực trạng của vấn đề cần giải quyết .............................................................................3
2.2. Các giải pháp giải quyết vấn đề.......................................................................................3
Bài toán 2: Tính tổng của dãy số.........................................................................................4
2.2.3. Giải pháp 3: Sử dụng cách tìm chu vi nhỏ nhất của hình chữ nhật có diện tích cho
trước....................................................................................................................................6


Bài tốn . Những viên đá cuội (Nguồn: Đề bài thi HSG cấp Tỉnh Hải Dương - năm học
2012-2013)..........................................................................................................................6
2.2.4. Giải pháp 4: Sử dụng tổ hợp, nhóm các phần tử cùng thỏa mãn điều kiện..............7
Bài tốn . Taxi (Nguồn: Đề bài thi HSG cấp Tỉnh Thanh Hóa- năm học 2017-2018).......7
3. KẾT LUẬN, KIẾN NGHỊ.....................................................................................................13
3.1. Kết luận..........................................................................................................................13
3.2. Kiến nghị........................................................................................................................13
TÀI LIỆU THAM KHẢO..........................................................................................................14
DANH MỤC................................................................................................................................15


1. MỞ ĐẦU
1.1. Lý do chọn đề tài.

Người ta thường nói Tốn và Tin là anh em của nhau quả thật khơng sai.
Để học tốt mơn Tin học nói chung và lập trình Tin học nói riêng thì nhất định
cần phải có tư duy và tố chất Tốn học. Có rất nhiều các bài tốn Tin học (cấp
THPT) có thể giải được bằng cách sử dụng các cơng thức tốn học liên quan,
nếu khơng có kiến thức Tốn học thì khó có thể giải quyết hoặc giải quyết theo
những cách ‘lịng vịng’ hơn rất nhiều.
Q trình dạy tại các lớp mũi nhọn và ôn thi HSG cấp Tỉnh, tôi đã vận
dụng nhiều cách khác nhau để tạo hứng thú, sự u thích mơn học cho học sinh,
đồng thời cũng là cách để tìm ra những học sinh có đam mê, có tố chất mơn Tin
học, từ đó tìm kiếm được những học sinh dự nguồn tham gia thi học sinh giỏi
cấp Tỉnh. Một trong những cách đó là hướng dẫn cho các em giải một bài tốn
lập trình từ nhiều góc độ, trong đó có việc sử dụng kiến thức Toán học – kiến
thức mà hầu hết các em học sinh khá giỏi đều rất muốn được vận dụng, được thể
hiện trong giải quyết vấn đề của qua trình học tập các mơn học. Vì vậy, tơi đã
chọn đề tài “Sử dụng kiến thức Tốn học trong lập trình giải một số bài toán
nhằm tạo hứng thú và nâng cao kết quả học tập cho học sinh” làm sáng kiến

kinh nghiệm của mình trong năm học 2020 – 2021 để trao đổi với đồng nghiệp.
Đây là một phương pháp tôi đã thực hiện rất hiệu quả tại ngôi trường THPT
Triệu Sơn 3, đồng thời cũng hy vọng cách làm này sẽ được hoàn thiện, bổ sung
và nhân rộng trong các trường THPT khác trong Tỉnh.
1.2. Mục đích nghiên cứu.

Với lý do chọn đề tài đã trình bày ở trên, tơi mong muốn đề tài của mình
sẽ giúp đồng nghiệp có thể dễ dàng tạo hứng thú và sự yêu thích môn học cho
học sinh khá giỏi (những học sinh định hướng học khoa học tự nhiên).
- Giảm khó khăn khi tìm kiếm học sinh dự nguồn thi học sinh giỏi cấp Tỉnh.
- Nâng cao kết quả học tập cho học sinh định hướng học ban khoa học tự nhiên
nói chung và học sinh lớp 11 nói riêng.
- Nhìn nhận, giải quyết một số bài toán bằng cách sử dụng các kiến thức Toán
học đã biết.
1.3. Đối tượng nghiên cứu.

- Một số kiến thức Toán học .
- Một số bài tập Tin học lớp 11(THPT) hoặc thi HSG các cấp.
- Sự hứng thú, ý thức học tập của học sinh khá giỏi đối với môn Tin học.

1


1.4. Phương pháp nghiên cứu.

Để thực hiện đề tài này, tôi đã sử dụng các phương pháp:
- Phương pháp nghiên cứu xây dựng cơ sở lí thuyết: Cơ sở lý thuyết là các kiến
thức Toán học mà học sinh đã được biết hoặc đã học, một số bài toán trong các
đề thi các cấp; Sự hứng thú trong giờ học môn Tin học và ý thức học tập của học
sinh đối với môn học.

- Phương pháp điều tra khảo sát thực tế, thu thập thông tin: Thông qua kết quả
điều tra mức độ hứng thú, u thích tìm hiểu mơn Tin học của học sinh lớp 11
trường THPT Triệu Sơn 3.
- Phương pháp thống kê, xử lý số liệu: Trên cơ sở các kết quả đạt được, thống
kê các số liệu, xử lí số liệu để so sánh giữa nhóm thực nghiệm và đối chứng.

2


2. NỘI DUNG
2.1. Thực trạng của vấn đề cần giải quyết .

Trong các bài tập lập trình Tin học cấp THPT hoặc nội dung thi học sinh
giỏi Tin học các cấp, có nhiều bài thường có thể giải với nhiều cách khác nhau,
trong đó có nhiều bài có thể giải quyết hồn tồn bằng kiến thức Tốn học.
Nhiều học sinh có thể học Tốn và các mơn khoa học tự nhiên rất tốt nhưng lại
chưa biết vận dụng kiến thức đó trong bài tốn lập trình như thế nào, nên các em
thường kêu ca học Tin khó.
Đối với nhóm học sinh khá giỏi thì việc học một nội dung nào đó có liên
quan đến Tốn học ln tạo được sự tị mị, hứng thú và thích khám phá tìm hiểu
của các em. Vì vậy, trong mỗi tiết dạy (nhất là bài 4 – Tin học 10, và chương
trình Tin học 11) tơi ln tìm kiếm sự liên quan giữa Tin và Tốn để tạo sự hứng
thú, u thích tìm hiểu môn Tin học cho các em thông qua các bài tập ở mức độ
phù hợp.
2.2. Các giải pháp giải quyết vấn đề.

Mỗi bài toán nêu ra trong đề tài này là những ví dụ cho việc có thể thực
hiện giải quyết bài tốn bằng nhiều cách, trong đó có thể sử dụng các kiến thức
Toán học mà học sinh đã biết. Các bài toán được sắp xếp thứ tự theo mức độ từ
dễ đến khó hơn. Với mỗi giải pháp, tơi chỉ đưa ra một hoặc hai bài tốn minh

họa, những nội dung Toán học liên quan khác sẽ tiếp tục được nghiên cứu và
trình bày trong các đề tài tiếp theo. Với mỗi bài tốn đưa ra, tơi chỉ nêu ra các
cách giải theo ý chủ quan, vẫn có thể còn những cách làm khác mà bản thân
chưa biết đến, với những cách làm khác được nêu ra, tôi chỉ nêu cách làm, còn
theo cách sử dụng các kiến thức, các cơng thức Tốn học thì tơi sẽ nêu cách làm
và code bài bằng ngơn ngữ lập trình C++. Dữ liệu vào/ra của bài tốn tơi để file
dạng “ input.txt ” và “output.txt” .
2.2.1. Giải pháp 1: Sử dụng cơng thức tính tổng dãy số và giải phương
trình bậc hai
Bài toán 1 : Số tam giác
Một số được gọi là “số tam giác” nếu ta có thể biểu diễn nó dưới dạng
lưới hình tam giác gồm các điểm sao cho các điểm tạo thành một tam giác đều,
tức là hàng đầu tiên có một điểm, hàng thứ hai có hai điểm, hàng thứ ba có ba
điểm,... Các số tam giác bắt đầu là 1, 3 (12), 6 (1+2+3),...

3


Cho biết số nguyên dương N, cho biết N có phải là số tam giác hay
không? (N ≤107). Dữ liệu vào gồm 1 dòng chứa số N, dữ liệu ra là số 1 nếu N là
số tam giác, và là số 0 nếu N không phải là số tam giác.
Cách 1. Dùng tư duy toán học
Nhận xét:
Nếu N là số tam giác thì N sẽ có dạng: 1+2+3+...+k = k(k+1)/2
Giả sử N là số tam giác thì N = x(x-1)/2 hay ta có phương trình bậc 2 ẩn x
là: x2+x-2*N =0. Nếu phương trình có nghiệm ngun dương thì N là số tam
giác, ngược lại thì khơng.
Dưới đây là code tham khảo theo cách này
#include <bits/stdc++.h>
using namespace std;

int main()
{
ifstream cin("input.txt");
ofstream cout ("output.txt");
int n;
cin >> n;
int a = 1, b = 1, c = -2*n;
double d = b*b - 4*a*c;
double x1 = (-b+sqrt(d))/(2*a) ;
double x2 = (-b-sqrt(d))/(2*a);
if ((x1 > 0 && floor(x1)==x1) or ( x2 > 0 &&
floor(x2)==x2)) {
cout << "1\n" ;
}
else cout << "0\n" ;
return 0;
}

Cách 2. Dùng phép lặp để tìm một tổng S của k số nguyên dương đầu tiên, nếu
quá trình sinh tổng S mà S=N thì N đúng là số tam giác, nếu S>N thì N khơng
phải là số tam giác.
Bài tốn 2: Tính tổng của dãy số
Cho số nguyên dương N. Tính giá trị : f(N)= -1+2-3+...+N*(-1)N ,với N ≤109
Dữ liệu vào gồm một dòng chứa số nguyên dương n, dữ liệu ra là giá trị tính
được của dãy số.
Ý tưởng cho bài tốn này:
Cách 1. Sử dụng các cơng thức Tốn học sau:
4



G(n) = 1+2+3+...+n = n*(n+1) div 2;
H(n) = 1+3+5+...+(2*n-1) = n2 ;
F(n) = -1+2-3+4-...+(-1)n*n ;
Với n chẵn, ta thấy F(n) = G(n) - 2*H(n/2) ;
Với n lẻ, ta thấy F(n) = G(n)-2*H(n/2)-n ;
Dưới đây là code tham khảo của bài toán theo cách này
#include <bits/stdc++.h>
#define lli long long
using namespace std;
int main()
{
ifstream cin("input.txt");
ofstream cout ("output .txt");
lli n, n1;
cin>> n;
n1=(n % 2 ? n-1 : n);
lli a = (n1/2)*(n1/2)*2;
lli b=n1/2*(n1+1);
if (n % 2) a+=n;
cout<return 0;
}

Cách 2. Dùng phương pháp lặp (Không thực hiện được với dữ liệu lớn, chỉ ăn
được 50% số test).
2.2.2. Giải pháp 2: Sử dụng hai đẳng thức bằng nhau
Bài toán : Xếp đẳng thức bằng que diêm
Giả sử ta muốn xếp đẳng thức đúng bằng cách xếp que diêm a+b=c với a,
b, c là nguyên dương và đại diện cho số lượng que diêm.
Ví dụ đẳng thức 2+2=4 (││+││=││││), 1+2=3 (│+││=│││) là các

đẳng thức đúng, còn 1+2=4 (│+││=││││) và 2+2=3 (││+││=│││) và
0+1=1 (+│=│) là đẳng thức sai.
Hãy tìm cách sử dụng n que diêm để xếp thành một đẳng thức đúng, nếu
thiếu thì bạn cần mua thêm. Hỏi bạn cần mua thêm ít nhất bao nhiêu que diêm?
(với 2≤n≤109).
Dữ liệu vào gồm một dòng chứa số n là số lượng que diêm đã có, dữ liệu
ra là số lượng que diêm cần mua thêm.
5


Ý tưởng cho bài tốn này là:
Vì a, b, c nguyên dương và a + b = c nên a + b + c = 2c là một số nguyên
chẵn. Như vậy, nếu n là số nguyên chẵn thì bạn khơng cần mua thêm que diêm,
cịn nếu n là số nguyên lẻ thì bạn cần mua thêm 1 que để có số que chẵn.
Trường hợp đặc biệt, nếu n =2 chẵn nhưng khơng thể phân tích thành tổng
của 3 số nguyên dương nên khi đó bạn cần mua thêm 2 que diêm.
Dưới đây là code tham khảo của bài toán
#include <bits/stdc++.h>
using namespace std;
int main()
{
ifstream cin("input.txt");
ofstream cout ("output.txt");
int n;
cin >> n;
if (n==2) cout << "2\n";
else if (n%2 == 0) cout << "0\n" ;
else cout << "1\n" ;
return 0;
}


2.2.3. Giải pháp 3: Sử dụng cách tìm chu vi nhỏ nhất của hình chữ nhật có
diện tích cho trước
Bài tốn . Những viên đá cuội (Nguồn: Đề bài thi HSG cấp Tỉnh Hải Dương
- năm học 2012-2013).
Trong dịp nghỉ hè, bé Mai được bố mẹ cho đi tắm biển. Trên bờ biển bé
nhặt được N viên đá cuội rất đẹp mắt. Mai quyết định vẽ trên cát một lưới hình
chữ nhật kích thước a x b (a, b nguyên dương) được chia thành a x b ô vuông
bằng các đường ngang dọc sao cho có thể rải N hịn sỏi này vào các ô vuông sao
cho mỗi ô vuông có nhiều nhất một viên sỏi.
Hãy giúp bé Mai chọn kích thước của hình chữ nhật sao cho chu vi của nó
là nhỏ nhất. In ra màn hình giá trị chu vi này (với N ≤ 109).
Ví dụ:
Dữ liệu nhập vào: 15
Kết quả in ra: 16
Giải thích: Hình chữ nhật tìm được có kích thước 4 x 4
Nhận xét:
Thật ra bài tốn này có thể phát biểu lại là tìm chu vi nhỏ nhất của hình
chữ nhật có diện tích n cho trước. Ta có thể giải bài tốn này bằng cách duyệt
6


tồn bộ các khả năng có thể của chiều rộng a (a là ước của n và a ≤ sqrt(n)), với
mỗi a tìm được ta đi tính b = n/a. Kết quả cần tìm là giá trị min((a+b)*2)
Dưới đây là code tham khảo của bài toán theo cách này
#include <bits/stdc++.h>
#define lli long long
using namespace std;
int main()
{

ifstream cin("input.txt");
ofstream cout ("output.txt");
int n;
cin>>n;
int nmin=1e9;
for ( int a=1; a*a<=n; a++)
if (n % a ==0) {
int b=n/a;
nmin = min( nmin,2*(a+b));
}
cout<return 0;
}

2.2.4. Giải pháp 4: Sử dụng tổ hợp, nhóm các phần tử cùng thỏa mãn điều
kiện
Bài toán . Taxi (Nguồn: Đề bài thi HSG cấp Tỉnh Thanh Hóa- năm học 20172018).
Trong dịp nghỉ hè các bạn học sinh lớp 12 dự định tổ chức dã ngoại đến
biển Sầm Sơn và sẽ đi bằng taxi. Các bạn được chia thành n nhóm, nhóm thứ i
gồm Si bạn (1 ≤ Si ≤ 4) và mỗi chiếc taxi chở tối đa 4 hành khách. Vậy lớp 12
cần thuê ít nhất bao nhiêu chiếc taxi để chở các nhóm đi, với điều kiện là các
bạn trong nhóm phải ngồi chung taxi (một taxi có thể chở một nhóm trở lên).
Dữ liệu vào: Từ tệp văn bản “input.txt” gồm:
- Dòng đầu chứa số nguyên n (1 ≤ n ≤ 105) (số lượng các nhóm học sinh)
- Dịng số 2 chứa dãy số nguyên S 1, S2, ..., Sn (1 ≤ Si ≤ 4). Các số nguyên cách
nhau bởi dấu cách với Si là số học sinh trong nhóm thứ i.
Dữ liệu ra: 1 số nguyên duy nhất là số lượng tối thiểu xe taxi cần thiết để chở
tất cả học sinh đến nơi.
Ví dụ:
7



Input.txt
5
12433

Output.txt
4

Bài này có thể giải theo những cách sau:
Cách 1: Tư duy theo kiến thức tốn học. Ta có các nhận xét như sau:
- Nhóm 4 người khơng đi chung với nhóm nào ⇒ số lượng nhóm 4 người = số
lượng xe taxi cần gọi.
- Nhóm 3 người chỉ có thể đi chung với nhóm 1 người ⇒ số lượng nhóm 3 người
= số lượng xe taxi cần gọi.
- Nhóm 2 người có thể ghép với nhau ⇒ số lượng xe taxi cần gọi = số lượng
nhóm 2 người chia lấy phần nguyên cho 2.
- Nhóm 1 người ghép với nhóm 3 người, số cịn lại ghép cứ 4 nhóm với nhau,
nếu số dư là 3 thì đi chung 1 xe, dư 2 hoặc 1 thì ghép với nhóm 2 người thừa ở
trên.
Kết quả của bài toán là tổng của tất cả các phân tích ở trên.
Độ phức tạp của thuật toán theo cách này là O(n)
Dưới đây là code tham khảo của bài toán
#include <bits/stdc++.h>
using namespace std;
int main()
{
ifstream cin("input.txt");
ofstream cout ("output.txt");
int cnt[5] = {0}, A[100005] ;

int N, kq;
cin>>N;
for(int i=1; i<=N;i++ ){
cin>>A[i];
cnt[A[i]]+=1;
}
kq=cnt[4]+cnt[3]+cnt[2]/2;
if (cnt[1]>=cnt[3]) cnt[1]-=cnt[3]; else cnt[1]=0;
cnt[2]= cnt[2]%2;
kq+=(cnt[2]*2+cnt[1])/4;
if (cnt[2]*2+cnt[1]%4 > 0) kq += 1;
cout << kq;
return 0;
8


}

Cách 2. Tìm kiếm nhị phân:
Bài này cần tìm kiếm nhị phân trên dãy dữ liệu của đề bài, nhưng trước
khi tìm kiếm nhị phân, cần sắp xếp lại dữ liệu của đề bài thành dãy không giảm.
Độ phức tạp của thuật toán theo cách này là O(nlogn) (Cách làm này đã được
thực hiện ở đề tài trước).
2.2.5. Giải pháp 5: Sử dụng cơng thức truy hồi, đệ quy
Bài tốn . Lucky number
Chí Phèo thời IT rất yêu thích các số Lucky. Số Lucky là số mà chỉ chứa
các chữ số Lucky (có hai chữ số Lucky là 4 và 7) trong biểu diễn thập phân. Các
số Lucky sắp xếp tăng dần tạo thành dãy số Lucky. Một số số hạng đầu tiên của
dãy số Lucky là: 4,7,44,47,74,77,… Biết Chí có niềm u thích như vậy, Thị Nở
liền đố Chí tìm số Lucky thứ K trong dãy. Bài tốn thực sự hóc búa với Chí, bạn

hãy giúp anh Chí câu hỏi này nhé!. Biết rằng:
Dữ liệu vào: Tệp văn bản gồm số n (n ≤ 109) duy nhất.
Dữ liệu ra: Tệp văn bản chứa số Lucky tìm được
Ví dụ:
Input.txt
4

Output.txt
47

Bài này có thể giải theo những cách như sau:
Cách 1. Tư duy theo kiểu Toán học.
Nhận xét:
- Hai phần tử đầu tiên là A[1]=4, A[2]=7 .
- Các phần tử ở vị trí lẻ đều có kết thúc là 4, ngược lại thì kết thúc là 7. Nếu bỏ
chữ số cuối đi thì phần số cịn lại của phần tử sẽ là một số ở vị trí trước đó trong
dãy. Cụ thể: Nếu cho biết vị trí của số đó là N thì :
+ Nếu N lẻ thì chữ số cuối là 4 và phần cịn lại của phần tử này chính là phần tử
A[N/2] .
+ Nếu N chẵn thì chữ số cuối là 7 và phần còn lại của phần tử này chính là phần
tử A[N/2-1] .
Từ các nhận xét trên ta có cơng thức đệ quy:
- Nếu N lẻ: A[N] = A[N/2]*10+4
- Ngược lại: A[N] = A[N/2-1]*10+7

9


Đó chính là giải pháp cho bài tốn. Tuy nhiên, để là được theo cách này
(gọi đệ quy) với dữ liệu lớn thì việc gọi đệ quy trực tiếp sẽ hạn chế giá trị N. Vì

vậy, nên viết đệ quy có nhớ hoặc quy hoạch động bottom-up để lưu kết quả đã
tính được nhằm tái sử dụng sau này sẽ là cách tối ưu hơn.
Dưới đây là code tham khảo theo cách trên
#include <bits/stdc++.h>
#define lli long long
using namespace std;
vector<lli> a(1000000000,-1);
lli rec(int n){
if (n==1) return 4;
if (n==2) return 7;
if (a[n] != -1) return a[n];
if (n % 2) return a[n]=rec(n/2)*10+4;
else return a[n]=rec(n/2-1)*10+7 ;
}
int main()
{
ifstream cin("input.txt");
ofstream cout ("output.txt");
int n;
cin >> n;
cout << rec(n);
return 0;
}

Cách 2. Xét lần lượt các số tự nhiên từ 1 đến max. Với mỗi số i, kiểm tra xem
nó có là số may mắn hay khơng? Cứ như thế cho đến khi nào tìm được số may
mắn thứ n. Độ phức tạp của thuật toán theo cách này là O(n) * độ phức tạp của
hàm kiểm tra số may mắn.
Cách 3. Ta nhận thấy: Có 2k số may mắn có độ dài k :
- Số thứ nhất là

4
- Số thứ hai là
7
Vậy tổng có 2 số có 1 chữ số, 21 = 22 - 2.
- Số thứ ba là
44
- Số thứ tư là
47
- Số thứ năm là
74
- Số thứ sáu là
77
Vậy tổng có 22 +21 chữ số = 23 - 2

10


444
447
474
477
744 Có 8 số có 3 chữ số
3
2
1
4
747 Vậy tổng có 2 + 2 + 2 =2 -2
774
777
Với mỗi k=1,2,3...thì tổng số lượng các số may mắn là 2 2 -2 , 23 -2, 23-2, ...Vậy,

nếu gọi vị trí của số đó là n thì số thứ n sẽ ln lớn hơn một số có dạng 2 x -2, tức
là: 2x -2 ≤ n≤ 2x+1 -2. Ta sẽ duyệt x chạy từ 1 đến 30 (vì 2 31= 1073741824), nếu
n nằm giữa khoảng trên thì tìm được 2 điểm đầu cuối
Vì vậy, vị trí đầu cuối để chặt nhị phân là 2x -2 và 2x+1 -2.
Thứ hai, ta thấy các chữ số luôn chia thành hai nửa, số 4 và số 7 nên ta
tìm kiếm nhị phân đoạn này thì ta sẽ tìm ra được chữ số.
Độ phức tạp của thuật toán theo cách này là O(log2x), với 1≤ x≤30
(Cách làm này đã được thực hiện ở đề tài trước)
2.3. Hiệu quả của sáng kiến kinh nghiệm.
Sau nhiều năm học áp dụng cách làm này vào dạy học tại các lớp mũi
nhọn (lớp có nhiều học sinh khá giỏi), và ôn luyện cũng như đồng phụ trách một
số chuyên đề thi học sinh giỏi cấp Tỉnh, tôi nhận thấy các em hứng thú hơn và
hiểu rõ hơn nội dung, bản chất của việc lập trình giải các bài tốn của mơn Tin
học. Đặc biệt, các em đã nhìn nhận để giải quyết bài tốn từ cách nhìn rất “Tốn
học”. Cụ thể:
* Đối với lớp đối chứng
+ Năm học 2017 – 2018
Giỏi
Sĩ số
Lớp
SL
%
11D3
45
9
20.0
11D4
42
6
14.3

Tổng
87
15 17.2

Khá
SL
18
15
33

%
40.0
35.7
37.9

TB
SL
18
21
39

%
40.0
50.0
44.8

Yếu-kém
SL
%
0

0.0
0
0.0
0
0.0

+ Năm học 2018-2019
Lớp
11E4

Sĩ số
41

Giỏi
SL
%
10 24.4

Khá
SL
16

%
39.0

TB
SL
15

%

36.6

Yếu-kém
SL
%
0
0.0
11


11E5
Tổng

42
83

7
17

16.7
20.5

15
31

35.7
37.3

20
35


47.6
42.2

0
0

0.0
0.0

* Đối với lớp thực nghiệm
+ Năm học 2019-2020
Lớp
11A35
11B35
Tổng

Sĩ số
42
44
86

Giỏi
SL
%
15 35.7
11 25.0
26 30.2

Khá

SL
21
20
41

%
50.0
45.5
47.7

TB
SL
6
13
19

%
14.3
29.5
22.1

Yếu-kém
SL
%
0
0.0
0
0.0
0
0.0


+ Năm học 2020-2021
Lớp
11A36
11B36
Tổng

Sĩ số
40
41
81

Giỏi
SL
%
11 27.5
21 51.2
32 39.5

Khá
SL
27
20
47

%
67.5
48.8
58.0


TB
SL
2
0
2

%
5.0
0.0
2.5

Yếu-kém
SL
%
0
0.0
0
0.0
0
0.0

(Lưu ý: Các lớp được chọn tham gia nghiên cứu cho đề tài có nhiều điểm tương
đồng nhau về ý thức học tập của học sinh, thái độ học tập đối với bộ môn Tin
học, đặc biệt là năng lực học tập trước khi tác động.)
* Đối với nhóm HS khá giỏi
- Số học sinh đăng kí tham gia đội dự tuyển thi học sinh giỏi cấp Tỉnh tăng lên
như sau :
+ Năm học 2017-2018: có 03 học sinh.
+ Năm học 2018-2019: Có 02 học sinh.
+ Năm học 2019-2020: Có 07 học sinh.

+ Năm học 2020-2021 : Có 11 học sinh
Như vậy, rõ ràng việc hướng dẫn học sinh lập trình giải bài toán bằng
cách sử dụng các kiến thức Toán học liên quan đã giúp các em thấy hứng thú
học tập mơn Tin học hơn, ham tìm hiểu khám phá cho các nội dung khác, cách
tư duy bài toán lập trình cũng đa dạng và khoa học hơn. Kết quả học tập tiến bộ
rõ rệt, số học sinh tham gia dự nguồn thi học sinh giỏi cấp Tỉnh tăng lên.

12


3. KẾT LUẬN, KIẾN NGHỊ
3.1. Kết luận.

Qua việc thực hiện đề tài, tôi nhận thấy việc vận dụng kiến thức các mơn
học khác, nhất là mơn Tốn trong dạy – học lập trình giải các bài tập Tin học là
một cách làm cần thiết và hiệu quả thực sự trong việc tạo hứng thú và nâng cao
kết quả học tập cho những học sinh định hướng học khoa học tự nhiên. Đồng
thời cũng giảm bớt khó khăn trong việc tìm kiếm học sinh dự nguồn thi học sinh
giỏi cấp Tỉnh. Học sinh ơn thi học sinh giỏi cấp Tỉnh thì tự tin hơn, học tập tích
cực hơn, chủ động hơn, khả năng tư duy tốt hơn và sẽ có kết quả cao hơn.
3.2. Kiến nghị.

Đối với giáo viên, phải không ngừng tự học, tự bồi dưỡng, tham khảo các
ý kiến chia sẻ từ đồng nghiệp nhất là về các bài tập, các đề thi học sinh giỏi các
cấp. Từ đó vận dụng vào dạy – học trên lớp và công tác bồi dưỡng học sinh giỏi
đạt hiệu quả cao nhất.
Đối với các cấp lãnh đạo, cần tổ chức hội thảo chuyên đề cho giáo viên bộ
môn Tin học hàng năm để giáo viên có dịp được trao đổi, học hỏi kinh nghiệm,
tìm ra những giải pháp, biện pháp tốt, ý tưởng hay giúp nâng cao chất lượng dạy
học nói chung và ơn thi học sinh giỏi nói riêng.


XÁC NHẬN

Thanh Hóa, ngày 20 tháng 05 năm 2021

CỦA THỦ TRƯỞNG ĐƠN VỊ

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.
Người viết

LÊ THỊ QUỲNH

13


TÀI LIỆU THAM KHẢO
1. Tin học 11, NXB Giáo Dục, 2006. Tác giả: Hồ Sĩ Đàm, Hồ Cẩm Hà, Trần Đỗ
Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết.
2. Sách bài tập Tin học 11, NXB Giáo Dục, 2007. Tác giả: Hồ Sĩ Đàm, Hồ Cẩm
Hà, Trần Đỗ Hùng, Nguyễn Đức Nghĩa, Nguyễn Thanh Tùng, Ngô Ánh Tuyết.
3.Tài liệu chuyên Tin học quyển 1, NXB Giáo Dục. Tác giả Hồ Sĩ Đàm (chủ
biên), Đỗ Đức Đơng, Lê Minh Hồng, Nguyễn Thanh Tùng.
4. Tài liệu Tập huấn giáo viên 2017 (Tỉnh Thanh Hóa).
5. Tài liệu tập huấn giáo viên năm 2016 Tỉnh Thanh Hóa (Tài liệu lưu hành nội
bộ).
6. Website />7. SKKN của chính tác giả năm học 2017-2018, năm học 2018-2019.

14



DANH MỤC
CÁC ĐỀ TÀI SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG
ĐÁNH GIÁ XẾP LOẠI CẤP PHÒNG GD&ĐT, CẤP SỞ GD&ĐT VÀ CÁC
CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN

Họ và tên tác giả: Lê Thị Quỳnh
Chức vụ và đơn vị công tác: TPCM – GV Tin học, trường THPT Triệu Sơn 3

TT

1.

2.

3.

4.

Tên đề tài SKKN

Kết quả
Cấp đánh
đánh giá
giá xếp loại
xếp loại
(Phòng, Sở,
(A, B,
Tỉnh...)
hoặc C)

Sở GD&ĐT
C

Sử dụng sơ đồ tư duy nhằm
tạo hứng thú và nâng cao chất
lượng cho học sinh khi dạy
tiết 21 – bài tập, Tin học lớp
11.
Một số kinh nghiệm giáo dục Sở GD&ĐT
ý thức sử dụng Internet và kỹ
năng sống nhằm nâng cao
nhận thức và kết quả học tập
cho học sinh thông qua bài 9
và chương IV Tin học 10.
Hướng dẫn giải một số bài
Sở GD&ĐT
tập trong sách bài tập Tin học
11 nhằm nâng cao kết quả
học tập cho học sinh và lựa
chọn, bồi dưỡng học sinh
giỏi.
Giải một số bài tốn bằng
Sở GD&ĐT
phương pháp tìm kiếm nhị
phân giúp nâng cao hiệu quả
bồi dưỡng học sinh giỏi

Năm học
đánh giá xếp
loại

2012 - 2013

C

2015 – 2016

C

2017 – 2018

B

2018 – 2019

15


5.

Phân loại và vận dụng
phương pháp duyệt toàn bộ
trong bồi dưỡng học sinh giỏi
giúp nâng cao kết quả thi học
sinh giỏi cấp Tỉnh môn Tin
học

Sở GD&ĐT

C


2019 – 2020

----------------------------------------------------

16



×