Skkn ứng dụng thuật toán lùa bò vào chuồng để giải các bài toán thường gặp trong công tác bồi dưỡng học sinh giỏi tin học

15 7 0
Skkn ứng dụng thuật toán lùa bò vào chuồng để giải các bài toán thường gặp trong công tác bồi dưỡng học sinh giỏi tin học

Đ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

Đã qua rồi cái thời "Thầy đọc trò ghi" của những năm về trước SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT THẠCH THÀNH 3 SÁNG KIẾN KINH NGHIỆM ỨNG DỤNG THUẬT TOÁN “ LÙA BÒ VÀO CHUỒNG” ĐỂ GIẢI CÁC BÀI[.]

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT THẠCH THÀNH SÁNG KIẾN KINH NGHIỆM ỨNG DỤNG THUẬT TỐN “ LÙA BỊ VÀO CHUỒNG” ĐỂ GIẢI CÁC BÀI TỐN THƯỜNG GẶP TRONG CƠNG TÁC BỒI DƯỠNG HỌC SINH GIỎI TIN HỌC Người thực hiện: Lê Thị Thảo Chức vụ: Giáo viên SKKN thuộc mơn: Tin học THANH HỐ NĂM 2022 skkn Mục lục Trang I Mở đầu …… 1.1 Lí chọn đề tài………………………………………………… … 1.2 Mục đích nghiên cứu……………………………………………… 1.3 Đối tượng nghiên cứu…………………………………… ……… 1.4 Phương pháp nghiên cứu…………………………………… …… …1 II Nội dung sáng kiến kinh nghiệm……………………………… … ….….2 2.1 Cơ sở lí luận sáng kiến kinh nghiệm……………………… …….2 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm…… ….2 2.3 Các sáng kiến kinh nghiệm giải pháp sử dụng để giải vấn đề…………………………………………………………………………2, 2.3.1 Vận dụng thuật toán “lùa bò vào chuồng” ……………… .3 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, với thân, đồng nghiệp nhà trường………………………………… …… III Kết luận, kiến nghị………………………….…………………….… ….9 3.1 Kết luận………………………………………………………… … 10 3.2 Kiến nghị……………………………………………………….…….10 Tài liệu tham khảo…………………………………………………… … … 11 Các thuật ngữ viết tắt bài: skkn SKKN - Sáng kiến kinh nghiệm THPT - Trung học phổ thông HS - Học sinh HSG - Học sinh giỏi skkn I MỞ ĐẦU 1.1 Lí chọn đề tài Trong chương trình tin học THPT, với cơng tác bồi dưỡng đội tuyển HSG việc sử dụng thuật toán vào giải tốn Tin học điều vơ quan trọng đem lại hiệu cao lập trình Nhưng việc lựa chọn phương pháp cho phù hợp, ngắn gọn, hiệu dễ hiểu đơn giản, toán “ đếm” thường yêu cầu với liệu lớn Nếu khơng biết tổ chức liệu thuật tốn hiệu khó đưa lời giải Một cách tiếp cận để xử lý tượng sử dụng thuật tốn “lùa bị vào chuồng” (còn gọi “ đếm phân phối”) Nhằm giúp cho HS có cách nhìn tổng qt tốn “đếm” điển hình Tin học THPT có phương pháp lựa chọn, định hướng phương pháp giải, bước giải cụ thể phù hợp với dạng nên thực đề tài: Ứng dụng thuật tốn “ lùa bị vào chuồng” để giải tốn thường gặp cơng tác bồi dưỡng HSG Tin học 1.2 Mục đích nghiên cứu Khi đưa thuật tốn vào giải hệ thống toán “đếm” với liệu lớn giúp cho học sinh có phương pháp lập trình tốn cách hiệu ôn thi học sinh giỏi, nhận thấy học sinh có nhiều tiến bộ, rèn luyện kĩ giải tập, HS hứng thú hơn, thấy hay trình lập trình giải toán “đếm” phức tạp Tin học 1.3 Đối tượng nghiên cứu Thuật toán “ lùa bị vào chuồng” để giải tốn “ đếm” thường gặp công tác bồi dưỡng HSG Tin học Quá trình áp dụng chủ đề HS giỏi lớp 10,11 12 trong công tác bồi dưỡng HSG cấp tỉnh Ngôn ngữ sử dụng để lập trình đề tài ngơn ngữ C++ 1.4 Phương pháp nghiên cứu Mỗi gặp dạng toán “đếm” phải nhận dạng biết ứng dụng phương pháp giải “lùa bò vào chuồng” để giải tốn, nhằm mục đính giúp học sinh hệ thống kiến thức rèn luyện kỹ nhận định, lập trình nhanh hiệu quả, đáp ứng thi HSG tỉnh Trang skkn II NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cở sở lí luận sáng kiến kinh nghiệm Trong trình giảng dạy lớp trình bồi dưỡng HSG Tin học 10, 11 12 mà dạy năm qua, nhận thấy em HS gặp khó khăn với toán yêu cầu phải sử dụng thuật toán nâng cao để giải Ví dụ như: Thuật tốn đếm, quy hoạch động, tìm kiếm, tham lam, Trong toán đếm đối tượng toán thường gặp đề thi HSG tỉnh Tuy nhiên, toán “ đếm” thường yêu cầu với liệu lớn Nếu tổ chức liệu thuật tốn hiệu khó đưa lời giải Một cách tiếp cận để xử lý tượng sử dụng thuật tốn “lùa bị vào chuồng” Xuất phát từ quan điểm trên, mạnh dạn chọn đề tài: Ứng dụng thuật tốn “ lùa bị vào chuồng” để giải tốn thường gặp cơng tác bồi dưỡng HSG Tin học 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm Trường THPT Thạch Thành thuộc huyện Thạch Thành mà công tác huyện miền núi tỉnh Thanh Hóa Học sinh chủ yếu em dân tộc mường, điều kiện kinh tế cịn khó khăn Chưa có điều kiện để trang bị máy tính nhiều số lượng máy tính trường cịn hạn chế nên thời lượng học sinh học thực hành chưa nhiều, dẫn đến kết học tập chưa cao đặc biệt công tác bồi dưỡng HSG Một thực trạng việc lập trình giải tốn đề thi HSG cấp tỉnh đòi hỏi tư tốt mặt toán học, phải biết cách tổ chức liệu thuật toán hiệu giải tốn Chính em cần giáo viên cung cấp thuật toán tối ưu hiệu để giúp em giải toán đạt kết cao kỳ thi HSG cấp tỉnh Xuất phát từ thực trạng trên, để giúp học sinh đạt kết cao kỳ thi HSG cấp tỉnh, tơi xin đưa vào thuật tốn “ lùa bò vào chuồng” để giải toán đếm cách hiệu 2.3 Các giải pháp sử dụng để giải vấn đề Bài toán đếm đối tượng toán thường gặp đề thi HSG cấp tỉnh, thường yêu cầu với liệu lớn nên khó khăn thời gian thực chương trình giây Muốn có thuật tốn để lập trình nhanh gọn, dễ hiểu trước hết ta tìm hiểu hệ thống tập điển hình tốn đếm chương trình Tin học 11và đề thi để bồi dưỡng HSG , sau ta sử dụng thuật tốn “lùa bị vào chuồng” để giải toán cách nhanh hiệu Trang skkn Quy trình thực hiện: Bước 1: Giới thiệu thuật toán, cách bước thực Bước 2: Cho HS vận dụng tập dượt số tập minh hoạ cụ thể để rèn luyện kỹ Bước 3: Kiểm tra đánh giá kết vận dụng HS thơng qua hình thức (kiểm tra buổi dạy bồi dưỡng HS giỏi, kiểm tra giao lưu cụm trường…) 2.3.1 Vận dụng thuật toán “lùa bị vào chuồng” a) Thuật tốn “lùa bị vào chuồng” (còn gọi đếm phân phối) Tư tưởng thuật toán xây dựng dựa suy nghĩ thực tế để đếm số lượng bò vùng xác định người ta phải tìm cách lùa chúng vào chuồng (để chúng khỏi chạy rông) cho dễ đếm Đương nhiên bò loại phải lùa vào chuồng để dễ phân biệt lùa vào chuồng tốt Tương tự vậy, muốn giải toán đếm đối tượng ta dùng cấu trúc liệu hợp lý (thường mảng tĩnh hay mảng động) với ý nghĩa giống “chuồng” để lưu đối tượng, phần tử mảng tương ứng với chuồng Trên sở ta dễ dàng thực mục đích thao tác đếm [1] Thuật tốn “lùa bị vào chuồng” thường áp dụng toán đếm phần kiểu mảng kiểu xâu, thường sử dụng tốn khó đề thi cấp tỉnh( thứ trở đi) Thông qua tập vận dụng ta rút phương pháp chung để định hướng chọn bước giải toán đếm sử dụng thuật tốn “lùa bị vào chuồng” sau: Bước 1: Khai báo mảng tĩnh để đếm Bước 2: Khởi tạo mảng tĩnh với tất giá trị Bước 3: Duyệt file chứa liệu ta đọc đối tượng file tăng giá trị mảng vị trí tương ứng Như toán giải với lần duyệt file Để hiểu thuật toán ta xét ví dụ sau: “Hãy đếm cho biết số lần xuất chữ La tinh file văn Giả sử văn viết tồn chữ hoa” Rõ ràng với tốn ta duyệt tồn file lần duyệt ta thực thao tác đếm chữ Sau 26 lần duyệt tương ứng với 26 chữ ta thu tồn kết Tuy nhiên, việc duyệt file tương đối chậm file văn cho dài nên thời gian thực giây đề Trang skkn thi tỉnh không thực Ta vận dụng thuật toán cách sử dụng mảng tĩnh int dem[27] với ý nghĩa sau: giá trị A[i] i thuộc [0 26] lưu số lần xuất ký tự ch file văn Mảng dem khởi tạo với tất giá trị 0, duyệt file ta đọc ký tự file biến trung gian ch đó, tăng giá trị mảng vị trí tương ứng có số ch lên đơn vị qua câu lệnh: dem[S[i]]]++ (trong S[i] phần tử xâu S file văn bản) Như vậy, toán giải với lần duyệt file nhất.Sau khảo sát số ví dụ điển hình vận dụng thuật tốn b) Bài tập vận dụng Bài 1: Đếm kí tự [2] Cho xâu S gồm kí tự chữ Latinh in thường kí tự số từ ‘0’ đến ‘9’ Yêu cầu: Hãy đếm xem xâu S có loại kí tự khác Dữ liệu vào: Vào từ file văn BAI1.INP gồm dịng xâu kí tự S (có dộ dài không 104) Kết quả: Kết ghi file văn BAI1.OUT gồm dòng số lượng kí tự khác Ví dụ: BAI1.INP abcaccac112 BAI1.OUT Ta có chương trình áp dụng thuật tốn “lùa bò vào chuồng” sau: #include using namespace std; string s; int dem[124]; // Khởi tạo mảng dem int n, kq=0; int main() { freopen(“bai1.inp”, “r”, “stdin”); freopen(“bai1.out”, “w”, “stdout”); cin >> s; n=s.length(); memset(dem, 0, sizeof(dem)); // Gán tất phần tử mảng dem for (int i=0; i a[i]; memset (dem,0,sizeof(dem)); // Gán tất phần tử mảng dem for (int i=1; i

Ngày đăng: 02/02/2023, 09:01

Tài liệu cùng người dùng

Tài liệu liên quan