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

(Sáng kiến kinh nghiệm) chuyên đề về số nguyên tố trong bồi dưỡng học sinh giỏi môn tin học

33 31 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 đề Chuyên Đề Về Số Nguyên Tố Trong Bồi Dưỡng Học Sinh Giỏi
Tác giả Dương Thùy Mai, Nguyễn Thị Hoa Lý
Người hướng dẫn Giáo viên Nguyễn Đơn
Trường học Trường THPT Ninh Châu
Chuyên ngành Tin học
Thể loại Đề tài
Năm xuất bản 2019
Thành phố Quảng Ninh
Định dạng
Số trang 33
Dung lượng 216 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. PHẦN MỞ ĐẦU

    • 1.1 Lí do chọn đề tài.

    • 1.2 Điểm mới của đề tài

  • 2. NỘI DUNG

    • 2.1 Cơ sở lí luận

    • 2.2 Thực trạng của vấn đề

    • 2.3. Nội dung và giải pháp thực hiện .

      • Bài toán gốc: “ Kiểm tra tính nguyên tố của một số nguyên dương ”.

      • 2.3.2 Các dạng bài toán về số nguyên tố

        • Bài toán 1: Viết chương trình liệt kê các số nguyên tố trong đoạn từ [2,N]

        • Bài toán 2: Số siêu nguyên tố

        • Bài toán 3: Dãy số đặc biệt

        • Bài toán 4 DÃY CON TĂNG NGUYÊN TỐ

        • Bài toán 5: Phân tích 1 số ra tích hoặc tổng các số nguyên tố.

        • Bài toán 6: Phân tích thừa số nguyên tố

        • Bài toán 7: Số nguyên tố mersen

        • Bài toán 8: Dãy nguyên tố

  • 3. PHẦN KẾT LUẬN

    • 3.1. Ý nghĩa, phạm vi áp dụng của đề tài

  • TÀI LIỆU THAM KHẢO

Nội dung

PHẦN MỞ ĐẦU

Lí do chọn đề tài

Trong chương trình tin học lớp 11, học sinh được học ngôn ngữ lập trình Pascal, một ngôn ngữ lập trình bậc cao với cú pháp và cấu trúc dữ liệu chặt chẽ Việc tiếp cận Pascal giúp học sinh rèn luyện tư duy logic, khả năng làm việc và giải quyết vấn đề một cách hệ thống.

Trong quá trình giảng dạy, giáo viên cần truyền cảm hứng cho học sinh để họ yêu thích môn tin học và có nhu cầu tìm hiểu sâu hơn về bộ môn này Đối với việc bồi dưỡng học sinh giỏi, mỗi giáo viên có phương pháp riêng nhưng đều nhằm mục tiêu giúp học sinh nắm vững thuật toán và kiến thức cơ bản để giải quyết các bài toán nâng cao Trong chương trình tin học lớp 10, học sinh đã làm quen với thuật toán kiểm tra số nguyên tố, nhưng nhiều em gặp khó khăn trong việc xây dựng thuật toán cho bài toán này Đặc biệt, ngay cả những học sinh giỏi cũng chỉ đưa ra được ý tưởng giải quyết mà chưa tối ưu Do đó, để phát triển tư duy cho học sinh giỏi trong việc giải các bài toán về số nguyên tố, giáo viên cần hướng dẫn học sinh có những ý tưởng tốt và nắm chắc phương pháp giải cơ bản, từ đó liên kết các dạng bài liên quan và dạy từ cơ bản đến nâng cao theo từng chuyên đề.

Dựa trên nền tảng đó, trong quá trình bồi dưỡng học sinh giỏi hàng năm, tôi đã phát triển sáng kiến kinh nghiệm mang tên “Chuyên đề về số nguyên tố trong bồi dưỡng học sinh giỏi môn tin học”.

Điểm mới của đề tài

Sáng kiến này phát triển các bài toán về số nguyên tố nhằm xây dựng thuật toán và chương trình giải quyết chúng Qua khảo sát, nhiều học sinh có ý tưởng về cách kiểm tra số nguyên tố, nhưng vẫn thiếu sự chú ý đến phạm vi dữ liệu và tối ưu hóa giải pháp Điều này dẫn đến lỗi trong chương trình khi thực hiện Đề tài này không chỉ khuyến khích tính tích cực của học sinh mà còn giúp các em phát triển tư duy lập trình và nắm vững kiến thức qua việc giải quyết các bài toán theo chuyên đề, từ đó nâng cao kiến thức và khả năng thực hành cho giáo viên trong giảng dạy và ôn thi học sinh giỏi.

Hiệu quả và chất lượng dạy học phụ thuộc vào nhiều yếu tố, trong đó nhận thức của giáo viên về vấn đề, sự chuẩn bị kiến thức chu đáo và việc áp dụng phương pháp, kỹ thuật giảng dạy hợp lý là rất quan trọng Cách hiểu, phân tích và xây dựng chương trình giảng dạy sẽ giúp đồng nghiệp có thêm kinh nghiệm trong việc giảng dạy môn Tin học và ôn thi học sinh giỏi.

NỘI DUNG

Cơ sở lí luận

Ngôn ngữ lập trình Pascal là một ngôn ngữ lập trình có cấu trúc, nổi bật với cú pháp và dữ liệu chặt chẽ, thuộc tập con của ngôn ngữ máy tính chuẩn hóa Khi phát triển chương trình bằng Pascal, người lập trình cần tuân thủ nghiêm ngặt về bộ nhớ và cấu trúc dữ liệu Đặc biệt, trong các bài thi học sinh giỏi, phạm vi giá trị dữ liệu của biến và số lượng biến sử dụng thường rất phức tạp, đòi hỏi học sinh phải áp dụng các phương pháp xử lý hiệu quả để đảm bảo chương trình chạy đúng kết quả.

Việc áp dụng các phương pháp và kỹ thuật xử lý dữ liệu lớn trong lập trình Pascal là cần thiết để giải quyết các bài toán khi dữ liệu vượt quá giới hạn của ngôn ngữ này Điều này không chỉ hỗ trợ học sinh và giáo viên trong việc học lập trình hiệu quả mà còn giúp bồi dưỡng năng lực cho học sinh giỏi.

Thực trạng của vấn đề

Bộ môn Tin học lớp 11 được biên soạn nhằm phát triển tư duy lập trình cho học sinh, tuy nhiên, để ôn thi học sinh giỏi, cần tập trung vào lập trình trong môi trường Pascal hoặc Free Pascal Do đó, phương pháp dạy học sẽ có sự khác biệt so với việc ôn thi học sinh giỏi.

Tình trạng chung của các trường THPT trong tỉnh và cả nước hiện nay gặp nhiều khó khăn, với trang thiết bị còn thiếu thốn Bên cạnh đó, thời gian dành cho việc ôn luyện học sinh giỏi cũng chưa đáp ứng đủ nhu cầu.

Nhà trường hiện có ba giáo viên tin học đạt tiêu chuẩn, trẻ tuổi và có năng lực, tuy nhiên, ý thức học hỏi để nâng cao trình độ chuyên môn của họ vẫn chưa thực sự tích cực.

Hầu hết học sinh đều là con em nông thôn, nhưng sự phát triển kinh tế địa phương gần đây đã giúp họ tiếp cận máy tính và Internet Môn Tin học, mặc dù mới mẻ và ứng dụng thực tiễn cao, đã thu hút sự hứng thú của học sinh Tuy nhiên, do tính khó khăn và liên quan đến nhiều lĩnh vực khoa học, việc tiếp cận môn học này vẫn còn thách thức Kết quả học tập môn Tin học của học sinh giỏi chưa đạt yêu cầu cao.

Kết quả bồi dưỡng học sinh giỏi

Năm học 2015-2016 có 2 giải KK

Năm học 2016-2017 có 2 giải KK

Năm học 2017-2018 có 1 giải nhì, 1 giải ba và 1 giải khuyến khích

Nội dung và giải pháp thực hiện

Trước hết tôi đã đưa ra bài toán như sau:

Bài toán kiểm tra tính nguyên tố của một số nguyên dương N là một khái niệm cơ bản trong sách giáo khoa tin học lớp 10 Một số N được coi là số nguyên tố nếu nó chỉ có hai ước số khác nhau, đó là 1 và chính nó Từ định nghĩa này, học sinh có thể áp dụng các thuật toán để xác định tính nguyên tố của số.

- Nếu N=1 thì N không là số nguyên tố

- Nếu 1 [ N] thì thông báo N là nguyên tố rồi kết thúc;

Bước 6: Nếu N chia hết cho i thì thông báo N không nguyên tố rồi kết thúc; Bước 7: i ← i + 1 rồi quay lại bước 5.

Dưới đây là ví dụ mô phỏng việc thực hiện thuật toán trên

Chia hết a) 29 là số nguyên tố b) 45 không là số nguyên tố

Trên cơ sở thuật toán ta tiến hành cài đặt thuật toán cho bài toán gốc như sau:

If N=1 then begin nt:= false; exit end;

If (N=2) or (N=3) then begin nt:=true; exit end;

If ( N mod k =0) then begin nt:se; exit ; end; nt:=true; end; Đây là chương trình con kiểm tra 1 số nguyên dương bất kỳ có phải là số nguyên tố ?

Hàm nt(N) thực hiện kiểm tra các số nguyên k từ 2 đến phần nguyên căn bậc 2 của N Để tối ưu hóa, cần giảm thiểu số lượng số cần kiểm tra.

Thay vì kiểm tra tất cả các số k, chúng ta sẽ chỉ tập trung vào những số k có đặc điểm tương tự như số nguyên tố Vậy đặc điểm của số nguyên tố là gì?

Tính chất số nguyên tố :

Trừ số 2 và số 3 các số nguyên tố có dạng 6k±1 ( vì các số có dạng 6k±2 thì chia hết cho 2, 6k± 3 thì chia hết cho 3).

Từ đó ta có chương trình con: Kiểm tra 1 số nguyên dương bất kỳ có phải là số nguyên tố ? áp dụng tính chất số nguyên tố như sau:

Chương trình 2: function nt(N:longint):boolean; var k,m,i:longint; begin if (N=2) or (N=3) then begin nt:=true; exit; end; if( (N=1) or (N mod 2=0) or (N mod 3 =0)) then begin nt:se; exit; end; k:= -1;

M:=trunc(sqrt(N)); repeat inc(k,6); if (N od k =0) or (n mod (k+2) = 0) then break; until k>M if k>Mthen nt:=true else nt:se; end;

Để giải quyết các bài toán liên quan đến số nguyên tố trong lập trình với dữ liệu lớn, chúng ta cần xây dựng chương trình cho bài toán gốc, đồng thời lựa chọn phương pháp thứ hai.

Để viết chương trình cho bài toán gốc dạng 2, ta có thể sử dụng dữ liệu với số nguyên dương N lớn hơn, không chỉ giới hạn ở kiểu longint mà nên sử dụng kiểu int64 Hàm nt(N: int64): boolean sẽ kiểm tra tính nguyên tố của N Nếu N bằng 2 hoặc 3, hàm sẽ trả về true Ngược lại, nếu N bằng 1 hoặc chia hết cho 2 hoặc 3, hàm sẽ trả về false.

M:=trunc(sqrt(N)); repeat inc(k,6); if (N od k =0) or (n mod (k+2) = 0) then break; until k>M if k>Mthen nt:=true else nt:se; end;

2.3.2 Các dạng bài toán về số nguyên tố

Bài toán 1 : Viết chương trình liệt kê các số nguyên tố trong đoạn từ [2,N]

Dữ liệu vào: Tệp văn bản nguyento.inp chứa duy nhất số nguyên dương N

Kết quả: Ghi vào tệp văn bản nguyento.out các số nguyên tố, cách nhau ít nhất 1 kí tự trống và trên cùng 1 dòng Ý tưởng của bài toán này là

- Xây dựng hàm nguyên tố .

Xây dựng chương trình con để liệt kê các số nguyên tố trong khoảng từ 2 đến N bằng cách sử dụng hàm nt(i) Hàm nt(i) sẽ kiểm tra từng giá trị i từ 2 đến N, và nếu hàm trả về giá trị đúng, số i sẽ được ghi vào tệp thông qua lệnh write(f2, i, ' ').

Thông qua đoạn chương trình:

The program begins by defining input and output file names, initializing variables, and setting up file handling procedures It reads an integer from the input file and checks if the number is prime through a function that evaluates specific conditions The function returns true for the numbers 2 and 3, while it returns false for 1 and any even number or multiples of 3 For other numbers, it calculates the square root to determine primality.

The algorithm iterates through values of k, checking if n is divisible by either k or k+2, and breaks the loop if a condition is met If k exceeds m, a flag is set to true; otherwise, it remains false The procedure 'xuly' processes numbers from 2 to n, writing those that meet the criteria to a file Finally, the 'dongtep' procedure closes the input and output files after processing.

Bài toán 2 : Số siêu nguyên tố

Viết chương trình để đọc một số nguyên N (0

Ngày đăng: 15/06/2021, 14:33

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w