1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(SKKN 2022) sử dụng phương pháp phân loại các dạng bài tập kiểu mảng một chiều nhằm nâng cao chất lượng giảng dạy học sinh yếu môn tin học lớp 11

17 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 35,84 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chính vì điều đó mà việc giáo viên phải tìm ra phương pháp dạy phù hợp, giúp HS tiếp cận được kiến thức, giải được các bài toán đơn giản thì mới mang lại hứng thú học tập cho HS, từ đó g

Trang 1

1 Mở đầu

1.1 Lí do chọn đề tài.

Ngày nay, trên thế giới đang diễn ra quá trình tin học hoá trên nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả to lớn Việc sử dụng máy tính không còn chỉ bó hẹp trong viện nghiên cứu, các trường đại học, các trung tâm máy tính mà còn mở rộng ra mọi cơ quan, tổ chức kinh tế, và trong các gia đình Song song với quá trình trên, việc giảng dạy Tin học trong các trường đại học, THPT cũng được đẩy mạnh đi đôi với việc tăng cường trang bị máy vi tính Đảng và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và đã đưa môn học này vào trường phổ thông như những môn học khác

Chính vì vậy, đối với mỗi giáo viên giảng dạy môn Tin học ở các trường phổ thông, việc tìm hiểu, nghiên cứu các vấn đề về Tin học, cùng với việc tìm các biện pháp giảng dạy Tin học trong nhà trường phổ thông là một công việc cần phải làm thường xuyên, nhằm đáp ứng với sự đòi hỏi ngày càng cao của xã hội

Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt động học tập Điều 24.2 của Luật giáo dục đã nêu rõ: “Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh” Chính vì điều đó mà việc giáo viên phải tìm ra phương pháp dạy phù hợp, giúp HS tiếp cận được kiến thức, giải được các bài toán đơn giản thì mới mang lại hứng thú học tập cho HS, từ đó giúp các em yêu môn học hơn

Xuất phát từ thực tiễn giảng dạy nhiều năm môn Tin học lớp 11 của mình 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

Trong thời đại thông tin bùng nổ ngày nay, việc lập được các chương trình

tự hoạt động cho máy tính, máy gia dụng là cần thiết Và để làm được việc đó cần

có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó người lập trình có thể chọn một ngôn ngữ lập trình thích hợp Tuy nhiên mọi thứ điều có điểm khởi đầu của nó, với học sinh việc học lập trình giúp các em hình dung được

sự ra đời, cấu tạo, hoạt động cũng như ích lợi của các chương trình hoạt động trong

Trang 2

máy tính, các máy tự động…Qua đó giúp các em có thêm một định hướng, một niềm đam mê về tin học, về nghề nghiệp mà các em chọn sau này

Tuy nhiên, trong các môn học ở bậc học THPT thì môn Tin học lớp

11 được các em học sinh cho là môn học “khó nhai” nhất trong các môn học Từ việc các em chỉ là người sử dụng các phần mềm sẵn có như: hệ điều hành, soạn thảo văn bản Word, bảng tính Excel, các phần mềm học tập, nghe nhạc hay chơi game… thì các em lại là người phải tìm ra lời giải cho các bài toán, chỉ ra các bước cho máy tính thực hiện và viết chương trình để tạo ra các sản phẩm phần mềm cho người khác sử dụng mặc dù mới chỉ là bước khởi đầu, cơ bản

Các em học sinh phải làm quen với nhiều kiểu dữ liệu mới mà trong các môn học khác không có, nhiều học sinh còn bỡ ngỡ không hiểu vì sao cùng là kiểu số nguyên mà lại chia làm nhiều kiểu khác nhau mà trong toán học chỉ gồm số nguyên âm và nguyên dương Hoặc các loại thông tin như hình ảnh, âm thanh… được xử lý như thế nào Kiến thức mới và khó, học sinh sợ học môn Tin học 11, kết quả giảng dạy thấp, nhất là ở các lớp học sinh yếu về môn tự nhiên, ít có điều kiện sử dụng máy tính Người thầy phải làm gì để khắc phục được điều này?

Để khắc phục được điều đó, theo tôi chúng ta cần phải tìm tòi, nghiên cứu tìm ra những bài toán phù hợp, kích thích được sự độc lập, tích cực của học sinh trong học tập Học sinh có thể tự mình tìm ra được những ý tưởng sáng tạo vận dụng thiết thực vào cuộc sống thực tế khi nhu cầu nảy sinh, khi đó các em có thể tự mình hoàn thành được ý tưởng đó

Trên cơ sở những gì mà học sinh được học tập về lập trình, để giúp cho học sinh nhìn nhận vấn đề một cách tích cực hơn, sáng tạo hơn và nhất là giúp cho các

em có thể yêu thích lập trình nhiều hơn Hơn thế nữa, để các em thực sự hứng thú môn học này thì bản thân các em phải tự lập trình được những bài toán đơn giản, những bài toán đó phải được chạy đúng và cho kết quả cụ thể, có như thế mới kích thích được các em cố gắng

Xuất phát từ thực tế giảng dạy môn Tin học lớp 11 nhiều năm ở trường THPT Tĩnh Gia 4 của mình, tôi nhận thấy khả năng lập trình của đa số các em còn rất yếu, đặc biệt đối với phần đông HS không học khối A, B Nếu các em không làm được bài tập, sẽ dẫn đến chán nản, động lực học tập sẽ giảm sút Vì vậy trăn trở lớn nhất của những giáo viên dạy học như tôi là làm sao để giúp các em học yếu có thể lập trình giải được những bài toán đơn giản, làm được bài kiểm tra và những bài tập cơ bản cô giao trên lớp, chỉ như vậy thôi là các em đã nhen nhóm đam mê, khi làm được bài tập dễ rồi thì ắt sẽ có ý định lập trình những bài toán phức tạp hơn Đấy là thành công thực sự của bản thân tôi khi áp dụng cách phân loại bài tập mảng một chiều trong dạy học môn Tin học 11 ở trường THPT Tĩnh Gia 4

Tác giả viết SKKN “Sử dụng phương pháp phân loại các bài tập kiểu mảng một chiều nhằm nâng cao chất lượng giảng dạy học sinh yếu môn Tin học lớp

Trang 3

11 ở trường THPT Tĩnh Gia 4 ” dựa trên thực tế giảng dạy tại trường THPT Tĩnh

Gia 4, với những mong muốn có thể giúp được phần nào cho các đồng nghiệp, các

em HS hoặc các độc giả quan tâm đến vấn đề này thấy dễ dàng hơn khi gặp một bài toán dạng mảng một chiều trong nội dung chương trình Tin học lớp 11 của bộ giáo dục và hướng dẫn thực hiện phân phối chương trình của sở giáo dục và đào tạo Thanh Hóa

1.2 Mục đích nghiên cứu.

Xuất phát từ nhu cầu thực tế giảng dạy Tin học lớp 11 nhiều năm ở trường THPT Tĩnh Gia 4, tôi nhận thấy bản thân cần phải xây dựng những giáo án với các phương pháp dạy học khác nhau để phù hợp với các đối tượng học sinh ở các lớp sao cho đa số các em đều có thể hiểu bài, đặc biệt là có thể lập trình để giải quyết những bài toán đơn giản trong sách giáo khoa và sách bài tập nhằm nâng cao hiệu quả học tập của HS Đó chính là mục đích nghiên cứu đề tài này của bản thân tôi

1.3 Đối tượng nghiên cứu

Đối tượng nghiên cứu của đề tài này là học sinh yếu môn Tin học ở các lớp

11 của trường THPT Tĩnh Gia 4

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

Đề tài nghiên cứu dựa trên các phương pháp nghiên cứu xây dựng cơ sở lí thuyết, phương pháp điều tra khảo sát thực tế, phương pháp nêu và giải quyết vấn

đề, phương pháp thu thập thông tin

Trang 4

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

- Khi học sinh học Bài 11 “Kiểu mảng”, việc học sinh tiếp cận được với ngôn ngữ lập trình có cấu trúc một việc không đơn giản, hơn nữa bài tập kiểu mảng lại nhiều, đa dạng nên học sinh gặp khó khăn trong lập trình nếu không biết phân loại bài tập để giải quyết chúng

- Ở bài kiểu mảng giáo viên có thể tạo sự hứng thú cho học sinh bằng các ví

dụ cụ thể, có thể làm được các công việc mà các em đã gặp trong thực tế cuộc sống như các bài toán đếm, các bài toán tính tổng,

- Việc lập trình giải quyết các bài toán bằng 1 ngôn ngữ lập trình cụ thể các

em đã được làm quen từ đầu năm đến giờ nên đa số học sinh sẽ dễ bắt nhịp khi lập trình giải các bài toán kiểu mảng

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

Khi bắt đầu vào dạy học phần mảng một chiều ở chương trình Tin học lớp 11 thì tôi nhận thấy những khó khăn sau:

- Đây là bài đầu tiên về kiểu dữ liệu có cấu trúc nên kiến thức HS tiếp cận còn mới

- Bài tập về kiểu mảng một chiều từ dễ đến khó rất nhiều, phức tạp, nhiều dạng nên việc phân loại để giải đối với HS yếu khá vất vả

Do những khó khăn nói trên, nếu giáo viên không tìm được phương pháp dạy học phù hợp với các đối tượng HS khác nhau thì sẽ dẫn đến phần lớn HS yếu không làm được bài tập, khi đó các em sẽ cảm thấy chán nản, không hứng thú với môn học, không nắm vững kiến thức về phần mảng một chiều và ảnh hưởng lớn đến kết quả học tập những phần sau Chính vì vậy, việc giáo viên giảng dạy phải có phương pháp để phân loại các dạng bài tập đơn giản giúp nâng cao hứng thú lập trình của HS yếu là vấn đề cốt lõi, nếu làm được điều đó mới kích thích được các

em học tốt lập trình, có ý thức lập trình và chất lượng học tập của HS cũng sẽ được nâng lên Thực tế áp dụng phương pháp phân loại các bài tập cơ bản về mảng một chiều của bản thân trong giảng dạy Tin học 11 nhiều lớp, nhiều năm ở trường THPT Tĩnh Gia 4 tôi thấy kết quả học tập nâng lên rõ rệt, hầu hết HS đều có khả năng lập trình những bài toán cơ bản về mảng một chiều, kết quả các bài kiểm tra

và bài thi hết học kỳ 1 được tăng lên so với trước, và đó cũng là động lực để giúp một bộ phận không nhỏ HS tìm tòi để lập trình những bài toán khó hơn, phức tạp hơn

2.3 Các giải pháp đã sử dụng để giải quyết vấn đề

2.3.1 Dạng 1 Các bài toán tính tổng các phần tử của mảng một chiều thỏa mãn điều kiện nào đó

Trang 5

(Gồm tổng các phần tử chẵn, lẻ, âm, dương, bội của 1 số k )

a Phương pháp tiến hành

Khi gặp những bài toán như trên thì cần:

a1 Xác định bài toán: Gồm 2 phần:

- Input: Số nguyên N, các phần tử từ a1,a2, ,an.

- Output: Tính tổng các phần tử thỏa mãn điều kiện nào đó.

a2 Thuật toán:

- Nhập số phần tử (n) của mảng 1 chiều (nếu có)

- Nhập giá trị các phần tử của mảng 1 chiều (a[i])

- S=0;

- Duyệt từ đầu đến cuối mảng, nếu thõa mãn điều kiện thì S=S+a[i];

- Đưa tổng S ra màn hình

a3 Cài đặt chương trình:

Dùng các câu lệnh ngôn ngữ lập trình C++ để lập trình giải quyết bài toán

b Ví dụ áp dụng

Ví dụ 1: Lập trình nhập vào từ bàn phím mảng một chiều gồm 10 phần tử nguyên, tính tổng các phần tử chẵn rồi đưa kết quả ra màn hình?

VD: Các phần tử của mảng 1 chiều gồm: 1 -2 4 6 5 19 12 -7 87 7

Kết quả S=20

Cách làm:

b1 Xác định bài toán:

- Input: Các phần tử từ a1,a2, ,a10

- Output: Tính tổng các phần tử chẵn của mảng.

b2 Thuật toán:

- Nhập giá trị của 10 phần tử mảng 1 chiều

- s=0;

- Duyệt từ phần tử thứ 1 đến 10, nếu phần tử nào chẵn thì s=s+a[i]

- Đưa s ra màn hình

b3 Chương trình:

#include <bits/stdc+.h>

#define N 1000

using namespace std;

Trang 6

int a[N+1];

int main()

{

for (int i=1; i<=10; i++)

cin>>a[i];

int s=0;

for (int i=1; i<=10; i++)

if ((a[i]%2) == 0) s=s+a[i];

cout<<s;

return 0;

}

Ví dụ 2: Lập trình nhập vào từ bàn phím mảng một chiều gồm n phần tử nguyên, tính tổng các phần tử dương rồi đưa kết quả ra màn hình?

VD: n=8 gồm các phần tử: 4 -3 -5 -8 6 5 -8 -9

Kết quả S = 15

Cách làm:

b1 Xác định bài toán:

- Input: Số nguyên n, dãy số từ a1,a2, ,an.

- Output: Tính tổng các phần tử dương của mảng.

b2 Thuật toán:

- Nhập n

- Nhập giá trị của n phần tử mảng 1 chiều

- s=0;

- Duyệt từ phần tử thứ 1 đến n, nếu phần tử nào >0 thì s=s+a[i]

- Đưa s ra màn hình

b3 Chương trình:

#include <bits/stdc+.h>

#define N 1000

using namespace std;

Trang 7

int a[N+1];

int i,s,n;

int main()

{

cin >>n;

for (int i=1; i<=n; i++)

cin>>a[i];

s=0;

for (int i=1; i<=n; i++)

if (a[i]>0) s=s+a[i];

cout<<s;

return 0;

}

2.3.2 Dạng 2: Các bài toán đếm các phần tử của mảng một chiều thõa mãn điều kiện nào đó

(Gồm đếm các phần tử chẵn, lẻ, âm, dương, bội của 1 số k )

a Phương pháp tiến hành

Khi gặp những bài toán như trên thì cần:

a1 Xác định bài toán: Gồm 2 phần:

- Input: Số nguyên n, các pt từ a1,a2, ,an.

- Output: Đếm các phần tử thõa mãn điều kiện nào đó.

a2 Thuật toán:

- Nhập số phần tử (n) của mảng 1 chiều (nếu có)

- Nhập giá trị các phần tử của mảng 1 chiều (a[i])

- d=0;

- Duyệt từ đầu đến cuối mảng, nếu thõa mãn điều kiện thì d=d+1;

- Đưa d ra màn hình

a3 Cài đặt chương trình:

Dùng các câu lệnh C++ để lập trình giải quyết bài toán

Trang 8

b Ví dụ áp dụng

Ví dụ 1: Lập trình nhập vào từ bàn phím mảng một chiều gồm 10 phần tử nguyên, đếm các phần tử lẻ rồi đưa kết quả ra màn hình?

VD: Các phần tử của mảng gồm: 1 -3 2 -5 4 3 6 9 12 14

Kết quả d=5

Cách làm:

b1 Xác định bài toán:

- Input: Các pt từ a1,a2, ,a10

- Output: Đếm các phần tử lẻ của mảng.

b2 Thuật toán:

- Nhập giá trị của 10 phần tử mảng 1 chiều

- d=0;

- Duyệt từ phần tử thứ 1 đến 10, nếu phần tử nào lẻ thì d=d+1;

- Đưa d ra màn hình

b3 Chương trình:

#include <bits/stdc+.h>

#define N 1000

using namespace std;

int a[N+1];

int d;

int main()

{

for (int i=1; i<=10; i++)

cin>>a[i];

d=0;

for (int i=1; i<=10; i++)

if (a[i]%2!=0) d=d+1;

cout<<d;

return 0;

}

Trang 9

Ví dụ 2: Lập trình nhập vào từ bàn phím mảng một chiều gồm n phần tử nguyên, đếm các phần tử âm rồi đưa kết quả ra màn hình?

VD: cho n=7 gồm các phần tử: -1 3 -6 -4 3 7

Kết quả d=3

Cách làm:

b1 Xác định bài toán:

- Input: Số nguyên n, dãy số từ a1,a2, ,an.

- Output: Đếm các phần tử âm của mảng.

b2 Thuật toán:

- Nhập n

- Nhập giá trị của n phần tử mảng 1 chiều

- d=0;

- Duyệt từ phần tử thứ 1 đến n, nếu phần tử nào <0 thì d=d+1;

- Đưa d ra màn hình

b3 Chương trình:

#include <bits/stdc+.h>

#define N 1000

using namespace std;

int a[N+1];

int d,n;

int main()

{

cin>>n;

for (int i=1; i<=n; i++)

cin>>a[i];

d=0;

for (int i=1; i<=n; i++)

if (a[i] <0) d=d+1;

cout<<d;

Trang 10

return 0;

}

2.3.3 Dạng 3: Các bài toán in vị trí hoặc giá trị các phần tử của mảng một chiều thõa mãn điều kiện nào đó (cũng có thể in cả vị trí và giá trị các phần tử)

(Gồm in vị trí hoặc giá trị các phần tử chẵn, lẻ, âm, dương, bội của 1 số k )

a Phương pháp tiến hành

Khi gặp những bài toán như trên thì cần:

a1 Xác định bài toán: Gồm 2 phần:

- Input: Số nguyên N, các phần tử từ a1,a2, ,an.

- Output: In vị trí hoặc các phần tử thõa mãn điều kiện nào đó.

a2 Thuật toán:

- Nhập số phần tử (n) của mảng 1 chiều (nếu có)

- Nhập giá trị các phần tử của mảng 1 chiều (a[i])

- Duyệt từ đầu đến cuối mảng, nếu thõa mãn điều kiện thì

- Đưa chỉ số i hoặc đưa ra các giá trị a[i] ra màn hình

a3 Cài đặt chương trình:

Dùng các câu lệnh ngôn ngữ C++ để lập trình giải quyết bài toán

b Ví dụ áp dụng

Ví dụ 1: Lập trình nhập vào từ bàn phím mảng một chiều gồm 10 phần tử nguyên, in ra màn hình vị trí các phần tử là bội của 3.

VD: Mảng có 10 phần tử gồm: 1 3 -6 5 8 9 12 34 69 22

Kết quả: 2 3 6 7 9

Cách làm:

b1 Xác định bài toán:

- Input: Các pt từ a1,a2, ,a10

- Output: In ra màn hình vị trí các phần tử là bội của 3 trong mảng.

b2 Thuật toán:

- Nhập giá trị của 10 phần tử mảng 1 chiều

- Duyệt từ phần tử thứ 1 đến 10, nếu phần tử nào chia hết cho 3 thì đưa i ra màn hình

b3 Chương trình:

Trang 11

#include <bits/stdc+.h>

#define N 1000

using namespace std;

int a[N+1];

int main()

{ for (int i=1; i<=10; i++)

cin>>a[i];

for (int i=1; i<=10; i++)

if (a[i]%3==0) cout <<i<<“ ”;

return 0;

}

Ví dụ 2: Lập trình nhập vào từ bàn phím mảng một chiều gồm n phần tử nguyên, đưa ra màn hình các giá trị là bội của 5?

VD: n=8 gồm các giá trị: 2 -5 4 10 8 15 -4 20

Kết quả là : -5 10 15 20

Cách làm:

b1 Xác định bài toán:

- Input: Số nguyên n, dãy số từ a1,a2, ,an.

- Output: Đưa ra màn hình các phần tử là bội của 5 trong mảng.

b2 Thuật toán:

- Nhập n

- Nhập giá trị của n phần tử mảng 1 chiều

- Duyệt từ phần tử thứ 1 đến n, nếu phần tử nào chia hết cho 5 thì đưa phần tử

đó ra màn hình

b3 Chương trình:

#include <bits/stdc+.h>

#define N 1000

using namespace std;

int a[N+1];

int n;

Ngày đăng: 06/06/2022, 19:43

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w