Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
264,26 KB
Nội dung
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 TỐ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 cịn gặp nhiều khó khăn u cầu học sinh phải có kiến thức liên mơn mơn Tố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 cịn 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ơi ý 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 tố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 q 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 tố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 tốn để em tư tốt học mơn học khác với đề tài tơi khơng có tham muốn ngồi 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 sinh có họ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 q 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 cịn phụ thuộc vào phương pháp tiến hành lẽ đề tài nghiên cứu tơi 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ỏi phươ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ọc phươ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 ln 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 tốn có độ phức tạp lớn, tốn liên quan đến xử lí tình thực tế… thường có tốn đề thi có tình như: Bài tố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 tốn tìm kiếm thơng dụng tốn xếp Bài tốn tìm kiếm thường “bạn” đồng hành với tố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 tố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ụ: các 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ố ngun, tìm số hồ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 tố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ố ngun tố số nguyên không vượt số nguyên dương N cho trước Ví dụ 3: Tìm học sinh có họ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 tốn Ngồi tốn tìm kiếm thường gắn liền với tố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ố ngun tố khơng vượt q 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 cịn 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 tố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 tốn phức tạp Vì tơi chọn thuật tốn đặc trưng thuật tốn tìm kiếm nội, thuật tốn tìm kiếm chiều rộng, thuật tố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 q 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 tốn tìm kiếm cịn 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 tốn tìm kiếm bỡ ngỡ, khơng biết áp dụng thuật tố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 tốn tối ưu Để có thuật tố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 Tố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 TỐN TÌM KIẾM NỘI Ðể đơn giản việc trình bày giải thuật, tốn đặc tả sau: Bài tốn tổng qt: 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 là tìm tuần tự và 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 k , giá trị ghi k 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 bản ghi mà biến đếm có giá trị kết luận tập đối tượng cho khơng có 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 2 8 5 1 6 4 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 tố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 tố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; 16 Ghi chú: Nếu sử dụng một ngăn xếp thay hàng đợi thuật tốn trở thành thuật tốn tìm kiếm theo chiều sâu Các đặc tính thuật tốn Khơng gian Nếu V là tập hợp đỉnh đồ thị và là số đỉnh khơng gian cần dùng thuật toán là Thời gian Nếu V, và E là tập hợp đỉnh cung đồ thị, thời gian thực thi thuật tốn là vì 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 tốn tìm kiếm theo chiều rộng Thuật tố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 một thành phần liên thơng Thuật tốn Cheney cho việc dọn rác Tìm đường ngắn nhất giữa hai đỉnh u và v (với chiều dài đường tính số cung) Kiểm tra xem đồ thị có là đồ thị hai phía Thuật tốn Cuthill–McKee Thuật tốn Ford–Fulkerson để tìm luồng cực đại trong mạng Tìm thành phần liên thơng Tập hợp đỉnh thăm thuật tố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 tố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 q 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ĩ ngồi việc tìm tịi thuật tốn tối ưu cho việc giải tồn tơi cị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 17 Trong thực tiển toán tìm kiếm phổ biến, tốn thường xuyên xuất nhiều thi chọn học sinh giỏi Tỉnh Vì tơi 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 tố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 tố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 18 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 đư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 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 tố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 qt để 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 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 19 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 20 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 tơi đề nghị số đề thi cho học sinh để học sinh tự rèn luyện, phát triển lực, hồ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 Cong hoa xa hoi Tachtu.ou t Cong hoa xa hoi Tachtu.inp G i a o vien Tachtu.ou t G i a 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 15 55 76 Solom.out 33 21 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 abc Tenth.out Abc acb bac bca cab cba Tenth.inp xy Tenth.out xy yx ĐỀ 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); 22 - 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 cị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 10 46 NGUOC.OUT 21 42 54 75 87 21 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 ABCHHCBA ABHNBA DX.OUT YES 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 27 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.OU DAYSO.IN DAYSO.O NP T P UT 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