Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
136 KB
Nội dung
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 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 tố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 - Sáng kiến kinh nghiệm THPT - Trung học phổ thông HS - Học sinh HSG - Học sinh giỏi 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 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 tơi thực đề tài: Ứng dụng thuật toá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 tốn “ lùa bị vào chuồng” để giải toán “ đếm” thường gặp cơng tác bồi dưỡng HSG Tin học Q 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 tố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 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 q 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 tốn 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 tố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 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” Xuất phát từ quan điểm trên, mạnh dạn chọn đề tài: Ứng dụng thuật toá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 tố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 tốn cách nhanh hiệu Trang Quy trình thực hiện: Bước 1: Giới thiệu thuật tố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 tố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 tố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 tố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ư tốn giải với lần duyệt file Để hiểu thuật tố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 toà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 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 toá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 q 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 Ta BAI1.OUT 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