SKKN một số biện pháp nâng cao hiệu quả công tác bồi dưỡng học sinh giỏi môn tin học bằng ngôn ngữ lập trình c++

95 15 0
SKKN một số biện pháp nâng cao hiệu quả công tác bồi dưỡng học sinh giỏi môn tin học bằng ngôn ngữ lập trình 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

SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN TRƯỜNG THPT YÊN THÀNH - - SÁNG KIẾN Đề tài: MỘT SỐ BIỆN PHÁP NÂNG CAO HIỆU QUẢ CÔNG TÁC BỒI DƯỠNG HỌC SINH GIỎI MÔN TIN HỌC BẰNG NGƠN NGỮ LẬP TRÌNH C++ NHĨM TÁC GIẢ: Tơ Thị Tường Nguyễn Minh Hải - Tổ Tốn Tin - Phó hiệu trưởng THỜI GIAN THỰC HIỆN: - ĐT: 0975905669 - ĐT: 0983681123 Năm học 2021 - 2022 - - MỤC LỤC NỘI DUNG Phần - ĐẶT VẤN ĐỀ: I - Lý chọn đề tài II – Mục đích đề tài III - Đối tượng, thời gian nghiên cứu IV - Phương pháp nhiệm vụ nghiên cứu V – Điểm đề tài Phần - NỘI DUNG I – CƠ SỞ LÝ LUẬN Tầm quan trọng việc bồi dưỡng học sinh giỏi Lợi việc lựa chọn NNLT C++ công tác BD HSG Một số lực đặc thù cần trọng công tác bồi dưỡng HSG Tin học II – THỰC TRẠNG VẤN ĐỀ Thực trạng công tác bồi dưỡng học sinh giỏi môn Tin học trường THPT Những thuận lợi khó khăn công tác bồi dưỡng học sinh giỏi môn Tin học trường THPT III – GIẢI QUYẾT VẤN ĐỀ Công tác đạo - Thắp lửa đam mê, hứng thú học tập cho HS 1.1/ Vai trị ban giám hiệu cơng tác BDHSG 1.2/ Vai trò giáo viên trực tiếp bồi dưỡng đội tuyển Phát học sinh có khả tham gia bồi dưỡng tuyển chọn học sinh dự thi học sinh giỏi 2.1/ Phát học sinh có khiếu hình thành đội tuyển 2.2/ Tuyển chọn học sinh tham gia dự thi Xây dựng nội dung chương trình, lập kế hoạch bồi dưỡng 3.1/ Một số lưu ý xây dựng nội dung chương trình bồi dưỡng 3.2/ Xây dựng chuyên đề bồi dưỡng 3.3/ Lập kế hoạch bồi dưỡng Triển khai bồi dưỡng học sinh giỏi 4.1 Rèn luyện lực tự học, tự kiểm tra đánh giá HS 4.1.1 Phát triển lực tự học 4.1.2 Tự kiểm tra đánh giá, rút kinh nghiệm học sinh Trang 3 3 4 5 5 7 9 10 11 11 12 12 12 12 14 14 14 14 15 4.2 Dạy học theo chuyên đề 4.2.1 Chuyên đề kiến thức C++ 4.2.2 Chuyên đề số học 4.2.3 Chuyên đề xử lý dãy số 4.2.4 Chuyên đề xử lý xâu ký tự 4.2.5 Chuyên đề đệ quy, quay lui 4.2.6 Chuyên đề quy hoạch động Tổ chức thi thử, đánh giá, kinh nghiệm làm thi 5.1 Tổ chức thi thử, đánh giá học sinh 5.2 Kinh nghiệm làm thi IV- HIỆU QUẢ CỦA SÁNG KIẾN Phần PHẦN KẾT LUẬN I - Kết luận chung II - Khả ứng dụng đề tài vào thực tiễn III - Khả mở rộng đề tài IV - Đề xuất PHỤ LỤC: Một số tập luyện tập, mở rộng nâng cao Hướng dẫn giải chương trình tham khảo 16 16 26 35 39 40 43 44 44 46 48 50 50 50 50 50 Chuyên đề số học Chuyên đề xử lý dãy số Chuyên đề xử lý xâu ký tự Chuyên đề đệ quy, quay lui Chuyên đề quy hoạch động Tài liệu tham khảo 52 67 74 88 91 94 52 DANH MỤC CÁC CHỮ VIẾT TẮT TRONG SÁNG KIẾN Nội dung Giáo dục phổ thông Giáo viên Học sinh Bồi dưỡng học sinh giỏi Ngôn ngữ lập trình Ngơn ngữ lập trình C++ Chương trình Viết tắt GDPT GV HS BD HSG NNLT C++ CTC Phần ĐẶT VẤN ĐỀ I LÝ DO CHỌN ĐỀ TÀI Trong thời đại ngày nay, ngành công nghệ thông tin (CNTT) nói chung Tin học nói riêng phát triển cách mạnh mẽ Mọi ngành nghề, lĩnh vực hay hoạt động xã hội đại cần tới góp mặt CNTT, đâu ứng dụng CNTT vơ quan trọng Vì vậy, nhu cầu nguồn nhân lực CNTT lớn tiếp tục tăng năm tiếp theo, việc nâng cao chất lượng nguồn nhân lực CNTT để đáp ứng yêu cầu phát triển hội nhập kinh tế quốc tế đất nước nhiệm vụ cấp thiết Là giáo viên môn Tin học, nhận thấy bên cạnh việc dạy học kiến thức phổ thông tin học ứng dụng việc dạy học lập trình quan trọng; trách nhiệm người giáo viên Tin học giúp học sinh hiểu hoạt động máy tính, am hiểu khoa học kỹ thuật, góp phần định hướng học sinh có lực đam mê Tin học vào đội ngũ nhân lực CNTT chất lượng cao đất nước Qua thời gian giảng dạy đơn vị mình, tơi BGH tin tưởng, phân công bồi dưỡng học sinh giỏi (HSG) Với niềm đam mê, ham học hỏi tơi ln tìm tịi nghiên cứu để có giải pháp tốt nhằm đem lại hiệu cao công tác bồi dưỡng Và đạt kết đáng tự hào, năm gần học sinh đạt giải cao kỳ học sinh giỏi cấp tỉnh Trong trình giảng dạy tơi ln tích cực trao đổi kinh nghiệm, thảo luận giải pháp nâng cao hiệu công tác BDHSG từ việc tổ chức, chọn đội tuyến đến nội dung, phương pháp, kỹ thuật dạy học với đồng nghiệp nhận thấy nhiều giáo viên gặp khó khăn công tác bồi dưỡng học sinh giỏi, đặc biệt với ngơn ngữ lập trình C++ giáo viên lại có nhiều hạn chế khó khăn nên tơi nghiên cứu cách nghiêm túc đề xuất số biện pháp hữu hiệu, khả thi để đạt kết cao Rất mong đồng nghiệp tiếp tục góp ý để đề tài tơi ngày hồn thiện ứng dụng rộng rãi thực tiễn II – MỤC ĐÍCH CỦA SÁNG KIẾN Nghiên cứu chia sẻ biện pháp góp phần nâng cao hiệu công tác BDHSG cấp tỉnh môn Tin học trường THPT địa bàn tỉnh Nghệ An III – ĐỐI TƯỢNG NGHIÊN CỨU: - Đối tượng học sinh giỏi khối 11, 12 - Nội dung chương trình theo u cầu cơng tác BDHSG - Phương pháp, kỹ thuật dạy học HSG IV – PHƯƠNG PHÁP NGHIÊN CỨU: Kết hợp nhiều phương pháp : Nghiên cứu lý thuyết, nghiên cứu từ thực tiễn dạy học, phân tích, tổng hợp, điều tra, thực nghiệm V - ĐIỂM MỚI CỦA ĐỀ TÀI NGHIÊN CỨU - Về lý luận: Góp phần làm rõ sở lí luận vấn đề bồi dưỡng học sinh giỏi, làm rõ khái niệm, vai trò đặc điểm yếu tố ảnh hưởng đến chất lượng công tác bồi dưỡng học sinh giỏi - Về thực tiễn: + Điều tra, đánh giá yếu tố ảnh hưởng đến hiệu công tác bồi dưỡng học sinh giỏi + Xác định tiêu chí lựa chọn học sinh có khiếu lập trình + Đánh giá lực HS thơng qua tiêu chí chọn lựa học sinh tham gia dự thi + Xây dựng nội dung chương trình bồi dưỡng học sinh giỏi mơn Tin học + Đưa quy trình tổ chức dạy học dạy học bồi dưỡng hsg môn Tin học + Sáng kiến đưa hệ thống tập thích hợp, xếp cách logic, hợp lí từ dễ đến khó nhằm giúp học sinh củng cố kiến thức, rèn luyện kỹ phát triển tư biết áp dụng Tin học vào thực tiễn + Thơng qua việc hướng dẫn giải tốn giáo viên rèn luyện kỹ lập trình cho học sinh cách định hướng, uốn nắn qua lời giải tập, qua góp phần tạo niềm tin hứng thú học tập Phần NỘI DUNG I - CƠ SỞ LÝ LUẬN: Tầm quan trọng việc bồi dưỡng học sinh giỏi - Nhân tài có vai trị quan trọng việc phát triển kinh tế, xã hội Trong đường lối đổi toàn diện đất nước ta giáo dục đào tạo, Đảng ta xác định: “Cùng với khoa học công nghệ, giáo dục đào tạo quốc sách hàng đầu nhằm nâng cao dân trí, đào tạo nhân lực, bồi dưỡng nhân tài ” - Việc bồi dưỡng học sinh giỏi, đào tạo nguồn nhân tài cho đất nước nhiệm vụ quan trọng cần thiết người tài nhân tố quan trọng để thúc đẩy xã hội phát triển - Đã từ lâu việc phát bồi dưỡng học sinh giỏi nhiệm vụ trọng tâm trường THPT nhà trường đặc biệt quan tâm giáo viên có nhiệm vụ phát bồi dưỡng học sinh giỏi - Tổ chức bồi dưỡng học sinh giỏi thi học sinh giỏi nhằm: Động viên khích lệ học sinh giáo viên dạy học, góp phần thúc đẩy việc cải tiến, nâng cao chất luợng giáo dục, đồng thời phát học sinh có khiếu để tiếp tục bồi dưỡng định hướng nghề nghiệp sở thích, sở trường, nhằm tạo nguồn nhân lực chất lượng cao cho đất nước Lợi việc lựa chọn NNLT C++ công tác BD HSG Trong quy định kỳ thi HSG Tin học, thí sinh lập trình ngơn ngữ Pascal, C++ (trên DevC++, Code Block), Python để giải toán Trong ba NNLT này, C++ ngôn ngữ nên lựa chọn hàng đầu có ưu điểm bật hẳn so với hai ngôn ngữ lập trình cịn lại số đặc điểm sau: - Ngơn ngữ lập trình C++ phù hợp để rèn luyện cho học sinh hiểu sâu thuật toán phân tích, đánh giá xác hiệu suất thuật tốn Bên cạnh C++ NNLT sử dụng phổ biến việc thiết kế, xây dựng phần mềm ứng dụng thực tiễn - Thư viện C++ có nhiều cấu trúc liệu khác cho học sinh linh hoạt lựa chọn cấu trúc phù hợp để lưu trữ xử lý tốn Bên cạnh C++ có hệ thống hàm có sẵn phong phú tìm min, max, tính tổng, xếp (với nhiều thuật tốn khác nhau), thay phần tử, tìm kiếm (tìm kiếm thường tìm kiếm nhị phân)… Do tiết kiệm thời gian tăng tốc độ viết code lên nhiều - Tốc độ thực thi chương trình nhanh C++ sử dụng trình biên dịch Thời gian thực thi thời gian biên dịch chương trình viết ngơn ngữ C++ đánh giá nhanh ngôn ngữ lập trình khác Đây tiêu chí quan trọng lập trình thi đấu kỳ thi học sinh giỏi cấp Một số lực đặc thù cần trọng công tác bồi dưỡng học sinh giỏi môn Tin học * Năng lực vận dụng, khai thác kiểu liệu, cấu trúc liệu Mỗi ngôn ngữ lập trình cung cấp số kiểu liệu đơn giản cho biết phạm vi giá trị lưu trữ, dung lượng nhớ cần thiết để lưu trữ phép toán tác động lên liệu Kiểu liệu có cấu trúc kiểu liệu tạo từ phần tử có kiểu liệu đơn giản cách Chúng đặc trưng kiểu liệu phần tử điều quan trọng phương pháp cấu thành kiểu liệu mới, phương pháp truy nhập vào kiểu liệu có cấu trúc Các đề thi học sinh giỏi ngày thường có yêu cầu cao phạm vi liệu cần xử lý có giới hạn dung lượng nhớ nên việc sử dụng cấu trúc liệu cần phải cân nhắc sử dụng cách hợp lý để tránh lãng phí mặt nhớ thuận lợi, hiệu việc xử lý Đối với học sinh giỏi tin học yêu cầu học sinh phải hiểu biết cấu trúc liệu mà ngôn ngữ lập trình cung cấp; có khả vận dụng cấu trúc liệu để tổ chức xử lý liệu đặc thù cho lớp toán * Năng lực phân tích đánh giá độ phức tạp thuật toán Mỗi thuật toán giải toán, có nhiều thuật tốn khác giải toán Do vậy, cần thiết phải lựa chọn thuật toán tốt để giải toán cho Khi đánh giá lựa chọn thuật toán người ta thường vào tiêu chí như: + Thuật toán đơn giản, dễ hiểu, dễ cài đặt - dễ viết chương trình; + Số lượng nhớ sử dụng nhất; + Thuật tốn có độ phức tạp thấp - thực chương trình thời gian ngắn nhất; Trong tiêu chí người ta coi trọng tiêu chí độ phức tạp thuật tốn thấp thực chương trình tốn thời gian thời gian dạng tài nguyên không tái tạo Các đề thi học sinh giỏi mơn Tin học có u cầu ngày cao độ khó lẫn thời gian thực chương trình Chúng ta thường thấy thi có ghi yêu cầu thời gian thực giây việc cho điểm ứng với miền giá trị tham số Vì vậy, hiểu rõ khái niệm độ phức tạp thuật toán cách tính tốn, ước lượng độ phức tạp giải thuật để lựa chọn thuật toán tối ưu giải liệu lớn toán quan trọng, yêu cầu học sinh phải thường xuyên học tập rèn luyện * Năng lực viết chương trình triển khai giải thuật Việc viết chương trình bao gồm việc lựa chọn cấu trúc liệu để diễn tả thuật tốn Kỹ viết chương trình quan trọng Nó liên quan tới phong cách, thói quen, tay nghề lập trình chí yếu tố tâm lý lúc làm việc Khi giải toán tin phần chuẩn bị em thường dừng lại bước đoán nhận giải thuật bắt tay vào việc viết chương trình Vì chương trình thường khơng hiệu quả, dễ mắc lỗi, mà việc tìm sửa lỗi nhiều khó khăn, thời gian, có phải thời gian ngang với thời gian lập trình Để khắc phục điều em cần phải viết sơ đồ cấu chương trình trước vào viết chi tiết Kỹ trình bày giải thuật kỹ vô quan trọng, cần rèn luyện kỹ từ sớm, toán đơn giản suốt trình học em thi Viết chương trình triển khai giải thuật vấn đề nghệ thuật, triển khai dù có thuật tốn tốt thời gian thực chương trình đội lên cao II - THỰC TRẠNG VẤN ĐỀ Thực trạng công tác bồi dưỡng học sinh giỏi môn Tin học trường THPT Công tác bồi dưỡng HSG Tin học trường THPT gặp số khó khăn định cơng tác tuyển chọn học sinh bồi dưỡng, xây dựng chương trình, nội dung bồi dưỡng, quy trình bồi dưỡng giảng dạy, tài liệu bồi dưỡng Trong năm gần đây, vị trí, vai trị mơn Tin học có nhiều thay đổi song chưa đưa vào kỳ thi mang tính chất đại trà, học sinh phụ huynh chưa quan tâm đến mơn học này, phận học sinh ý đến môn học, tự thân em coi mơn phụ Bởi khơng học Tin học diễn tẻ nhạt, nặng nề, học sinh quan tâm làm giáo viên hứng thú nhiệt huyết Chính lượng giáo viên Tin học đam mê chuyên môn, chuyên tâm với nghề cịn nên ảnh hưởng khơng nhỏ đến việc bồi dưỡng học sinh giỏi Trong thực tế, quan niệm sai lầm số người “thi học nấy”, mơn tin mơn phụ - khơng thi THPT quốc gia, khơng có khối dùng để xét vào trường cao đẳng, đại học Quan niệm khơng có học sinh, mà cịn có phụ huynh, chí đội ngũ giáo viên Đa số học sinh không muốn tham gia bồi dưỡng học sinh giỏi sợ thời gian ảnh hưởng môn học khác, phụ huynh không ủng hộ, đội ngũ giáo viên có người khơng muốn cho học sinh thi HSG mơn Tin Chính khó khăn ln tạo áp lực cho giáo viên tham gia dạy bồi dưỡng học sinh giỏi Vì ảnh hưởng không nhỏ đến kết quả, chất lượng học sinh giỏi môn Tin học trường trung học phổ thơng Những thuận lợi khó khăn công tác bồi dưỡng học sinh giỏi môn Tin học trường THPT * Thuận lợi: - Ban giám hiệu trường THPT quan tâm đến cơng tác bồi dưỡng học sinh giỏi có đạo, quan tâm sâu sát kịp thời, có kế hoạch cụ thể lâu dài cho công tác bồi dưỡng HSG - Rất nhiều giáo viên có trình độ chun mơn vững vàng, có kinh nghiệm nhiệt huyết lớn công tác bồi dưỡng HSG trường sẵn sàng giúp đỡ chia sẻ, hỗ trợ cơng tác BD HSG - Có nhiều trang mạng lập trình phổ thơng giúp học sinh học tập, làm bài, thi thử, chấm tự động để em đánh giá rèn luyện khả thân Đây yếu tố quan trọng tạo nên kết học sinh giỏi tỉnh hàng năm cao * Khó khăn: - Giáo viên dạy bồi dưỡng vừa phải bảo đảm chất lượng đại trà, vừa phải hoàn thành tiêu chất lượng mũi nhọn cơng tác kiêm nhiệm cường độ làm việc tải việc đầu tư cho cơng tác bồi dưỡng HSG có phần bị hạn chế - Giáo viên dạy bồi dưỡng phải tự soạn chương trình dạy, theo kinh nghiệm thân, tự nghiên cứu, tự sưu tầm tài liệu: + Tài liệu mơn Tin học khơng nhiều Việc tìm kiếm tài liệu dạy học phù hợp trình độ học sinh vất vả + Hệ thống tập ỏi, rời rạc nên việc tổng hợp tập đề thi thành dạng tập phục vụ dạy học nhiều thời gian + Rất tài liệu, sách nói đến tiểu tiết để cải tiến chương trình - Học sinh học chương trình khóa phải học q nhiều mơn, lại phải học thêm nhiều mơn khác, cộng thêm chương trình bồi dưỡng HSG nên hạn chế thời gian tự học Các em đầu tư thời gian cho việc học bồi dưỡng HSG, kết khơng cao điều tất yếu - Sau kỳ thi học sinh giỏi mơn Tin thường khơng có đáp án Nếu có đáp án tham khảo việc đọc hiểu đáp án khó đáp án thường khơng có ý tưởng thuật toán kèm theo Thực tế, qua kỳ thi HSG tỉnh Nghệ An có nhiều học sinh, giáo viên khó hiểu thi làm điểm thi thấp khó hiểu kéo dài đáp án tham khảo test chấm cơng bố Vì vậy, q trình giảng dạy giáo viên phải ln tích cực trao đổi kinh nghiệm, thảo luận nội dung, phương pháp, kỹ thuật dạy học với đồng nghiệp nhà trường để nâng cao chất lượng giáo dục môn III – GIẢI QUYẾT VẤN ĐỀ Công tác đạo - Thắp lửa đam mê, hứng thú học tập cho HS 1.1 Vai trò ban giám hiệu công tác BDHSG Ban giám hiệu nhà trường quan tâm đạo sát tới công tác bồi dưỡng học sinh giỏi trường, coi nhiệm vụ trị quan trọng hàng đầu trường; ln nghiên cứu để tìm biện pháp đạo bồi dưỡng học sinh giỏi nhằm nâng cao chất lượng bồi dưỡng học sinh giỏi cụ thể là: - Nâng cao nhận thức công tác bồi dưỡng học sinh giỏi: + Thường xuyên gặp gỡ, trao đổi, nắm bắt tâm tư nguyện vọng, đề xuất, kiến nghị giáo viên, học sinh để tìm biện pháp đáp ứng, đặc biệt vấn đề tài liệu, công cụ học tập … + Luôn quan tâm đến công tác bồi dưỡng giáo viên: bồi dưỡng tư tưởng, trị, đạo đức, phẩm chất nghề nghiệp; lực chuyên môn; kỹ sư phạm; kiến thức kinh nghiệm thực tế bồi dưỡng kiến thức bổ trợ + Làm tốt cơng tác động viên, khen thưởng thích đáng giáo viên, học sinh có kết cao trình bồi dưỡng - Xây dựng kế hoạch công tác bồi dưỡng học sinh giỏi: + Xây dựng kế hoạch phải dài hạn, khoa học, chi tiết, cụ thể, có chiều sâu có tính khả thi cao + Trong kế hoạch phải thể mục tiêu, hình thức thi đua khen thưởng, kinh phí cần sử dụng + Kế hoạch phải toàn thể cán bộ, giáo viên học sinh nắm vững, kế hoạch hội thảo rút kinh nghiệm việc dạy đội tuyển - Phân công giáo viên trực tiếp bồi dưỡng đội tuyển học sinh: Vai trị người giáo viên cơng tác phát hiện, bồi dưỡng học sinh giỏi quan trọng Có thể nói giáo viên bồi dưỡng yếu tố quan trọng định kết bồi dưỡng Vì tuyển chọn phân cơng giáo viên bồi dưỡng, cán quản lí phụ trách công tác chuyên môn cần dựa tiêu chí như: + Lựa chọn giáo viên có trình độ lực, chun mơn, nghiệp vụ cao + Nhiệt tình, yêu nghề, say sưa với nghề, ham học hỏi, tự bồi dưỡng cầu tiến, có ý thức kỉ luật cao chun mơn + Có sức khoẻ, tự tin, giàu kinh nghiệm, có tính sáng tạo giảng dạy + Cần phân công, cần giao nhiệm vụ cho giáo viên từ lớp 10 đến lớp 12 để giáo viên có trách nhiệm kế hoạch bồi dưỡng sớm - Tổ chức đạo bồi dưỡng học sinh giỏi: 10 Bài 29: Đếm xâu (có chồng lấn khơng chồng lấn lên nhau) Viết chương trình nhập vào xâu ký tự s1, s2 Hãy cho biết số lần xuất xâu s2 xâu s1 không chồng lấn số lần xuất xâu s2 s1 có chồng lấn Ví dụ: s1= “ababababaab” S2= “aba” Kết quả: Số lần xuất không chồng lấn là: Số lần xuất có chồng lấn là: Hướng dẫn: Cách 1: Sử dụng hàm tìm kiếm xuất xâu s2 xâu s1 Khi tìm thấy s2 s1, ta xóa (hoặc thay xâu “”) tồn phần tìm thấy ký tự vị trí tìm thấy tìm tiếp Nếu dung câu lệnh find() có tham số vị trí bắt đầu khơng cần xóa Cách 2: Ta dùng lệnh while duyệt chép đoạn s1 có độ dài l2 (độ dài xâu s2) để so sánh với s2, yêu cầu tìm thầy ta nhảy qua l2 vị trí Chương trình giải theo 1: 81 Bài 30: Đảo từ xâu Cho xâu ký tự s, từ xâu liên tiếp không chứa dấu cách Một xâu ký tự gồm nhiều từ Em viết chương trình nhập vào xâu ký tự s Đưa xâu với từ viết theo chiều ngược lại Ví dụ: s = “di xe dap” kết là: kq =“dap xe di” Hướng dẫn: Cách 1: Duyệt ký tự xâu: Duyệt ngược xâu từ sau trước, lần tìm thấy dấu cách ký tự xâu, đọc ký tự từ vị trí đến vị trí dấu cách gặp trước Cách 2: Duyệt tìm vị trí chứa dấu cách copy xâu dấu cách nối vào xâu kết Chương trình: Chương trình viế theo cách Bài 31: Tổng chữ số Cho số nguyên dương N (số chữ số N khơng q 10 6) Hãy tính tổng số chẵn dãy Hướng dẫn: Số nguyên N có giá trị lớn nên ta xử lý N theo kiểu số ta đọc N vào xâu ký tự để giải Để kiểm tra tính chẵn lẻ tính tổng chữ số, ta xử lý mã ASCII ký tự số 82 Chương trình: Bài 32: SỐ MỘT Xét số nguyên dương K có dạng biểu diễn hệ thập phân có N chữ số bao gồm chữ số 1, ví dụ với N = có K = 11, N = có K = 111 Yêu cầu: Với N cho trước, tính K2 ( ≤ N ≤ 103) Ví dụ: Với N = K =111111111 Kết quả: K2 = 12345678987654321 Hướng dẫn: Vì số lượng chữ số N số K lớn, nên ta xử lý theo liệu kiểu số mà phải xử lý theo liệu kiểu xâu Nhớ nguyên tắc thực phép nhân số với số có nhiều chữ số: ta lấy số nhân với chữ số số nhân từ phải sang trái, với kết ta đặt dịch sang trái thêm hàng, cộng dọc kết theo hàng từ phải sang trái ta có kết Với toán số K gồm chữ số 1, nên kết hàng i (i tăng dần từ đến n sau giảm dần từ n-1 1) tổng i số giá trị nhớ hàng bên trái Chương trình: 83 Bài 33: Ghép số Cho n số nguyên dương a1, a2, ,an (1 < n ≤ 100), số không vượt 109 Từ số người ta tạo số nguyên cách ghép tất số cho, tức viết liên tiếp số cho với Ví dụ, với n = số 123, 124, 56, 90 ta tạo số sau: 1231245690, 1241235690, 5612312490, 9012312456, 9056124123, Có thể dễ dàng thấy rằng, với n = 4, ta tạo 24 số Trong trường hợp này, số lớn tạo 9056124123 Yêu cầu: Cho n số nguyên số a1, a2, ,an nằm dòng Hãy xác định số lớn tạo ghép số cho thành số Hướng dẫn: Lưu số dạng mảng kiểu xâu, thực xếp mảng theo thứ tự tăng dần theo tiêu chí xếp phần tử a[i] đứng trước phần từ a[j] (a[i] ghép với a[j]) > (a[j] ghép với a[i]) Chương trình: 84 Bài 34: Xóa số: Cho số ngun dương N k (số chữ số N không 106, k nhỏ số chữ số N) u cầu: Hãy tìm cách xóa k chữ số N để chữ số lại (vẫn nguyên thứ tự) tạo thành số có giá trị lớn Hướng dẫn: Vì giá trị N lớn nên ta phải giải với kiểu liệu kiểu xâu Việc xóa k chữ số để lấy chữ số cịn lại kết tương đương với việc chọn N-k chữ số trật tự để thu kết số lớn Để tìm chữ số lớn cần lấy, ta xây dựng hàm vtm(i,j) đưa vào vị trí đầu cuối i-j, lấy vị trí phần tử lớn thuộc đoạn i-j Lần lấy phần tử max số vt đoạn [0, k], sau tìm max với số đầu [vt+1, k+1]… Chương trình: 85 Bài 35 Thành phố xanh (Đề thi HSG lớp 12 - Tỉnh Nghệ An - Năm học 2021-2022) Thành phố Bình có nhiều đường trồng xanh Mỗi xanh đặt tên chữ Latinh hoa Theo Bình, đoạn đường gọi xinh đẹp Nếu đoạn đường loại cây(Tức đoạn đường đó, trồng vị trí liên tiếp, có tên giống thuộc đường) Yêu cầu: Hãy giúp Bình tìm đoạn đường xanh đẹp gồm nhiều xanh tất đường thành phố Dữ liệu: cho file Xanhdep.Inp gồm: - Dòng ghi số nguyên dương N ( N109 lại không giải Vậy ta sử dụng đệ quy tư tưởng tìm kiếm nhị phân để giải tốn sau Chương trình: 90 Bài 39: Tạo sơn tổng hợp Từ N loại sơn ban đầu có số hiệu 1, 2, , N (1≤N≤9), người ta tạo nhiều loại sơn tổng hợp khác cách trộn số loại sơn lại với theo liều lượng loại Khi tham gia trộn để loại sơn tổng hợp đó, loại sơn khác đưa vào từ vị trí khác liều lượng loại sơn phụ thuộc vào thứ tự vị trí đưa vào loại sơn Liều lượng loại sơn mà khác trộn cho loại sơn tổng hợp khác Hãy liệt kê tất phương án trộn M loại sơn (M≤N) N loại sơn cho để có loại sơn tổng hợp Dữ liệu vào: Tệp SON.INP gồm số N, M Dữ liệu ra: Là tệp văn SON.OUT có cấu trúc: Mỗi dịng ghi số hiệu M loại sơn theo thứ tự đưa vào trộn để tạo loại sơn tổng hợp Dòng cuối ghi số lượng loại sơn tổng hợp tạo Ví dụ: SON.INP SON.OUT 12 13 21 23 31 32 Hướng dẫn: Đây toán xuất tất chỉnh hợp chập M N số lượng chỉnh hợp Vậy nên ta dùng thuật toán đệ quy quay lui để giải toán Bài tương tự Hoán vị số từ đến n, khác chỗ điều kiện để xuất i=M cần dùng thêm biến dem để đếm số lượng loại sơn Chương trình: 91 5) Bài tập chủ đề quy hoạch động: Bài 40: Dãy đan dấu dài nhất: Cho dãy số ngun A = a1,a2 ,an Hãy xố phần tử để phần tử lại tạo thành dãy đan dấu có nhiều phần tử Dữ liệu vào: file văn QHĐ.INP, gồm dòng: Dòng 1: ghi số N số lượng phần tử dãy N

Ngày đăng: 28/12/2022, 19:13

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

Tài liệu liên quan