Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
96,27 KB
Nội dung
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do- Hạnh phúc CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do- Hạnh phúc ĐỀCHUYÊNTÀI: ĐỀ VỀ SỐ NGUYÊN TỐ TRONG BỒI DƯỠNG HỌC SINH GIỎI ÁP DỤNG PHƯƠNG PHÁP DẠY HỌC THEO GÓC TRONG MƠN HĨA HỌC NHẰM PHÁT HUY TÍNH TÍCH CỰC Họ tên: Dương Thùy Mai Chức vụ: Giáo viên Họ tên: Nguyễn Thị Hoa Lý Đơn vị công tác : Trường THPT Ninh Châu Chức vụ: Tổ trưởng chuyên môn Đơn vị công tác : Trường THPT Ninh Châu Quảng Ninh, tháng 15 năm 20192018 download by : skknchat@gmail.com CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do- Hạnh phúc Độc lập – Tự do- Hạnh phúc ĐỀ TÀI: ĐỀ TÀI: ÁP DỤNG PHƯƠNG PHÁP DẠY HỌC THEO CHUYÊN ĐỀ VỀ SỐ NGUYÊN TỐ TRONG GÓC TRONGBỒIDƯỠNGMƠNHĨAHỌCHỌCSINHẰMGIỎIPHÁT HUY TÍNH TÍCH CỰC HỌC TẬP CỦA HỌC SINH Tháng / 2018 Tháng / 2019 download by : skknchat@gmail.com MỤC LỤC PHẦN MỞ ĐẦU 1.1 Lí chọn đề tài 1.2 Điểm đề tài NỘI DUNG 2.1 Cơ sở lí luận 2.2 Thực trạng vấn đề 2.3 Nội dung giải pháp thực 2.3.1 Bài toán gốc: “ Kiểm tra tính nguyên tố số nguyên dương ” 2.3.2 Các dạng toán số nguyên tố Bài toán 1: Liệt kê số nguyên tố đ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 12 Bài toán 4: Dãy tăng nguyên tố 14 Bài tốn 5: Phân tích số tích tổng số ngun tố 17 Bài tốn 6: Phân tích thừa số nguyên tố 19 Bài toán 7: Số nguyên tố mersen 23 Bài toán 8: Dãy nguyên tố 26 PHẦN KẾT LUẬN 29 3.1 Ý nghĩa, phạm vi áp dụng đề tài 29 3.2 Kiến nghị, đề xuất 29 TÀI LIỆU THAM KHẢO .30 download by : skknchat@gmail.com PHẦN MỞ ĐẦU 1.1 Lí chọn đề tài Trong chương trình tin học lớp 11, học sinh tiếp cận với ngơn ngữ lập trình Pascal, loại ngơn ngữ thuộc nhóm ngơn ngữ lập trình bậc cao Đây ngôn ngữ chặt chẽ mặt cú pháp mà chặt chẽ mặt cấu trúc liệu Chính mà việc tiếp cận với ngơn ngữ lập trình Pascal hội để học sinh rèn luyện tính tư logic, làm việc giải vấn đề có tính hệ thống Trong q trình giảng dạy lớp, Giáo viên cần truyền cảm hứng tới học sinh để học sinh có đam mê, u thích mơn tin học để từ học sinh có nhu cầu tìm tịi học hỏi mơn Trong cơng tác bồi dưỡng học sinh giỏi vậy, giáo viên có phương pháp bồi dưỡng riêng mình, hướng đến mục đích để học sinh dễ nắm bắt thuật toán nắm vững kiến thức để vận dụng vào giải toán nâng cao Trong chương trình tin học lớp 10, tìm hiểu thuật toán, làm quen với thuật toán kiểm tra số nguyên dương có phải số nguyên tố hay không Và Thầy, cô giáo nhận thấy dạng bồi dưỡng học sinh giỏi có nhiều tốn số nguyên tố Tuy nhiên, qua trình giảng dạy cho thấy, đa số em hiểu khái niệm số nguyên tố lại khó khăn việc xây dựng thuật tốn cho tốn này, chí em thuộc đối tượng bồi dưỡng học sinh giỏi đưa ý tưởng giải toán mà chưa tối ưu Vậy nên muốn học sinh thuộc đối tượng bồi dưỡng học sinh giỏi có tư tốt để giải dạng số nguyên tố giáo viên cần hướng cho học sinh có ý tưởng tốt nắm phương pháp giải tốn nhất, từ xâu chuổi dạng có liên quan với hay nói cách khác dạy từ đến nâng cao theo chuyên đề Xuất phát từ sở trên, qua trình bồi dưỡng học sinh giỏi nam xây dựng sáng kiến kinh nghiệm “Chuyên đề số nguyên tố bồi dưỡng học sinh giỏi môn tin học” 1.2 Điểm đề tài Trên sở nhận thức, tìm hiểu phân tích, sáng kiến đưa toán số ngun tố để xây dựng thuật tốn chương trình giải tốn Qua q trình giảng dạy lớp, khảo sát học sinh cách kiểm tra số nguyên dương có phải số ngun tố hay khơng đa số học sinh đưa ý tưởng cho toán Tuy nhiên ý tưởng cho thấy em hình thành tư giải tốn mà chưa quan tâm tới phạm vi giá trị liệu download by : skknchat@gmail.com dùng toán đưa cách giải mà chưa tối ưu Chính xây dựng chương trình, em gặp phải số lỗi chương trình Đề tài góp phần thúc đẩy hướng phát huy tính tích cực học sinh, giúp học sinh có tư lập trình, nắm kiến thức giải tốn theo chun đề, góp phần nâng cao kiến thức khả thực hành cho giáo viên, việc dạy học đặc biệt ôn thi học sinh giỏi Hiệu chất lượng dạy học phụ thuộc vào nhiều yếu tố Tuy nhiên việc giáo viên nhận thức vấn đề có sâu sắc, xác hay khơng, chuẩn bị kiến thức có chu đáo hay khơng có phương pháp kỹ thuật tốt để xử lý tốn đóng vai trò quan trọng Cách nhận thức, cách hiểu, phân tích đưa chương trình cụ thể mà đưa sau đây, hy vọng góp phần nhỏ định hướng để đồng nghiệp rút kinh nghiệm nhiệm vụ giảng dạy tốt môn Tin học thực tốt việc ôn thi học sinh giỏi NỘI DUNG 2.1 Cơ sở lí luận Ngơn ngữ lập trình Pascal ngơn ngữ lập trình có cấu trúc, chặt chẽ mặt cú pháp mà chặt chẽ mặt liệu, tập ngơn ngữ máy tính Đây dạng ngơn ngữ chuẩn hóa Chính vậy, xây dựng chương trình ngơn ngữ cần phải tuân thủ vào nhớ cấu trúc liệu Thơng thường dạng học sinh giỏi phạm vi giá trị liệu biến sử dụng chương trình số lượng biến sử dụng chương trình phức tạp, học sinh cần có phương pháp xử lý tốt để đảm bảo kết chạy chương trình Như vậy, việc đưa phương pháp kỹ thuật xử lý liệu lớn lập trình với Pascal để xử lý số toán phạm vị liệu vượt phạm vi Pascal, giúp cho học sinh giáo viên có hướng xử lý tốt học lập trình bồi dưỡng học sinh giỏi 2.2 Thực trạng vấn đề * Điều kiện môn Tin học: SGK Tin học 11 biên soạn với tinh thần truyền cho học sinh có tư lập trình Nhưng việc ơn thi học sinh giỏi cần cụ thể lập trình mơi trường Pascal Free Pascal Như việc dạy học cho học sinh có chút khác biệt so với việc ôn thi học sinh giỏi * Điều kiện Nhà trường: Tình trạng chung trường THPT tỉnh nói riêng nước nói chung, trang thiết bị nhà trường cịn nhiều thiếu download by : skknchat@gmail.com thốn, thời gian ôn luyện học sinh giỏi chưa nhiều * Điều kiện giáo viên: Nhà trường có 03 giáo viên tin học đạt chuẩn, tuổi đời trẻ, có lực, ý thức học hỏi để nâng cao trình độ chun mơn thân cịn chưa thực tích cực * Điều kiện học sinh: Hầu hết học sinh em nông thôn Nhưng kinh tế địa phương năm gần phát triển mạnh, dịch vụ Internet kinh doanh máy tính địa bàn phát triển nên học sinh nhiều tiếp cận máy tính Internet Mặt khác, môn học lại ứng dụng nhiều thực tế đời sống Vì vậy, học sinh hứng thú có ý thức với môn học nên nhiều tiết học em hăng say xây dựng tìm hiểu thực tế môn học Tuy nhiên, môn học khó đồng thời lại liên quan đến nhiều lĩnh vực khoa học tự nhiên, xã hội nên việc tiếp cận học sinh tương đối khó Kết học tập môn Tin học kết học sinh giỏi chưa cao Kết bồi dưỡng học sinh giỏi Năm học 2015-2016 có giải KK Năm học 2016-2017 có giải KK Năm học 2017-2018 có giải nhì, giải ba giải khuyến khích 2.3 Nội dung giải pháp thực Trước hết tơi đưa tốn sau: Bài tốn gốc: “ Kiểm tra tính ngun tố số nguyên dương ” Đây toán sách giáo khoa tin học lớp 10 mà học sinh tìm hiểu thuật tốn toán Ý tưởng: Một số nguyên dương N số nguyên tố có ước số khác Từ ta suy - Nếu N=1 N khơng số ngun tố - Nếu 1 [ ] thơng báo N ngun tố kết thúc; Bước 6: Nếu N chia hết cho i thông báo N không nguyên tố kết thúc; Bước 7: i i + quay lại bước Dưới ví dụ mơ việc thực thuật toán Với N = 29 ( I N/i 29/2 Chia hết không? Không a) 29 số nguyên tố Trên sở thuật toán ta tiến hành cài đặt thuật toán cho toán gốc sau: Chương trình : 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; M:=trunc(sqrt(N)); For k:= to M If ( N mod k =0) then begin nt:=false; exit ; end; nt:=true; end; download by : skknchat@gmail.com Đây chương trình kiểm tra số nguyên dương có phải số nguyên tố ? Hàm nt(N) tiến hành kiểm tra số nguyên k đoạn từ đến phần nguyên bậc N để cải tiến cần giảm thiểu số số cần kiểm tra Thay kiểm tra số k ta kiểm tra số k có tính chất giống tính chất số nguyên tố Vậy tính chất số nguyên tố ? Tính chất số nguyên tố: Trừ số số số ngun tố có dạng 6k ( số có dạng 6k chia hết cho 2, 6k chia hết cho 3) Từ ta có chương trình con: Kiểm tra số ngun dương có phải số nguyên tố ? áp dụng tính chất số nguyên tố 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 =0)) then begin nt:=false; 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:=false; end; Như để giải tốn số nguyên tố lập trình với liệu lớn ta theo hướng xây dựng chương trình cho tốn gốc với lựa chọn chương trình Với cách viết chương trình cho tốn gốc với chương trình dạng Ta sử dụng liệu với số nguyên dương N lớn không kiểu liệu longint mà thay vào liệu kiểu int64 cụ thể sau: download by : skknchat@gmail.com function nt(N:int64):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 =0)) then begin nt:=false; 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:=false; end; 2.3.2 Các dạng toán số nguyên tố Bài toán 1: Viết chương trình liệt kê số nguyên tố đoạn từ [2,N] Dữ liệu vào: Tệp văn nguyento.inp chứa số nguyên dương N Kết quả: Ghi vào tệp văn nguyento.out số nguyên tố, số cách kí tự trống Ghi dịng Ý tưởng tốn sau: -Xây dựng hàm nguyên tố Xây dựng chương trình liệt kê số nguyên tố đoạn từ đến phần nguyê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ừ đến N) hàm nhận giá trị giá trị i ghi vào tệp write(f2, i,’ ‘) Thơng qua đoạn chương trình: - For i:=2 to N If nt(i) then write(f2, i, ‘ ‘); download by : skknchat@gmail.com i:=c[i]; end; end; Procedure thaotac; begin j:=0; for i:=1 to n if kt(a[i]) then begin inc(j); d[j]:=a[i]; end; a[0]:=-32768; a[n+1]:=32767; qhd; end; Begin nhapdulieu; thaotac; dongtep; End Bài tốn 5: Phân tích số tích tổng số nguyên tố Cho trước số tự nhiên N lập trình phân tích N thành tích thừa số nguyên tố Dữ liệu: Vào File văn PTNT.INP chứa số N Kết quả: Ghi vào file văn PTNT.OUT tích thừa số nguyên tố PTNT.INP PTNT.OUT 18 2*3*3 Với dạng tốn ta sử dụng hàm nguyên tố không sử dụng hàm nguyên tố mà sử dụng tính chất số nguyên tố - Ý tưởng tốn: Xây dựng mơ đun chương trình phân tích số N thừa số nguyên tố cách khởi gán giá trị ban đâu i:=2; tiến hành kiểm tra (n mod i =0) thay đổi giá trị n:= n div i, đồng thời ghi giá trị i vào tệp Lưu ý ghi giá trị i vào tệp cần kiểm tra giá trị n Nếu n=1 write(f2,i) ngược lại ghi write(f2,i,'*') Chương trình sau: 20 download by : skknchat@gmail.com procedure thua_sont(n:integer); Var m:integer; Begin m:=trunc(sqrt(n)); i:=2; while i