Phương pháp ứng dụng thuật toán tìm kiếm vào dạy lập trình tin học trong công tác bồi dưỡng học sinh giỏi

30 381 0
Phương pháp ứng dụng thuật toán tìm kiếm vào dạy lập trình tin học trong công tác bồi dưỡng học sinh giỏi

Đ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

MỤC LỤC I MỞ ĐẦU 1.1 LÍ DO 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 II NỘI DUNG .3 2.1 CƠ SỞ LÍ LUẬN 2.2 THỰC TRẠNG VẤN ĐỀ TRƯỚC KHI ÁP DỤNG SKKN 2.3 CÁC THUẬT TOÁN TÌM KIẾM NỘI .5 2.3.1 Tìm kiếm 2.3.2 Tìm kiếm nhị phân 2.4 TÌM KIẾM THEO CHIỀU SÂU 10 2.4.1 Ý tưởng 10 2.4.2 Thủ tục đệ quy THAMDFS 10 2.5 TÌM KIẾM THEO CHIỀU RỘNG 12 2.5.1 Ý tưởng: 12 2.5.2 Giải thuật .13 2.6 HIỆU QUẢ CỦA SKKN ĐỐI VỚI HOẠT ĐỘNG GIÁO DỤC .17 III.KẾT LUẬN VÀ KIẾN NGHỊ 19 3.1 KẾT LUẬN .19 3.2 KIẾN NGHỊ 19 I MỞ ĐẦU 1.1 LÍ DO CHỌN ĐỀ TÀI Với phát triển mạnh mẽ ngành tin học truyền thông tạo nên xã hội học tập, người có quyền bình đẳng học, nghiên cứu Trước đổi nghiệp giáo dục đào tạo nên xã hội yêu cầu nhà trường không ngừng phải nâng cao chất lượng giáo dục toàn diện cho học sinh Bằng cách cung cấp cho học sinh đầy đủ kiến thức để theo kịp thời đại Do tin học đưa đồng vào nhà trường phổ thông từ năm 2006 với tư cách môn học thống Vấn đề đặt nhà trường ngành giáo dục cần phải tìm biện pháp để nâng cao chất lượng truyền thụ kiến thức rèn luyện kỹ cho người học Ở khối 11 THPT, môn tin học với tư tưởng sử dụng ngôn ngữ Pascal để rèn luyện kỹ lập trình cho học sinh, để thực việc hình thành rèn luyện kỹ học lập trình cho học sinh gặp nhiều khó khăn yêu cầu học sinh phải có kiến thức liên môn môn Toán tiếng Anh thuật toán cấu trúc liệu giải thuật Hiện năm 2017 tức 12 năm đưa môn tin học vào dạy THPT thực trạng việc dạy học lập trình trường phổ thông tồn nhiều phương pháp khác nhau, hình thức truyền dạy không đồng nên kết thu đào tạo chưa cao Mặt khác thiếu tài liệu hướng dẫn dạy học lập trình mang tính hệ thống, thống nên dạy học lập trình giáo viên học sinh phải chịu khó khăn, hạn chế định Bản thân giáo viên sư phạm ngành tin học trăn trở muốn khắc phục khó khăn việc dạy học, hình thành kỹ lập trình cho học sinh Hơn suốt thời gian dạy học trường THPT Quảng Xương nhận thấy việc tiếp nhận đơn vị kiến thức lập trình học sinh lớp 11 thực gặp khó khăn nhen nhóm ý tưởng có đề tài nghiên cứu để khắc phục vấn đề Chính lẽ mà xin chon đề tài: “Phương pháp ứng dụng thuật toán tìm kiếm vào dạy lập trình tin học công tác bồi dưỡng học sinh giỏi” làm đề tài viết sáng kiến kinh nghiệm Đây vấn đề nhỏ vô số vấn đề xây dựng để khai thác làm tăng hiệu cho trình dạy bồi dưỡng học sinh giỏi môn tin học lớp 11 1.2 MỤC ĐÍCH NGHIÊN CỨU nâng cao chất lượng tiếp thu lĩnh hội kiến thức tư thuật toán, lập trình giải thuật tìm kiếm giúp học sinh hiểu toán phương pháp giải vấn đề cách nhanh thân đồng nghiệp khác tổ môn tin học luôn trao đổi phương pháp để dạy cho học sinh có kiến thức tốt môn lập trình, học tốt tư thuật toán để em tư tốt học môn học khác với đề tài tham muốn mục đích: đổi nội dung, phương pháp, hình thức tổ chức giáo dục nhằm tìm biện pháp nâng cao chất lượng, hiệu giảng dạy giáo dục học sinh, bồi dưỡng đội ngũ học sinhhọc tháo gỡ khó khăn vướng mắc trên, đồng thời đóng góp phần nhỏ việc cải cách, nâng cao chất lượng giáo dục nói chung dạy học môn tin học nói riêng 1.3 đối tượng nghiên cứu qua trình dạy học môn tin học thpt cụ thể dạy học sinh rèn luyện với kiến thức lập trình lớp 11, đồng thời nhận trách nhiệm bồi dưỡng học sinh giỏi tỉnh với thực trạng chất lượng tiếp thu học sinh mà người thầy giáo giảng dạy môn tin, định chọn đề tài nhằm đưa phương án cho học sinh học tốt vào năm học tới giải vấn đề sau: - nghiên cứu 4: toán thuật toán - sgk tin học 10 sau làm sáng tỏ chất vấn đề nghiên cứu - nghiên cứu kiến thức sách giáo khoa tin học 11 (kiến thức liên quan đến việc thi cử học sinh giỏi tỉnh thi khác như: tin học trẻ…) - nghiên cứu học sinh khối 11 trường thpt quảng xương gây hứng thú cho học sinh học dạng toán lập trình có giải thuật tìm kiếm 1.4 phương pháp nghiên cứu vấn đề, đề tài nghiên cứu khâu chuẩn bị xác định mục đích nghiên cứu đóng vai trò quan trọng đề tài điều quan trọng khâu chuẩn bị việc chọn phương pháp để kết đề tài đến đích cần phải xác định phương pháp hiệu không lãng phí thời gian công sức kinh nghiệm cho thấy đề tài có thành công hay không phụ thuộc vào phương pháp tiến hành lẽ đề tài nghiên cứu sử dụng số phương pháp sau:  phương pháp nghiên cứu lí thuyết: tài liệu lí luận dạy học, vấn đề chung đổi phương pháp giáo dục trung học phổ thông, chương trình sách giáo khoa 11, số tài liệu chuyên tin học…  phương pháp nghiên cứu thực tiễn: thực tiễn dạy tin học từ năm 2006 đến nay, thực tiễn công tác bồi dưỡng học sinh giỏiphương pháp điều tra sư phạm: trao đổi với thầy cô, đồng nghiệp học sinh trường, giáo viên môn tin học, sau xử lí thông tin rút kết luận khoa họcphương pháp kiểm tra đánh giá học sinh thực nghiệm sư phạm: soạn giảng thành chương trình giảng, đề kiểm tra, dạy thể nghiệm rút kết luận khoa học, mang tính phổ biến  phương pháp tổng hợp đánh giá kết quả: tổng hợp cụ thể, chi tiết, kiểm chứng rút biện pháp đúng, loại trừ biện pháp không hợp lí số phương pháp mà vận dụng nghiên cứu hoàn thiện đề tài II NỘI DUNG 2.1 CƠ SỞ LÍ LUẬN Hàng năm Sở giáo dục đào tạo tỉnh Thanh Hóa tổ chức kỳ thi chọn học sinh giỏi tỉnh môn Tin học Kết học sinh giỏi tiêu chi thi đua đánh giá chất lượng trường học, đánh giá lực sư phạm giáo viên Như ta nhận thấy việc bội dưỡng học sinh giỏi nhiệm vụ quan trọng công tác chuyên môn môn, giáo viên cố gắng để truyền tải kiến thức để học sinh bồi dưỡng có kết cao kỳ thi Và môn tin học vậy, công tác Bồi dưỡng học sinh giỏi tin học, đề thi thường xuất toán có độ phức tạp lớn, toán liên quan đến xử lí tình thực tế… thường có toán đề thi có tình như: Bài toán tìm kiếm xếp liệu hệ thống thông tin, xử lí vấn đề số, mảng, xâu Ta thấy rằng: Bài toán tìm kiếm thông dụng toán xếp Bài toán tìm kiếm thường “bạn” đồng hành với toán xếp Sắp xếp để tìm kiếm thuận lợi ngược lại tìm kiếm tạo điều kiện cho xếp Vậy nội dung toán tìm kiếm gì? - Trong hầu hết hệ lưu trữ, quản lý liệu, thao tác tìm kiếm thường thực để khai thác thông tin: Ví du: Tra cứu từ điển, tìm sách thư viện Do hệ thống thông tin thường phải lưu trữ khối lượng liệu đáng kể, nên việc xây dựng giải thuật cho phép tìm kiếm nhanh có ý nghĩa lớn Nếu liệu hệ thống tổ chức theo trật tự đó, việc tìm kiếm tiến hành nhanh chóng hiệu hơn: Ví dụ: từ từ điển xếp theo vần, vần lại xếp theo trình tự alphabet; sách thư viện xếp theo chủ đề Ví dụ: Tìm số lớn tập số nguyên, tìm số hoàn hảo,… Vì thế, xây dựng hệ quản lý thông tin máy tính, bên cạnh thuật toán tìm kiếm, thuật toán xếp liệu chủ đề quan tâm hàng đầu - Có thể phân chia nội dung tìm kiếm theo loại sau: + Tìm phần tử tập đối tượng Ví dụ 1: Tìm giá trị lớn dãy số nguyên (VD-trang 33-sgk tin 10) Ví dụ 2: Tìm số nguyên tố số nguyên không vượt số nguyên dương N cho trước Ví dụ 3: Tìm học sinhhọc lực Khá lớp học 12A1 Tuy nhiên toán tìm kiếm phần tử tập đối tượng toán Ngoài toán tìm kiếm thường gắn liền với toán đếm liệt kê ví dụ: đếm số lượng phần tử thõa mãn điều kiện cho trước có số nguyên tố không vượt 100? Ví dụ 4: Cho dãy N số nguyên số nguyên x Cho biết số phần tử có giá trị x Có phần tử vậy? INPUT: file văn DAYSO.INP - dòng đầu N x - N dòng sau, ghi số nguyên thuộc dãy từ vị trí đến vị trí N, số dòng OUTPUT: File DAYSO.OUT - Dòng đầu số lượng phần tử dãy x; Nếu dòng đầu dương dòng ghi số phần tử x …Và nhiều toán, dạng toán tìm kiếm khác nữa… Và ta biết, có nhiều giải thuật tìm kiếm xếp xây dựng, mức độ hiệu giải thuật phụ thuộc vào tính chất cấu trúc liệu cụ thể mà tác động đến Dữ liệu lưu trữ chủ yếu nhớ nhớ phụ, đặc điểm khác thiết bị lưu trữ, thuật toán tìm kiếm xếp xây dựng cho cấu trúc lưu trữ nhớ phụ có đặc thù khác Tôi thấy vấn đề để giúp học sinh nắm phương pháp giải toán phức tạp Vì chọn thuật toán đặc trưng thuật toán tìm kiếm nội, thuật toán tìm kiếm chiều rộng, thuật toán tìm kiếm chiều sâu để trình bày nội dung sau để dạy cho học sinh học lập trình tin học 2.2 THỰC TRẠNG VẤN ĐỀ TRƯỚC KHI ÁP DỤNG SKKN Trong trình ôn luyện đội tuyển học sinh giỏi, nhiều giáo viên đặc biệt giáo viên trẻ, non kinh nghiệm gặp toán tìm kiếm lúng túng, chưa tìm phương pháp để truyền đạt ý tưởng để giải toán Bên cạnh học sinh lần đầu gặp bải toán tìm kiếm bỡ ngỡ, áp dụng thuật toán để làm, từ làm theo kiểu mày mò, thử nghiệm dẫn đến tốn nhiều thời gian mà không mang lại kết mong đợi Trong đề thi có yêu cầu thời gian xử lý liệu Vì việc áp dụng thuật toán vừa mang lại kết xác, lại vừa có thời gian xử lý nhanh thuật toán tối ưu Để có thuật toán đòi hỏi người giáo viên phải có lượng kiến thức tốt, kết hợp với khả sư phạm truyền đạt lại cho học sinh hiểu vận dụng vào tập cụ thể Thuận lợi: Nhà trường có hệ thống sở vật chất đầy đủ cho việc dạy tin học, quan tâm giúp đỡ đồng nghiệp, học sinh nhiệt tình ham học hỏi Việc tiếp cận tài liệu cho nghiên cứu tương đối thuận lợi Bản thân nhiều năm ôn luyện đội tuyển nên có đôi chút kinh nghiệm Khó khăn: Việc chọn học sinh cho đội tuyển Tin học gặp nhiều khó khăn học sinh khá, giỏi môn Toán, Lý, Hóa chọn trước Bên cạnh phụ huynh học sinh không muốn vào đội tuyển Tin học, để dành thời gian cho việc học môn phục vụ thi đại học 2.3 CÁC THUẬT TOÁN TÌM KIẾM NỘI Ðể đơn giản việc trình bày giải thuật, toán đặc tả sau: Bài toán tổng quát: Cần tìm kiếm phần tử tập N đối tượng cho trước, lưu liệu phản ánh đối tượng vào mảng chiều A[1 N], phần tử mảng ghi gồm trường lưu giá trị đặc tính đối tượng Trong trường giả sử chọn trường k làm khóa so sánh phần tử Bài toán đặt tìm phần tử có giá trị khóa k tập N đối tượng Có giải thuật thường áp dụng để tìm kiếm liệu tìm tìm nhị phân 2.3.1 Tìm kiếm Bắt đầu từ ghi chuyển dần phía cuối mảng, so sánh giá trị khóa ghi với k0 , giá trị ghi k0 ghi ( lưu trữ lại số ghi đó; đồng thời tăng biến đếm số lượng phần tử có giá trị khóa k0) Nếu duyệt hết ghi mà biến đếm có giá trị kết luận tập đối tượng cho phần tử có giá trị khóa k0 Cài đặt Giải thuật Tìm kỹ thuật tìm kiếm đơn giản cổ điển Các bước tiến hành sau : Procedure Timkiem; Var i: integer; Begin For i:=1 to n If a[i].k= k0 then Begin Inc(soluong); Luu(soluong):=i; End; End; * Trong chương trình trên, biến soluong luu[1 N] biến toàn cục, phục vụ đưa kết luận sau tìm kiếm Ví dụ Cho dãy số a: 12 15 Nếu giá trị cần tìm 8, giải thuật tiến hành sau : Hình 2.2 i=1 Hình 2.3 i=2 i = -> Dừng Ðánh giá giải thuật Có thể ước lượng độ phức tạp giải thuật tìm kiếm qua số lượng phép so sánh tiến hành để tìm ko Trường hợp giải thuật tìm tuần tự, có: Trường hợp Số lần so sánh Giải thích Tốt Phần tử có giá trị k0 Xấu n+1 Phần tử cuối có giá trị k0 Trung bình (n+1)/2 Giả sử xác suất phần tử mảng nhận giá trị k0 Vậy giải thuật tìm có độ phức tạp tính toán cấp n: T(n) = O(n) NHẬN XÉT - Giải thuật tìm không phụ thuộc vào thứ tự phần tử mảng, phương pháp tổng quát để tìm kiếm dãy số - Một thuật toán cài đặt theo nhiều cách khác nhau, kỹ thuật cài đặt ảnh hưởng đến tốc độ thực thuật toán 2.3.2 Tìm kiếm nhị phân Phép tìm kiếm nhị phân sử dụng sau mảng ghi xếp (tăng giảm) theo khóa k Giả sử giá trị khóa ghi đầu mảng (đã xếp) k1 giá trị khóa ghi cuối mảng (đã sx) k Phần tử cần tìm kiếm có giá trị khóa k0 Ta phân tích cách tìm kiếm nhị phân diễn sau: - Chọn ghi vị trí trung gian vị trí vt giua = (vtdau+vtcuoi) div 2, giả sử giá trị khóa ghi vị trí trung gian kgiua; - Nếu k0kgiua phần tử cần tìm đoạn từ vt giua+1 đến vtcuoi Vì cần tìm kiếm tiếp đoạn [vtgiua+1 vtcuoi] đệ quy - Nếu k0=kgiua ghi nhận số ghi ghi phần tử cần tìm Cài đặt Giải thuật Procedure TIMKIEM2 (vtdau,vtcuoi:integer); Var vtgiua:integer; Begin Vtgiua:=(vtdau+vtcuoi) div 2; If a[vtgiua].k = k0 then Begin { thông báo tìm kiếm kết thành công số hiệu phần tử tìm được} End ELSE If (a[vtgiua].k>k0) and (vtdau>vtgiua) then timkiem2(vtdau,vtgiua-1) Else If (a[vtgiua].k 0, di den dinh i } NhaChi(i) else CuonChi; {neu khong tim duoc, } { i = 0: lui buoc - bo dinh v[k] } until false; end; 17 Ghi chú: Nếu sử dụng ngăn xếp thay hàng đợi thuật toán trở thành thuật toán tìm kiếm theo chiều sâu Các đặc tính thuật toán Không gian Nếu V tập hợp đỉnh đồ thị số đỉnh không gian cần dùng thuật toán Thời gian Nếu V, E tập hợp đỉnh cung đồ thị, thời gian thực thi thuật toán trường hợp xấu nhất, đỉnh cung đồ thị thăm lần Ghi chú: nằm khoảng từ đến , tùy theo số cung đồ thị Ứng dụng thuật toán tìm kiếm theo chiều rộng Thuật toán tìm kiếm theo chiều rộng dùng để giải nhiều toán lý thuyết đồ thị, chẳng hạn như: • Tìm tất đỉnh thành phần liên thông • Thuật toán Cheney cho việc dọn rác • Tìm đường ngắn hai đỉnh u v (với chiều dài đường tính số cung) • Kiểm tra xem đồ thị có đồ thị hai phía • Thuật toán Cuthill–McKee • Thuật toán Ford–Fulkerson để tìm luồng cực đại mạng Tìm thành phần liên thông Tập hợp đỉnh thăm thuật toán tìm kiếm theo chiều rộng thành phần liên thông chứa đỉnh gốc Kiểm tra đồ thị hai phía Có thể dùng thuật toán tìm kiếm theo chiều rộng để kiểm tra xem đồ thị có phải đồ thị hai phía hay không, cách tìm kiếm từ đỉnh gán nhãn chẵn lẻ cho đỉnh thăm Nghĩa là, gán nhãn cho đỉnh gốc, cho tất đỉnh kề đỉnh gốc, cho tất đỉnh kề với đỉnh kề đỉnh gốc, tiếp tục Nếu bước đó, có hai đỉnh kề có nhãn, đồ thị không hai phía Nếu trình tìm kiếm kết thúc mà điều không xảy đồ thị hai phía 2.4 HIỆU QUẢ CỦA SÁNG KIẾN KINH NGHIỆM ĐỐI VỚI HOẠT ĐỘNG GIÁO DỤC Trong tiến hành thực sáng kiến kinh nghiệm suy nghĩ việc tìm tòi thuật toán tối ưu cho việc giải toàn phải tìm phương pháp tạo cảm hứng cho học sinh Từ vận dụng vào ôn luyện đội tuyển em hứng thú tiếp thu giảng tốt 18 Trong thực tiển toán tìm kiếm phổ biến, toán thường xuyên xuất nhiều thi chọn học sinh giỏi Tỉnh Vì sưu tầm tương đối tập dạng này, giúp em ôn luyện tốt Trên sở lý thuyết kết hợp với tập mà sưu tầm, chia với đồng nghiệp nhóm Tin học trường, giúp đồng chí có thêm kiến thức liệu để vững vàng đứng đội tuyển Dưới kết ứng dụng sáng kiến vào dậy lớp Ban tự nhiên năm Giỏi Khá TB Yếu Năm Lớp Sĩ số học SL % SL % SL % SL % 11T2 43 14 32.5 16 37.2 10 23.2 7.1 201211T3 43 18 41.8 15 34.8 16.4 7.0 2013 Tổng 86 32 37.2 31 36 17 19.8 11A1 41 17 40.5 17 41.5 14.6 2.4 201311A2 44 30 68.2 11 25.0 4.5 2.2 2014 Tổng 85 47 55.3 28 32.9 9.4 2.4 11A1 41 15 36.5 17 41.5 19.6 2.4 201511A2 41 27 65.8 13 31.7 2.4 0.0 2016 Tổng 82 42 51.2 30 36.6 11 1.2 Số liệu từ bảng kết thực nghiệm năm học 2012-2013, 20132014, 2015-2016 đem so sánh với kết năm trước chưa áp dụng thực nghiệm theo cách thấy: + Các em học tốt trông thấy: cụ thể tích cực tìm tòi hơn, hợp tác tốt hơn, chủ động tìm hiểu nội dung + Biết vận dụng kiến thức thuật toán tìm kiếm áp dụng vào giải toán đa dạng phức tạp + Kết học sinh giỏi: dễ dàng bồi dưỡng để học sinh đậu học sinh giỏi tỉnh nhiều + Kinh nghiệm sử dụng thuật toán tìm kiếm áp dụng vào dạy lập trình tin học cho học sinh làm tăng hiệu chuyên môn cho môn tin học Ở trường thân ứng dụng nội dung đề tài đạt số kết định kỳ thi học sinh giỏi cấp Tỉnh thi Tin học trẻ không chuyên tỉnh Thanh Hóa là: giải giải khuyến khích 19 III.KẾT LUẬN VÀ KIẾN NGHỊ 3.1 KẾT LUẬN Hiện nay, ngôn ngữ lập trình Pascal trở thành ngôn ngữ lập trình phổ biến giới sử dụng lĩnh vực giảng dạy Trong trình giảng dạy thầy cô đưa tình tìm kiếm dạng tập liên quan đến sống…để em chứng tỏ khả làm cho học sinh yêu thích môn học, ham học hỏi tìm tòi sáng tạo Với sang kiến mang tính thực tiễn cao cụ thể là: đề thi học sinh giỏi em học sinh chủ động để tìm phương pháp qua giải vấn đề yêu cầu đề thi giáo viên đặt Trong trình giải vấn đề, giáo viên sai lầm thuật toán tìm kiếm cho em học sinh mắc phải hiểu không rõ vấn đề giúp cho em hiểu rõ thuật toán tìm kiếm cách tổng quát để từ học sinh giải tất dạng toán gặp phải Kết có nhiều em dễ dàng vận dụng phương pháp thuật toán để giải nhiều toán con, nhiều dạng khác đề thi đặt 3.2 KIẾN NGHỊ Sở giáo dục đào tạo Thanh Hóa tập hợp thầy cô giáo có nhiều năm kinh nghiệm ôn luyện học sinh giỏi trường, viết cẩm nang kinh nghiệm tập tham khảo giáo viên trẻ học hỏi Quá trình thực đề tài nhiều yếu tố chủ quan khách quan nên tránh khỏi thiếu sót mong bạn bè đồng nghiệp đóng góp ý kiến để đề tài tốt có nhiều ứng dụng dạy học bồi dưỡng học sinh giỏi lớp 11 thể ứng dụng rộng rãi trường THPT Xin chân thành cảm ơn bạn bè đồng nghiệp em học sinh giúp đỡ tạo động lực cho hoàn thành sang kiến này! XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Sầm Sơm, ngày 20 tháng 03 năm 2017 Tôi cam đoan sáng kiến kinh nghiệm tôi viết ra, không chép người khác Nếu sai xin chịu trách nhiệm Người viết SKKN Nguyễn Hữu Dũng 20 TÀI LIỆU THAM KHẢO Lê Văn Doanh, Trần Khắc Tuấn- 101 Thuật toán chương trình-NXB Khoa Học Kỹ Thuật Quách Tuấn Ngọc - Bài tập ngôn ngữ lập trình Pascal-NXB Thống Kê PGS.PTS Bùi Thế Tâm - Bài tập lập trình Turbo Pascal 7.0-NXB Giao Thông Vận Tải Hồ Sĩ Đàm-Tin học 10,11 - NXB Giáo Dục Ths Trần Đức Huyên - Phương pháp giải toán tin học - NXB Giáo dục Hồ sĩ Đàm - Tài liệu chuyờn tin học - NXB Giáo Dục Một số đề thi, kiểm tra tỉnh toàn quốc 21 MỘT SỐ ĐỀ THAM KHẢO Sau áp dụng giáo án dạy xong cho học sinh Để khẳng định tính đắn phương pháp nghiên cứu nâng cao hiệu đề tài đề nghị số đề thi cho học sinh để học sinh tự rèn luyện, phát triển lực, hoàn thiện kiến thức lập trình mình, đề thi lấy từ tài liệu liên quan, đề thi học sinh giỏi qua năm học… để học sinh áp dụng, tham khảo Từ cho kết cao ĐỀ KIỂM TRA 001: Bài 1: (4,0 điểm) Tách từ Cho xâu gồm nhiều từ (các từ cách ký tự trắng, xâu không dài 256 ký tự), tách từ từ xâu Dữ liệu vào từ tệp văn bản: Tachtu.inp: Gồm dòng xâu cần tách Dữ liệu tệp văn bản: Tachtu.out Gồm nhiều dòng Mỗi dòng từ tách từ xâu, theo thứ tự từ trái qua phải Ví dụ Tachtu.inp Tachtu.ou Tachtu.inp Tachtu.ou t t Cong hoa xa hoi Cong G i a o vien G hoa i xa a hoi o vien Bài 2: (5,5 điểm) Số lõm Cho mảng A kích thước MxN (M,N ≤ 100; -2000 ≤ Aij ≤ 2000) Phần tử Aij gọi phần tử lõm phần tử nhỏ hàng đồng thời phần tử nhỏ cột Hãy lập chương trình tìm phần tử lõm sâu mảng A? (Phần tử lõm sâu phần tử có giá trị nhỏ phần tử lõm) Dữ liệu vào từ tệp solom.inp gồm M dòng, dòng có N giá trị Aij, giá trị ký tự trắng Dữ liệu tệp solom.out, dòng ghi giá trị số dòng, số cột phần tử lõm sâu nhất, giá trị cách ký tự trắng Nếu không tìm ghi -1 Ví dụ Solom.inp Solom.out 15 33 55 76 22 Bài 3: (3,5 điểm) Tên thiêng Tại tộc thành viên tộc đặt tên theo qui tắc chung, là: Tộc trưởng đưa tập hợp có n ký tự thiêng dùng để đặt tên (n ≤ 125) Tên thành viên tộc đặt không trùng tên tạo nên từ tất ký tự thiêng theo thứ tự Yêu cầu: cho tập ký tự thiêng, giúp tộc đưa tất tên tạo từ tập ký tự thiêng, theo quy tắc tộc Dữ liệu vào từ tệp: Tenth.inp gồm dòng ký tự thiêng, ký tự cách ký tự trắng Dữ liệu tệp: Tenth.out gồm nhiều dòng, dòng tên thiêng Ví dụ: Tenth.inp Tenth.out Tenth.inp Tenth.out abc Abc xy xy acb yx bac bca cab cba ĐỀ 002: (Trích đề thi HSG Nam Định 2009-2010) Bài 1: (6 điểm) Giả thuyết GÔN – BẮC Giả thuyết GÔN – BẮC ( Cho đến chưa bị bác bỏ, chưa chứng minh đầy đủ) nói số chẵn n lớn tổng hai số nguyên tố Yêu cầu: Cho số n chẵn lớn 2, xác định số lượng cặp số nguyên tố có tổng số n Kết : Đưa tệp văn GONBAC.OUT chứa số theo yêu cầu Ví dụ : GONBAC.INP GONBAC.OUT 16 Bài 2: (4 điểm) Mua hàng Có n người xếp thành hàng theo thứ tự để mua hàng Thòi gian người bán hàng phục vụ cho người thứ i ti đơn vị thời gian Hãy tìm thời gian mà người thứ k phải chờ để mua hàng Dữ liệu: Vào từ tệp văn MH.INP - Dòng 1: chứa số n, j nguyên dương (1≤k≤n≤100); 23 - Dòng 2: chứa n số t1, t2, tn ( Các giá trị ti nguyên dương va nhỏ 1000) Kết qủa : Đưa tệp văn MH.OUT chứa số C thở mãn yêu cầu liệu vào Ví dụ: MH.INP MH.OUT 53 13241 ĐỀ 003: (ĐỀ THI HSG TỈNH ĐẮCLAK 2011-2012) Bài 1: Tính tổng (5 điểm) Trên hình lớn, người ta cho số dãy gồm N số nguyên không âm a1, a2, …, aN lặp lặp lại (nghĩa sau a i xuất vài giây đến lượt ai+1 xuất hiện, số xuất sau aN a1) Yêu cầu: Bạn đề nghị tính tổng K số nguyên liên tiếp xuất hình số nguyên thứ B Dữ liệu vào: Chứa file BAI1.INP gồm hai dòng: + Dòng ghi ba số nguyên N, K, B, ≤ N ≤ 104; ≤ K ≤ 104 ; ≤ B ≤ 109 + Trong N dòng sau, dòng thứ i chứa số (ai < 2.109) Dữ liệu ra: Ghi file BAI1.OUT số tổng tìm Ví dụ: BAI1.INP BAI1.OUT 76 32 Bài 2(6 điểm) - Siêu nguyên tố Số siêu nguyên tố số nguyên tố mà bỏ số tuỳ ý chữ số bên phải phần lại tạo thành số nguyên tố Ví dụ 7331 số siêu nguyên tố có chữ số 733, 73, số nguyên tố Viết chương trình nhập liệu vào số nguyên N (0< N 1) cách dấu cách Kết quả: Trong tệp NGUOC.OUT dãy tương ứng có N số, với a0=K Ví dụ: NGUOC.INP NGUOC.OUT 10 21 42 54 75 87 21 46 21 52 65 96 Bài (5 điểm) CHUỖI ĐỐI XỨNG Một chuỗi gọi palindrome sau đảo ngược ký tự nó, ta nhận chuỗi ban đầu Viết chương trình kiểm tra chuỗi có phải palindrome hay không? Dữ liệu: Trong tệp DX.INP chứa nhiều chuỗi ký tự, chuỗi viết dòng (không chứa dấu cách đầu hay cuối chuỗi) Kết quả: Trong tệp DX.OUT kết kiểm tra chuỗi ký tự tương ứng có phải palindrome hay không (‘YES’ ‘NO’);YES đối xứng, NO không đối xứng Ví dụ: DX.INP DX.OUT ABCHHCBA YES ABHNBA NO Bài (6 điểm) CHỮ SỐ THỨ N Viết chương trình in chữ số thứ N dãy vô hạn số nguyên không âm chẵn: 0246810121416182022…(N có kiểu longint) Dữ liệu: Vào từ file văn CHUSO.INP gồm số nguyên dương N Kết quả: Ghi file văn CHUSO.OUT: • Chỉ số chữ số thứ N dãy số nói Ví dụ: CHUSO.INP CHUSO.OUT 28 15 Bài (4 điểm) DÃY SỐ Cho dãy số gồm N số nguyên (1 ≤ N ≤ 30000): a 1, a2,, , aN Trong ≤32000, i = 1,2, , N số nguyên K( K ≤64000) Yêu cầu: Hãy xác định xem dãy số cho có tìm hai số mà hiệu chúng K hay không? Dữ liệu: Vào từ file văn DAYSO.INP gồm: • Dòng chứa hai số nguyên N K • Dòng thứ i số N dòng chứa số hạng , i= 1, 2, , N Kết quả: Ghi file văn DAYSO.OUT: • Dòng ghi ‘YES’ câu trả lời khẳng định, ghi ‘NO’ câu trả lời phủ định • Nếu dòng thứ ghi ‘YES’ dòng thứ hai ghi tiếp hai số p, q hai số hạng dãy số cho thoả mãn điều kiện đặt (chỉ cần đưa lời giải) Hai số liên tiếp dòng ghi cách dấu cách Ví dụ: DaAYSO.I DAYSO.OUT DAYSO.INP DAYSO.OU NP T 78 YES -3 NO 17 3 Bài 5: QUA CẦU Trong chiến dịch công Thành phố, chiến sĩ biệt động cần phải qua cầu Thời gian qua cầu hết T phút Cầu trung đội có N lính gác nghiêm ngặt Hàng ngày, người lính thứ i gác từ thời điểm Ai đến thời điểm Bi( thời điểm tính phút) Các chiến sĩ qua cầu an toàn từ thời điểm lên cầu đến hết cầu không gặp phải người lính gác Cho trước lịch gác, em cho biết chiến sĩ biệt động ngày có qua cầu để vào thành phố không? Nếu qua em tìm cho chiến sỹ thời điểm xuất sớm để qua cầu Dữ liệu vào cho từ file văn GAC.INP có cấu trúc sau + Dòng ghi số nguyên dương N,T( 0

Ngày đăng: 16/08/2017, 14:52

Từ khóa liên quan

Mục lục

  • Ứng dụng giải thuật tìm kiếm theo chiều sâu

  • 1.1. LÍ DO CHỌN ĐỀ TÀI 1

  • 2.1. CƠ SỞ LÍ LUẬN 3

    • 2.3.1. Tìm kiếm tuần tự 5

    • 2.3.2. Tìm kiếm nhị phân 7

    • 1.1. LÍ DO CHỌN ĐỀ TÀI

    • 2.1. CƠ SỞ LÍ LUẬN

    • Hàng năm Sở giáo dục và đào tạo tỉnh Thanh Hóa luôn tổ chức kỳ thi chọn học sinh giỏi tỉnh môn Tin học. Kết quả học sinh giỏi cũng là một tiêu chi thi đua đánh giá chất lượng trường học, đánh giá năng lực sư phạm của giáo viên. Như vậy ta nhận thấy việc bội dưỡng học sinh giỏi là nhiệm vụ quan trọng trong công tác chuyên môn của mỗi bộ môn, giáo viên luôn cố gắng để truyền tải kiến thức để học sinh được bồi dưỡng có kết quả cao trong các kỳ thi. Và đối với bộ môn tin học cũng vậy, trong công tác Bồi dưỡng học sinh giỏi tin học, các đề thi thường xuất hiện các bài toán có độ phức tạp lớn, các bài toán liên quan đến xử lí các tình huống thực tế… trong đó thường có các bài toán trong đề thi có tình huống như: Bài toán tìm kiếm và sắp xếp dữ liệu trong một hệ thống thông tin, xử lí các vấn đề về bộ số, mảng, xâu...

    • Ta cũng thấy rằng: Bài toán tìm kiếm cũng thông dụng như bài toán sắp xếp. Bài toán tìm kiếm thường là “bạn” đồng hành với bài toán sắp xếp. Sắp xếp để tìm kiếm thuận lợi và ngược lại tìm kiếm tạo điều kiện cho sắp xếp. Vậy nội dung bài toán tìm kiếm là gì?

      • Bài toán tổng quát: Cần tìm kiếm một phần tử trong tập N đối tượng cho trước, chúng ta lưu dữ liệu phản ánh các đối tượng này vào mảng một chiều A[1..N], mỗi phần tử của mảng là một bản ghi gồm các trường lưu giá trị các đặc tính của một đối tượng. Trong các trường này giả sử chọn trường k làm khóa so sánh giữa các phần tử. Bài toán đặt ra là tìm một phần tử có giá trị khóa k0 trong tập N đối tượng này. Có 2 giải thuật thường được áp dụng để tìm kiếm dữ liệu là tìm tuần tự và tìm nhị phân. 

      • 2.3.1. Tìm kiếm tuần tự

      • 2.3.2. Tìm kiếm nhị phân

      •       NHẬN XÉT

      • Ví dụ khi dạy bài 4 – Bài toán thuật toán (tin học 10) ta có thể đưa ra một số bài tập như sau:

      • Ví dụ khi dạy bài 11 – Kiểu mảng (tin học 11) giáo viên có thể đưa ra các bài tập sau:

        • Duyệt các đỉnh

        • Độ phức tạp của thuật toán

        • Các đặc tính của thuật toán

          • Không gian

          • Thời gian

          • Ứng dụng của thuật toán tìm kiếm theo chiều rộng

            • Tìm các thành phần liên thông

            • Kiểm tra đồ thị hai phía

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

Tài liệu liên quan