(Skkn 2023) một số kỹ thuật lập trình nâng cao giúp đạt hiệu quả cao trong bồi dưỡng học sinh giỏi các cấp

97 3 0
(Skkn 2023) một số kỹ thuật lập trình nâng cao giúp đạt hiệu quả cao trong bồi dưỡng học sinh giỏi các cấp

Đ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 SÁNG KIẾN KINH NGHIỆM ĐỀ TÀI MỘT SỐ KỸ THUẬT LẬP TRÌNH NÂNG CAO GIÚP ĐẠT HIỆU QUẢ CAO TRONG BỒI DƯỠNG HỌC SINH GIỎI CÁC CẤP Lĩnh vực: Tin học Tác giả: Nguyễn Thị Luận Tổ: Toán – Tin Năm thực hiện: 2021 - 2023 Số ĐT: 0989868255 Email: nguyenluan.dc5@gmail.com NGHỆ AN, NĂM 2023 MỤC LỤC Trang MỞ ĐẦU …………………………………………………………………….1 1.1 Lý chọn đề tài ……………………………………………………… 1.2 Mục đích nghiên cứu …………………………………………………….1 1.3 Đối tượng nghiên cứu ………………………………………………… 1.4 Phương pháp nghiên cứu ……………………………………………… 1.5 Phạm vi nghiên cứu …………………………………………………… 2 NỘI DUNG NGHIÊN CỨU ………………………………………………….2 2.1 Cơ sở lý luận .…… 2.1.1 Khái niệm về kỹ thuật lập trình …………………………………….….2 2.1.2 Vai trị kỹ thuật lập trình ………………………………………… 2.2 Thực trạng …………………………………… ……………………… 2.3 Các kỹ thuật lập trình nâng cao ………………………………………….3 2.3.1 Kỹ thuật mảng đánh dấu ……………………………………………….3 2.3.1.1 Bài tốn - Sớ nhỏ …………………………………………… 2.3.1.2 Bài tốn – Sàng ngun tớ ……………………………………… 2.3.2 Kỹ thuật mảng đếm …………………………………………… ….….7 2.3.2.1 – Bài tốn - Tần sớ xuất ……………………………………….7 2.3.2.2 Bài toán – Hai lớp học …………………………………………… 2.3.2.3 Bài tốn – Sắp xếp đếm phân phới ……………………………… 10 2.3.3 Kỹ thuật quay lui …………………………………………………… 11 2.3.3.1 Bài toán – In tất các hoán vị n sớ tự nhiên …….13 2.3.3.2 Bài tốn – Liệt kê các dãy nhị phân độ dài N ……………… 14 2.3.5 Kĩ thuật tham lam (greedy) ………………………………………… 14 2.3.5.1 Bài tốn – Tìm đường ngắn ………………………………15 2.3.5.2 Bài toán – Xếp lịch ……………………………………………… 17 2.3.4 Kỹ thuật quy hoạch động …………………………………………… 19 2.3.4.1 Bài tốn – Bài toán kinh điển tìm sớ Fibonaci thứ n …………… 20 2.3.4.2 Bài toán – Vali ………………………………………………… 21 2.4 Đánh giá các kỹ thuật ………………………………………………… 22 2.4.1 Đánh giá các kỹ thuật thông qua thời gian thực …………………22 2.4.1.1 Bài toán – Sàng nguyên tớ ……………………………………….…23 2.4.1.2 Bài tốn – Dãy liên tiếp ………………………………………24 2.4.1.3 Bài tốn - Trị chơi sớ may mắn …………………………… 25 2.4.1.4 Bài tốn - Dãy ngun tớ …………………………………………27 2.4.1.5 Bài tốn – Liệt kê các hoán vị …………………………………….28 2.4.2 Đánh giá ưu điểm và hạn chế các kĩ thuật …………………… 29 2.4.2.1 Kỹ thuật mảng đếm ……………………………………………… 30 2.4.2.2 Kỹ thuật mảng đánh dấu ………………………………………… 30 2.4.2.3 Kỹ thuật quay lui ………………………………………………… 30 2.4.2.4 Kỹ thuật tham lam ………………………………………………… 31 2.4.2.5 Kỹ thuật quy hoạch động ………………………………………… 31 2.5 Bài toán áp dụng ……………………………………………………… 32 2.5.1 Bài toán – DỰ BÁO THỜI TIẾT………………………………… 32 2.5.2 Bài tốn - LẬP TRÌNH …………………………………………… 33 2.5.3 Bài toán – PALIN ………………………………………………… 34 2.5.4 Bài toán – QUÂN HẬU ………………………………………… 35 2.5.5 Bài tốn – TÌM SỐ ………………………………………………….36 2.5.6 Bài tốn - BEAUTY ……………………………………………… 36 2.5.7 Bài toán – DUY NHẤT ĐẦU TIÊN ……………………………… 37 2.5.8 Bài toán – SỐ HỒN HẢO …………………………………… .38 2.5.9 Bài tốn – BỐ TRÍ PHỊNG HỌP ……………………………….…38 2.5.10 Bài tốn 10 – BÁN SÁCH ………………………………………… 39 2.5.11 Bài toán 11 – PHÂN HẠNG NGỌC TRAI …………………………40 2.5.12 Bài toán 12 – XẾP GẠCH ……………………………………… …41 2.5.13 Bài toán 13 – PHÂN TÍCH MỘT SỐ BẰNG TỔNG CÁC SỐ …….41 2.5.14 Bài toán 14 – DÃY CON ĐƠN ĐIỆU TĂNG DÀI NHẤT …… …42 2.6 Kinh nghiệm bồi dưỡng HSG ……………………………………….….43 2.7 Kết đạt được ………………………………………………… ….44 2.7.1 Kết thực nghiệm ………………………………………………….44 2.7.2 Kết khảo sát cấp thiết và tính khả thi các kỹ thuật lập trình nâng cao …………………………………………………………………… 45 2.7.2.1 Mục đích khảo sát ……………………………………………….….45 2.7.2.2 Nội dung và phương pháp khảo sát ……………………………… 45 2.7.2.2.1 Nội dung khảo sát …………………………………………… ….45 2.7.2.2.2 Phương pháp khảo sát và thang đánh giá …………………………45 2.7.2.3 Đối tượng khảo sát ……………………………………………….…46 2.7.2.4 Kết khảo sát về cấp thiết và tính khả thi các giải pháp đề xuất ………………………………………………………………………… 47 2.7.2.4.1 Sự cấp thiết các giải pháp đề xuất …………………………47 2.7.2.4.2 Tính khả thi các giải pháp đề xuất ……………… …………48 2.7.3 Kết đạt được công tác bồi dưỡng HSG …………………….48 KẾT LUẬN VÀ KIẾN NGHỊ ……………………………………….…… 49 3.1 Kết luận …………………………………………………………………49 3.2 Kiến nghị ………………………………………………………….…….50 TÀI LIỆU THAM KHẢO ……………………………………………… ……51 PHỤ LỤC ………………………………………………………………… 52 Kỹ thuật mảng đánh dấu ………………………………………………….52 1.1 Bài tốn 1- Sớ nhỏ …………………………………………………52 1.2 Bài toán – Sàng nguyên tố ……………………………………………52 Kỹ thuật mảng đếm ……………………………………………………….53 2.1 Bài tốn – Tần sớ xuất ………………………………………… 53 2.2 Bài toán – Hai lớp học ……………………………………………… 54 2.3 Bài tốn – Sắp xếp đếm phân phới ………………………………… 55 Kĩ thuật quay lui ………………………………………………………… 56 3.1 Bài toán 1: In tất các hoán vị n số tự nhiên (0 N; for (int i =1; i > A[i]; // Đọc phần tử thứ i mảng A B[A[i]] = 1; // Đánh dấu phần tử A[i] có xuất mảng A } Sau đánh dấu việc tìm sớ nào chưa xuất trở nên đơn giản Duyệt từ đầu mảng đến ći mảng B: Gặp sớ nào mà B[i]=0 dừng lại; i là sớ ngun dương chưa xuất mảng A Ta có đoạn code sau: i=1; while (B[i]= =1 ) i++; Minh họa bước quá trình đánh dấu: 67125326 Kết chạy bước quá trình đánh dấu - Ban đầu B[i] = với mọi i (1≤i ≤ 106) 0 0 0 0…0 - Lần 1: - Lần + Đọc A[1]=6 + Đọc A[5]=5 + Đánh dấu B[6] = + Đánh dấu B[5] = 0 0 0 …0 1 0 1 0…0 - Lần 2: - Lần + Đọc A[2]=7 + Đọc A[6]=3 + Đánh dấu B[7] = + Đánh dấu B[3] = 0 0 1 0…0 1 1 1 0…0 void xuly() {d[0]=0; //So doan it nhat tu den i for(i=1;i>s; s.insert(0," "); xuly(); cout

Ngày đăng: 27/07/2023, 08:16

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

  • Đang cập nhật ...

Tài liệu liên quan