1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bồi dưỡng kỹ năng giải bài tập về số nguyên tố dành cho học sinh lớp 11 trường THPT tĩnh gia 2

27 154 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

Định dạng
Số trang 27
Dung lượng 159 KB

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

Nội dung

Hiện nay trong lí luận dạy học nói chung và lí luận dạy học môn tin họcnói riêng đề cập khá nhiều phương pháp và kỹ thuật dạy học: phương pháp thảoluận, phương pháp đặt câu hỏi, phương p

Trang 1

A PHẦN MỞ ĐẦU

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

Hiện nay trong lí luận dạy học nói chung và lí luận dạy học môn tin họcnói riêng đề cập khá nhiều phương pháp và kỹ thuật dạy học: phương pháp thảoluận, phương pháp đặt câu hỏi, phương pháp chia nhóm …

Các cách thiết kế bài giảng hiện nay nhằm mục đích áp dụng phươngpháp hiện đại để bồi dưỡng cho học sinh năng lực ham muốn học hỏi, tư duysáng tạo, năng lực tự giải quyết vấn đề, rèn luyện và phát triển năng lực tự họcsáng tạo, nghiên cứu, nghĩ và làm việc một cách tự chủ… Đồng thời để thíchứng với sự phát triển tư duy của học sinh trong xã hội mới và tiếp cận với cáccông nghệ tiên tiến trong xã hội, trên thế giới Bên cạnh đó, trong các kỹ thuậtdạy học mới, vai trò của người thầy có sự thay đổi là: “hướng dẫn học sinh biết

tự mình tìm ra hướng giải quyết những vấn đề nảy sinh trong quá trình học tập,biết cách làm việc độc lập, làm việc tập thể Thầy là người định hướng, là người

cố vấn giúp học sinh tự đánh giá, cũng như giúp học sinh luôn đi đúng conđường tìm hiểu, lĩnh hội kiến thức…”

Xuất phát từ thực tiễn giảng dạy tại trường THPT Tĩnh Gia 2 tôi thấyrằng, để đạt hiệu quả cao trong mỗi phần học, tiết học cần có cách thiết kế bàigiảng cho phù hợp với nội dung kiến thức; phương pháp, phương tiện dạy họcphải phù hợp với từng đối tượng học sinh Để qua mỗi phần học, tiết học thì họcsinh thích thú với kiến thức mới, qua đó hiểu được kiến thức đã học trên lớp,đồng thời học sinh thấy được tầm quan trọng của vấn đề và việc ứng dụng củakiến thức trước hết để đáp ứng những yêu cầu của môn học, sau đó là việc ứngdụng của nó vào các công việc thực tiễn trong đời sống xã hội

Trong thời đại thông tin bùng nổ ngày nay, việc lập được các chương trình

tự hoạt động cho máy tính, máy gia dụng là cần thiết Và để làm được việc đócần có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đónhà lập trình có thể chọn một ngôn ngữ lập trình thích hợp Tuy nhiên mọi thứđiều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc

Trang 2

tiếp cận ngôn ngữ lập trình bậc cao, qua đó giúp các em hình dung được sự rađời, cấu tạo, hoạt động cũng như lợi ích của các chương trình hoạt động trongmáy tính, các máy tự động…Qua đó giúp các em có thêm một định hướng, mộtniềm đam mê về tin học, về nghề nghiệp mà các em chọn sau này Đồng thờiPascal là một ngôn ngữ có cấu trúc thể hiện trên 3 yếu tố: Cấu trúc về mặt dữliệu, cấu trúc về mặt lệnh, cấu trúc về mặt chương trình.

Trong quá trình dạy đội tuyển học sinh giỏi tỉnh, tôi nhận thấy rằng trongchương trình phổ thông dạng bài toán về số nguyên tố xuất hiện với tần suất cao.Ngay từ lớp 10 khi tìm hiểu về thuật toán học sinh đã làm quen về thuật toán sốnguyên tố Tuy nhiên ở lớp 10 chúng ta chỉ mới tìm hiểu sơ bộ về số nguyên tố.Khi bồi dưỡng đội tuyển học sinh giỏi giáo viên và học sinh cần đi sâu vàochuyên đề này ở các dạng bài toán biến hóa khác nhau

Xuất phát từ cơ sở trên tôi đã chọn Đề tài “Bồi dưỡng kĩ năng giải bài tập

về số nguyên tố dành cho học sinh lớp 11 trường Trung học phổ thông Tĩnh Gia2”

III Nhiệm vụ đề tài

Phát triển và đi sâu về chuyên đề số nguyên tố thông qua thuật toán cơbản trong sách giáo khoa lớp 10 và 11 để giải quyết bài toán: Kiểm tra tínhnguyên tố của số nguyên N

IV Đối tượng nghiên cứu.

Học sinh khối 11 và đặc biệt là học sinh tham gia bồi dưỡng học sinh giỏi trường và tỉnh tại trường THPT Tĩnh Gia 2

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

Trang 3

- Kết hợp thực tiễn giáo dục ở trường THPT Tĩnh Gia 2

- Có tham khảo các tài liệu về ngôn ngữ lập trình Pascal, một số đề thiHSG trường và tỉnh và tài liệu về sáng kiến kinh nghiệm

B NỘI DUNG

I Thực trạng vấn đề

Tôi là giáo viên thường được nhà trường phân công dạy lớp chọn và đứngđội tuyển thi học sinh giỏi tỉnh, trong quá trình giảng dạy một thực tế gặp phảikhi giải quyết các bài toán lập trình trên ngôn ngữ pascal với những ví dụ cơ bảntrong sách giáo khoa các em sẽ dễ giải quyết được Tuy nhiên khi đưa ra các bàitoán với độ phức tạp cao hơn thì học sinh sẽ khó giải quyết Vấn đề đặt ra ở đây

là từ bài toán toán cơ bản trong sách giáo khoa nếu chúng ta hướng dẫn cho họcsinh giải quyết với nhiều cách giải khác nhau và trên cơ sở các cách giải đó đểvận dụng giải quyết các bài toán phức tạp hơn

Trải qua quá trình dạy học nhiều năm và bồi dưỡng học sinh giỏi tôi đãđúc rút được kinh nghiệm khi giải quyết các bài toán phức tạp cần chia nhỏ bàitoán đó ra thành các mô đun, mỗi mô đun là 1 chương trình con giải quyết 1 việcnào đó, đồng thời biết phân luồng các dạng bài toán tương ứng với các mảng đểhọc sinh dễ giải quyết

II Biện pháp thực hiện

Để giải quyết vấn đề trên tôi thực hiện qua 2 bước chính:

Bước 1: giúp học sinh hiểu rõ nội dung chính về lí thuyết số nguyên tố làm kiếnthức nền tảng để giải các dạng bài tập vận dụng

Bước 2: giảng dạy giúp học sinh nhận biết, lập trình để giải quyết các dạng bàitập vận dụng

Sau đây tôi xin trình bày cách thực hiện các bước trên:

II.1 Nội dung chính về lí thuyết số nguyên tố

Trong tin học lớp 10 học sinh đã làm quen với một số thuật toán trong đó

có thuật toán “ Kiểm tra tính nguyên tố của một số nguyên dương ”

Trang 4

Như vậy chỳng ta nhận thấy rằng thuật toỏn về số nguyờn tố là một trongnhững thuật toỏn thường gặp trong cỏc bài toỏn Nhất là khi bồi dưỡng học sinhgiỏi thỡ chỳng ta lại thấy bài toỏn số nguyờn tố được vận dụng rất nhiều trongcỏc bài toỏn khú

í tưởng: Ta nhớ lại định nghĩa: Một số nguyờn dương N là số nguyờn tố

nếu nú cú đỳng 2 ước số khỏc nhau là 1 và chớnh nú Từ định nghĩa đú ta suy ra

- Nếu N=1 thỡ N khụng là số nguyờn tố

Do đú, việc kiểm tra với k từ 2 đến n-1 là khụng cần thiết mà chỉ cần kiểm tra

cú tồn tại ước từ 2 đến phần nguyờn căn bậc 2 của N Từ đú ta cú thuật toỏn sau:

Thuật toỏn

a, Cỏch liệt kờ

Bước 1: Nhập số nguyờn dương N;

Bước 2: Nếu N = 1 thỡ thụng bỏo N khụng nguyờn tố rồi kết thỳc;

Bước 3: Nếu N < 4 thỡ thụng bỏo N là nguyờn tố rồi kết thỳc;

Bước 4: i  2;

Bước 5: Nếu i > [ 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.

Ghi chỳ

Biến i nhận giá trị nguyên thay đổi trong phạm vi từ 2 đến  N

  + 1 và dùng

Trang 5

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

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

Viết mô đun chương trình con

Function nt(n: longint): boolean;

Var k, M: integer;

Begin

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

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

Trang 6

Để cải tiến cần giảm thiểu số các số cần kiểm tra Thay vì kiểm tra các số k

ta sẽ chỉ kiểm tra các số k có tính chất giống tính chất của số nguyên tố.

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)

Ta có mô đun chương trình con như sau

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:=false; exit; end; k:=-1;

Áp dụng chương trình con để giải quyết các dạng bài toán về số nguyên tố

II.2 Một số dạng bài toán về số nguyên tố

Dạng 1: Liệt kê các số nguyên tố trong đoạn từ [2,N]

Cụ thể:

Trang 7

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ừ tệp nguyento.inp số nguyên N

Kết quả: Ghi ra tệp nguyento.out chứa các số nguyên tố, mỗi số cách nhau 1 kí

tự cách Ghi trên cùng 1 dòng

Ý tưởng bài toán này như sau:

-Xây dựng hàm kiểm tra số tính nguyên tố số nguyên N

- Xây dựng chương trình con liệt kê các số nguyên tố trong đoạn từ 2 đến N.Bằng cách sử dụng lời gọi hàm nt(i) Nếu hàm nt(i) (trong đó i nhận giá trị từ 2đến N) nếu hàm nhận giá trị đúng thì giá trị i được ghi vào tệp write(f2, i,’ ‘).Thông qua đoạn chương trình:

For i:=2 to N do

If nt(i) then write(f2, i, ‘ ‘);

Chương trình hoàn thiện như sau

Trang 8

if (n=2) or (n=3) then begin nt:=true; exit; end;

Đây là một trong những dạng bài tập về số nguyên tố đơn thuần tuy nhiên khi

dữ liệu lớn, ta cần giải quyết bài toán này với mô đun chương trình con về sốnguyên tố ở thuật toán thứ 2 là dựa vào tính chất của số nguyên tố

Cũng là ý tưởng như trên nhưng ở đây xây dựng hàm nguyên tô nt(N) dựa vàotính chất của nó thì chương trình sẽ chạy nhanh hơn rất nhiều

Ta có chương trình hoàn thiện như sau:

const fi='nguyento.inp';

fo='nguyento.out';

var n,m, i:longint;

Trang 9

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:=false; exit ; end;M:=trunc(sqrt(n));

Trang 10

Bài toán 2:Hãy viết chương trình đọc dữ liệu vào là một số nguyên N (0<N<10)

và đưa ra kết quả các số siêu nguyên tố có N chữ số và số lượng của chúng Vào file SNT.INP chứa duy nhất chỉ số nguyên N

Kết quả: Ghi ra file SNT.OUT

- ghi các số siêu nguyên tố

- Số lượng các số siêu nguyên tố

Co 15 so sieu nguyen to co 5 chu so

Ý tưởng của bài toán như sau:

- Xây dựng hàm kiểm tra so nguyên N có là số nguyên tố hay không

- Xây dưng hàm kiểm tra số i có phải là số siêu nguyên tố hay không

Ý tưởng như sau:

Trang 11

Lại một lần nữa sử dụng lời gọi hàm nt(i) trong chương trình con

Nếu nt(i):=false thì SNT:=False ;

Nếu nt(i)=true thì tiến hành giảm giá trị của i bằng cách chia nó cho 10 (i:= i div10) và lại quay lại kiểm tra i cho đến khi i giảm xuống i=0 then snt:=true;

Chương trình con như sau:

If snt(i) then begin write(f2, i,’ ‘); inc(dem); end;

Thể hiện chương trình con sau

Trang 13

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:=false; exit; end;k:=-1;

Trang 14

Dãy số A1,A2, ,An được gọi là dãy số đặc biệt nếu nó thỏa mãn các điều kiệnsau

Trang 15

- Là dãy số giảm dần

- Với mỗi A thì A’ hoặc là số nguyên tố hoặc là ước của một trong các số

từ A1 đến Ai-1

Em hãy tìm dãy số đặc biệt dài nhất bắt đầu từ N

Dữ liệu vào: Từ File văn bản DAYSO.INP là một số nguyên dương N(N<10000)

Kết quả: Ghi ra File văn bản DAYSO.OUT là dãy số tìm được các số cáchnhau bởi dấu cách

Ý tưởng bài toán:

- Xây dựng một hàm kiểm tra tính nguyên tố

- Tìm các số thỏa mãn điều kiện là số nguyên tố hoặc là ước của N ghi vào tệpprocedure ghitep;

Như vậy với dạng toán này chúng ta nghĩ ngay đến hàm nguyên tố

Chương trình hoàn thiện như sau:

Trang 16

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:=false; exit; end;k:=-1;

Trang 17

Bài toán 4: Dãy con tăng nguyên tố

Cho 1 dãy N số nguyên dương Dãy con tăng nguyên tố M phần tử là 1 dãy số

Dữ liệu nhập: vào từ file DAYCON.INP với định dạng như sau:

- Dòng đầu tiên là số N <= 1000 (tức là số phần tử của dãy số ban đầu)

- Các dòng tiếp theo chứa N số nguyên là giá trị các phần tử của dãy số(0<=A[i]<=100000)

Dữ liệu xuất: xuất ra file DAYCON.OUT

- Số đầu tiên là số M tức phần tử của dãy con tăng nguyên tố dài nhất

- M dòng sau ghi ra giá trị các phần tử của dãy con tăng dài nhất

Trang 18

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:=false; exit; end;k:=-1;

Trang 20

Dạng 4: Phân tích 1 số ra tích hoặc tổng các số nguyên tố.

Bài toán 5: Cho trước số tự nhiên N lập trình phân tích n thành tích các thừa số

nguyên tố

Dữ liệu: Vào File PTNT.INP chỉ chứa một số duy nhất N

Kết quả: Ghi vào file PTNT.OUT tích các thừa số nguyên tố

Với dạng bài toán này ta có thể sử dụng hàm nguyên tố hoặc không sử dụnghàm nguyên tố mà chỉ sử dụng tính chất của số nguyên tố

- Ý tưởng bài toán:

Xây dựng mô đun chương trình con phân tích một số N ra thừa số nguyên tốbằng cách khởi gán giá trị ban đâu i:=2; tiến hành kiểm tra trong khi (n mod i

=0) thì thay đổi giá trị n:= n div i, đồng thời ghi giá trị i vào tệp

Lưu ý khi ghi giá trị i vào tệp cần kiểm tra giá trị n Nếu n=1 thì write(f2,i)ngược lại ghi write(f2,i,'*') Mô đun chương trình như sau

Trang 21

while n mod i=0 dobegin

Trang 22

Bài toán 6: Cho trước số tự nhiên N Tìm và in ra tất cả các số tự nhiên từ 2 đến

N là tích của đúng 2 thừa số nguyên tố( có thể trùng nhau)

Dữ liêu: Vào file PTTS.INP chỉ chứa duy nhất số tự nhiên N

Kết quả: Ghi vào File PTTS.OUT các số tự nhiên là tích của đúng 2 thừa sốnguyên tố

-Ý tưởng bài toán như sau:

+ Xây dựng hàm kiểm tra tính nguyên tố của số tự nhiên N

Trang 23

+ Xây dựng chương trình con hàm kiểm tra số tự nhiên N phân tích thành tích 2thừa số nguyên tố.

if nt(i) and (x mod i=0) then y:=x div i;

if nt(y) then kt2:=true;

Trang 24

function nt(m:longint):boolean;

var k:longint;

begin

if(m=2) or (m=3) then begin nt:=true; exit; end;

if (m=1) or (m mod 2=0) or (m mod 3=0) then begin nt:=false; exit; end;k:=-1;

if nt(i) and (x mod i=0) then y:=x div i;

if nt(y) then kt2:=true;

Trang 25

Ra khỏi vòng lặp nếu dem=3 thì hàm nhận giá trị True

Lưu ý khi sử dụng vòng lặp nên chọn dạng for lùi khi kiểm tra các phần tử inhận từ ( n div 2 xuống đến 2)

Mô đun chương trình con như sau

function kt(x:longint):boolean;

var z,dem,i,y:longint;

begin

kt:=false; y:=x;

z:=y div 2; dem:=0;

for i:=z downto 2 do

begin

while nt(i) and (x mod i=0) do begin x:=x div i; inc(dem);

if (x=1) and (dem=3) then break; end;

if dem=3 then begin kt:=true; exit; end;

end;

end;

Trang 26

Nếu bài toán yêu cầu liệt kê các số từ 2 đến N là tích 3 thừa số nguyên tố thìtương tự như bài trên chúng ta xây dựng chương trình con là thủ tục để ghi vàocác số thỏa mãn bài toán

III Kết quả

Qua thực tế giảng dạy tôi thấy:

Khi dạy học cần phân từng mảng, ứng với mỗi mảng là 1 chuyên đề cầnđược làm rõ và đi sâu để giải quyết các bài toán khó Với mỗi chuyên đề ta đi từcái đơn giản đến cái phức tạp để giúp học sinh biết giải quyết các bài toán khó.Muốn vậy giáo viên cần phân tích bài toán và chia nó thành các mô đun nhỏ vàmỗi 1 mô đun là 1 chương trình con nhằm giải quyết một vấn đề nào đó cầnđược giải quyết

Bằng phương pháp dạy học nêu trong qúa trình bồi dưỡng học sinh giỏitrường và tỉnh tôi đã thu được một số kết quả nhất định như:

- Học sinh hiểu rõ nội dung làm được tất cả các bài tập có liên quan

- Kết quả thi HSG trường, HSG Tỉnh cũng đạt kết quả cao

C KẾT LUẬN VÀ ĐỀ XUẤT

Sáng kiến kinh nghiệm này của tôi đã trình bày về một số dạng toán liênquan đến số nguyên tố và cách giải quyết bài toán lớn chia thành các bài toáncon Tôi đã áp dụng và thấy hiệu quả đối với học sinh trong quá trình giải quyếtcác bài toán về số nguyên tố Đề tài này có thể được giáo viên và học sinh thamkhảo trong quá trình bồi dưỡng học sinh giỏi

Tuy nhiên đề tài của tôi còn mang màu sắc chủ quan, chưa hoàn thiện dohạn chế về kinh nghiệm giảng dạy Vì vậy, tôi rất mong nhận được sự đóng góp

ý kiến quý báu của các thầy giáo, cô giáo để ngày càng hoàn thiện hơn

Trang 27

XÁC NHẬN CỦA

THỦ TRƯỞNG ĐƠN VỊ

Thanh Hóa, ngày 20 tháng 05 năm 2018

Tôi xin cam đoan đây là SKKN của mìnhviết, không sao chép SKKN của ngườikhác

(Ký và ghi rõ họ tên)

Lê Văn Vinh

Ngày đăng: 29/10/2019, 08:31

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