1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lý do chọn đề tài

59 4 0

Đ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

Thông tin cơ bản

Tiêu đề Một Số Kỹ Thuật Lập Trình Cơ Bản Giúp Đạt Hiệu Quả Cao Trong Bồi Dưỡng Học Sinh Giỏi
Tác giả Nguyễn Thị Luận, Trần Thị Thủy
Trường học Trường THPT Diễn Châu 5
Chuyên ngành Tin học
Thể loại sáng kiến kinh nghiệm
Năm xuất bản 2022
Thành phố Nghệ An
Định dạng
Số trang 59
Dung lượng 838,4 KB

Cấu trúc

  • 1. MỞ ĐẦU (2)
    • 1.1. Ly ́ do cho ̣n đề tài (2)
    • 1.2. Mu ̣c đích nghiên cứu (2)
    • 1.3. Đối tươ ̣ng nghiên cứu (2)
    • 1.4. Phương pháp nghiên cứu (2)
    • 1.5. Phạm vi nghiên cứu (2)
  • 2. NỘI DUNG NGHIÊN CỨU (3)
    • 2.1. Cơ sở lý luâ ̣n (3)
    • 2.2. Thực trạng (3)
    • 2.3. Các kĩ thuật lập trình cơ bản (3)
      • 2.3.1. Kỹ thuật lính canh (Sentinel) (3)
        • 2.3.1.1. Bài toán 1 – Tìm max / min (3)
        • 2.3.1.2. Bài toán 2- Tìm kiếm tuần tự (5)
      • 2.3.2. Kỹ thuật đặt cờ hiệu (Flag) (8)
        • 2.3.2.1. Bài toán 1 - Kiểm tra tính chất một số (8)
        • 2.3.2.2. Bài toán 2 - Kiểm tra tính chất mảng (10)
      • 2.3.3. Kỹ thuật nhớ (11)
        • 2.3.3.1. Bài toán 1 - Tìm dãy Fibonaci (12)
        • 2.3.3.2. Bài toán 2 - Tính tổng (13)
      • 2.3.4. Kỹ thuật đệ quy (15)
        • 2.3.4.1. Bài toán 1 - Giai thừa (15)
        • 2.3.4.2. Bài toán 2 - Fibonaci (16)
        • 2.3.4.3. Bài toán 3 – Tìm UCLN và BCNN (17)
      • 2.3.5. Kỹ thuật chia để trị (18)
        • 2.3.5.1. Bài toán 1 - Tìm kiếm nhị phân (18)
        • 2.3.5.2. Bài toán 2 - Sắp xếp nhanh (quick sort) mảng một chiều (20)
      • 2.3.6. Kỹ thuật duy trì mảng sắp xếp (23)
        • 2.3.6.1. Bài toán 1 - Dãy con cấp số cộng (23)
        • 2.3.6.2. Bài toán 2 - Dãy con không giảm (26)
    • 2.4. Đánh giá các kĩ thuật (28)
      • 2.4.1. Đánh giá các kĩ thuật (28)
        • 2.4.1.1. Bài toán 1 (28)
        • 2.4.1.2. Bài toán 2 (29)
        • 2.4.1.3. Bài toán 3 (30)
        • 2.4.1.4. Bài toán 4 (32)
      • 2.4.2. Đánh giá ngôn ngữ (34)
    • 2.5. Bài toán áp dụng (34)
      • 2.5.1. Bài toán 1 – SOCAP (34)
      • 2.5.2. Bài toán 2 – SEQ (35)
      • 2.5.3. Bài toán 3 – OE (37)
      • 2.5.4. Bài toán 4 – THÁP HÀ NỘI (39)
      • 2.5.5. Bài toán 5 – LẬP TRÌNH (40)
      • 2.5.6. Bài toán 6 – CHIA KẸO (42)
      • 2.5.7. Bài toán 7 – SỐ NGUYÊN TỐ TƯƠNG ĐƯƠNG (45)
      • 2.5.8. Bài toán 8 – DÃY CON TỔNG LỚN NHẤT (46)
      • 2.5.9. Bài toán 9 – SỐ SIÊU NGUYÊN TỐ (46)
    • 2.6. Kết quả thực nghiệm (47)
    • 2.7. Kết quả đạt được (49)
  • 3. 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)
    • 1. Bài toán 7: SỐ NGUYÊN TỐ TƯƠNG ĐƯƠNG (52)
    • 2. Bài Toán 8: DÃY CON TỔNG LỚN NHẤT (54)
    • 3. Bài toán 9: SỐ SIÊU NGUYÊN TỐ (55)

Nội dung

MỞ ĐẦU

Ly ́ do cho ̣n đề tài

Để đạt kết quả cao trong kỳ thi tuyển chọn học sinh giỏi môn Tin học, học sinh cần có kiến thức vững về thuật toán để giải quyết các bài toán khó Sau đó, việc lựa chọn ngôn ngữ lập trình (NNLT) phù hợp để lập trình dựa trên thuật toán đã tìm ra là rất quan trọng Để hình thành những kỹ năng này, người học cần tiếp xúc với một hệ thống bài toán được tổ chức chặt chẽ, từ đó phát triển thói quen tư duy và kỹ thuật lập trình cơ bản.

Chúng tôi mong muốn hỗ trợ học sinh giải quyết các bài toán Tin học một cách tối ưu Qua quá trình bồi dưỡng học sinh giỏi, chúng tôi đã phát hiện và rút ra một số kỹ thuật cơ bản, quan trọng giúp nâng cao hiệu quả trong việc phát triển kiến thức và kỹ năng lập trình cho học sinh.

Theo chương trình mới của Bộ Giáo dục, giáo viên được khuyến khích dạy ngôn ngữ lập trình (NNLT) mới thay vì Pascal Do đó, chúng tôi đã phát triển tài liệu tham khảo bằng NNLT C++ và Python để hỗ trợ giáo viên và học sinh.

Từ những lý do trên chúng tôi đã mạnh dạn trình bày sáng kiến kinh nghiê ̣m:

“Một số kỹ thuật lập trình cơ bản giúp đạt hiệu quả cao trong bồi dưỡng học sinh giỏi”.

Mu ̣c đích nghiên cứu

Mục đích chính của sáng kiến là giới thiệu đến giáo viên và học sinh một số kỹ thuật cơ bản dành cho đối tượng HSG khối THPT:

- Giúp các em học giỏi môn Tin học đạt kết quả cao

- Tạo ra nguồn tài liệu tham khảo về thuật toán hỗ trợ cho học sinh, giáo viên dạy Tin học bậc THPT

- Sử dụng NNLT C++ và Python trong chương trình giáo dục phổ thông

Đối tươ ̣ng nghiên cứu

- Giáo viên và học sinh tham gia bồi dưỡng HSG Tin học

- Tổng hợp lại một số kỹ thuật giúp học sinh phát triển tư duy lập trình thông qua hệ thống các bài tập được phân loại kỹ lưỡng.

Phương pháp nghiên cứu

- Phương pháp điều tra, nghiên cứu tài liệu

- Phương pháp phân tích, tổng hợp

- Phương pháp khảo sát thực tiễn

- Phương pháp tổng kết kinh nghiệm.

Phạm vi nghiên cứu

Phạm vi nghiên cứu: Một số kỹ thuật cơ bản để tăng tốc chương trình giúp đạt hiệu quả cao trong bồi dưỡng HSG môn Tin học.

NỘI DUNG NGHIÊN CỨU

Cơ sở lý luâ ̣n

Trong quá trình ôn luyện đội tuyển, học sinh được trang bị nhiều phương pháp tối ưu thuật toán như phương pháp tham lam, chia để trị, quay lui, quy hoạch động, Z Algorithm và KMP Tuy nhiên, để đạt được hiệu quả tối ưu cao nhất, việc kết hợp những kỹ thuật này với các phương pháp khác và tổ chức dữ liệu một cách hợp lý là rất quan trọng Nếu chỉ xem xét từng phương pháp một cách độc lập, chúng sẽ không mang lại ý nghĩa và hiệu quả tối ưu cần thiết.

Các kỹ thuật trong sáng kiến này là những phương pháp cơ bản, dễ tiếp cận và mang lại hiệu quả đáng kể trong việc giảm độ phức tạp của thuật toán, hướng tới việc tối ưu hóa thuật toán một cách hiệu quả nhất.

Học sinh dần được làm quen với NNLT C++ hoặc Python.

Thực trạng

Mặc dù đã có tài liệu đề cập đến các kỹ thuật tăng tốc chương trình, nhưng vẫn thiếu phân tích về tư duy và cách lựa chọn, cài đặt chương trình tối ưu Việc tổng hợp các kỹ thuật để học sinh so sánh các phương pháp giải, kết quả và độ phức tạp vẫn còn hạn chế, và hệ thống bài tập cũng chưa phong phú.

Các kĩ thuật lập trình cơ bản

2.3.1 Kỹ thuật lính canh (Sentinel)

- Là kĩ thuật sử dụng 1 biến (mang giá trị đặc biệt) làm “chốt chặn”

- Mục đích chính: tạo điều kiện dừng cho các vòng lặp không xác định số lần lặp

- Xét một số bài toán cụ thể sau:

2.3.1.1 Bài toán 1 – Tìm max / min

Cho dãy gồm N số nguyên a1, a2,…,aN Hãy tìm giá trị lớn nhất của dãy số a Ý tưởng của thuật toán

Để tìm giá trị lớn nhất trong một mảng số, ta khởi tạo biến max bằng giá trị đầu tiên của mảng, gọi là biến lính canh Sau đó, ta lần lượt kiểm tra các phần tử từ vị trí thứ hai đến cuối mảng; nếu phát hiện phần tử nào lớn hơn giá trị của "lính canh", ta sẽ cập nhật giá trị của "lính canh".

+ Lần lượt với i=2 đến n, so sánh số ai với max, nếu ai > max thì gán max=ai b Nội dung và cài đặt chương trình

Các bước thực hiện giải thuật:

Bước 1: Nhập N và dãy a1,a2, , aN

Bước 3: Nếu i > N thì đưa ra giá trị Max và csmax rồi kết thúc;

Bước 4: Nếu ai > Max thì Max ←ai, csmax ←i;

Bước 5: i ← i + 1 rồi quay lại Bước 3;

#include using namespace std; long long n,max,csmax; long long a[10000]; void doctep()

{ifstream fi ("max.inp"); fi>>n; for (int i=0;i>a[i]; fi.close();

{ long long max=a[0];//dat linh canh csmax=0; for(int i=1;i

Ngày đăng: 02/07/2022, 18:49

HÌNH ẢNH LIÊN QUAN

- Trong khoa học máy tính, chia để trị là một mô hình thiết kế thuật toán quan trọng, hoạt động dựa trên ý tưởng chia vấn đề cần giải quyết thành các vấn đề  con cùng dạng với vấn đề đã cho, chỉ khác là cỡ của chúng nhỏ hơn, cứ như vậy  lặp lại nhiều lần, - Lý do chọn đề tài
rong khoa học máy tính, chia để trị là một mô hình thiết kế thuật toán quan trọng, hoạt động dựa trên ý tưởng chia vấn đề cần giải quyết thành các vấn đề con cùng dạng với vấn đề đã cho, chỉ khác là cỡ của chúng nhỏ hơn, cứ như vậy lặp lại nhiều lần, (Trang 18)
Lập bảng so sánh thời gian thực hiện 2 chương trình trên với bộ test lớn bằng phần mềm Themis ta có kết quả sau: - Lý do chọn đề tài
p bảng so sánh thời gian thực hiện 2 chương trình trên với bộ test lớn bằng phần mềm Themis ta có kết quả sau: (Trang 29)
Lập bảng so sánh thời gian thực hiện 2 chương trình trên với bộ test lớn bằng phần mềm Themis ta có kết quả sau: - Lý do chọn đề tài
p bảng so sánh thời gian thực hiện 2 chương trình trên với bộ test lớn bằng phần mềm Themis ta có kết quả sau: (Trang 30)
Sau đây là bảng so sánh thời gian đo được khi chấm hai chương trình giải bài toán trên tương ứng sử dụng hai kĩ thuật duy trì sắp xếp và cờ hiệu bằng phần  mềm Themis với bộ test lớn: - Lý do chọn đề tài
au đây là bảng so sánh thời gian đo được khi chấm hai chương trình giải bài toán trên tương ứng sử dụng hai kĩ thuật duy trì sắp xếp và cờ hiệu bằng phần mềm Themis với bộ test lớn: (Trang 33)
Trong cả ba bảng số liệu thực nghiệm trên, lần 1 là các em thi trước khi - Lý do chọn đề tài
rong cả ba bảng số liệu thực nghiệm trên, lần 1 là các em thi trước khi (Trang 48)
Hình 2.5: Thị phần doanh số thẻ của các NHTM có thị phần lớn nhất 2010 - Lý do chọn đề tài
Hình 2.5 Thị phần doanh số thẻ của các NHTM có thị phần lớn nhất 2010 (Trang 54)
Hình 2.6 cũng cho thấy thị phần doanh số kiều hối của các NHTM năm 2010 nhƣ sau: - Lý do chọn đề tài
Hình 2.6 cũng cho thấy thị phần doanh số kiều hối của các NHTM năm 2010 nhƣ sau: (Trang 57)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w