(SKKN HAY NHẤT) rèn luyện kĩ năng sử dụng cấu trúc lặp trong pascal để giải một số bài toán truy hồi cho học sinh lớp 11

18 5 0
(SKKN HAY NHẤT) rèn luyện kĩ năng sử dụng cấu trúc lặp trong pascal để giải một số bài toán truy hồi cho học sinh lớp 11

Đ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ÁNG KIẾN KINH NGHIỆM ĐỀ TÀI: "RÈN LUYỆN KĨ NĂNG SỬ DỤNG CẤU TRÚC LẶP TRONG PASCAL ĐỂ GIẢI MỘT SỐ BÀI TOÁN TRUY HỒI CHO HỌC SINH LỚP 11" LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com A ĐẶT VẤN ĐỀ I Lời mở đầu : Sự phát triển mạnh mẽ công nghệ thông tin làm cho xã hội có nhiều nhận thức cách tổ chức hoạt động Nhiều quốc gia giới ý thức rõ tầm quan trọng tin học có đầu tư lớn cho lĩnh vực này, đặc biệt giáo dục nhằm nâng cao dân trí tin học đào tạo nguồn nhân lực có chất lượng cao Người Việt Nam có nhiều tố chất thích hợp với ngành khoa học này, hi vọng sớm hồ nhập với khu vực giới tốc độ phát triển công nghệ thông tin Đảng, Nhà nước ta nhận thấy tầm quan trọng ngành Tin học đưa môn học vào nhà trường phổ thông môn khoa học khác năm học 2006-2007 Bộ trưởng Bộ GDĐT đưa thị số 55/2008/CTBGTĐT ngày 30/9/2008 tăng cường giảng dạy, đào tạo ứng dụng công nghệ thông tin ngành giáo dục giai đoạn 2008-2011 Ngành Giáo dục Đào tạo nỗ lực đổi phương pháp dạy học theo hướng phát huy tính tích cực chủ động học sinh Cốt lõi việc đổi phương pháp dạy học trường phổ thông giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động, học sinh tự học, tự rèn luyện thơng qua số tập, dạng tập cụ thể II Thực trạng vấn đề nghiên cứu : Thực trạng : Tin học môn học trường phổ thơng nên học sinh cịn nhiều bỡ ngỡ tiếp cận với mơn học Trong nội dung tin học lớp 11 nội dung tương đối khó với đa số học sinh Việc học ngơn ngữ lập trình Turbo Pascal khởi đầu cho việc tiếp cận ngơn ngữ lập trình bậc cao Học sinh làm quen với nhiều khái niệm, thuật ngữ, cấu trúc liệu qua giúp em hình dung đời, cấu trúc, hoạt động ích lợi chương trình hoạt động máy tính, máy tự động… Và để làm việc cần có q trình nghiên cứu, học tập ngơn ngữ lập trình lâu dài Cấu trúc lặp cấu trúc thường sử dụng để lập trình giải tốn, có toán truy hồi Tuy nhiên số học sinh gặp tốn truy hồi em khó xác định cơng thức truy hồi tốn, đồng thời nên dùng cấu trúc lặp để giải tốn Chính vậy, học sinh cảm thấy chán nản, khơng muốn tìm hiểu rèn luyện kĩ lập trình Mặt khác với số đối tượng học sinh khá, giỏi, đa phần em hào hứng với việc học lập trình, cụ thể ngơn ngữ lập trình Turbo Pascal Do em muốn tìm hiểu sâu số tốn truy hồi mà áp dụng cấu trúc lặp để giải Giáo viên nên tích cực khai thác vốn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com hiểu biết học sinh để vận dụng, liên hệ số ví dụ mở rộng, nâng cao với đối tượng học sinh Kết thực trạng : Trên sở nhiều năm phân công dạy khối lớp 11, trường THPT Hậu Lộc 4, lưu lại kết học tập tiến học sinh năm học số lớp để có đối chiếu rút kinh nghiệm - Bảng số liệu kết đạt sử dụng cấu trúc lặp Pascal để giải toán truy hồi học sinh lớp 11 năm học 2011-2012 chưa thực đề tài: STT Lớp Sĩ số Đạt cầu yêu Không đạt yêu cầu 11A1 49 56% 44% 11A5 48 62.5% 37.5% 11A8 50 88% 12% - Khi thực nghiệm qua đối tượng học sinh nêu trên, đa số em chưa biết cách sử dụng cấu trúc lặp Pascal phù hợp với toán cụ thể - Một số khơng học sinh giải tốn có dạng truy hồi chưa phân biệt nên sử dụng cấu trúc lặp với số lần biết trước hay chưa biết trước Xuất phát từ sở trên, mạnh dạn đề xuất SKKN “Rèn luyện kĩ sử dụng cấu trúc lặp Pascal để giải số toán truy hồi cho học sinh lớp 11” B GIẢI QUYẾT VẤN ĐỀ I Bài toán truy hồi cấu trúc lặp : Bài toán truy hồi : Trong khoa học tính tốn ngày nay, phép truy hồi thuật toán để giải số toán Ưu điểm phương pháp truy hồi chỗ dùng cơng thức định để diễn tả phép tính lặp lặp lại bất chấp số lần lặp lại Chẳng hạn với tốn cấp số cộng ví dụ : U  a Cho  với a số cho trước d số cố định U n  U n 1  d ( n  1) (cơng sai) - Nếu n biết trước việc xác định số Un phải thực thông qua n bước lặp theo công thức truy hồi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Nếu n trước mà Un cần phải thỏa mãn điều kiện việc xác định Un trình lặp với số lần chưa biết trước thỏa mãn điều kiện Nhiều toán truy hồi phải thực nhiều lần số tính tốn lớn, thực việc tính tốn mà khơng sử dụng đến máy tính vơ khó khăn Một đặc trưng máy tính có khả thực có hiệu thao tác lặp thời gian nhanh Cấu trúc lặp Pascal : Tất ngơn ngữ lập trình có câu lệnh để mô tả cấu trúc lặp Trong ngôn ngữ lập trình Pascal ta sử dụng loại câu lệnh mô tả cấu trúc lặp : * Loại 1: Lặp với số lần biết trước : - Dạng lặp tiến : for := to ; - Dạng lặp lùi : for := downto ; * Loại 2: Lặp với số lần chưa biết trước: - Kiểm tra điều kiện trước: While ; - Kiểm tra điều kiện sau: Repeat ; until ; II Sử dụng cấu trúc lặp để giải toán truy hồi : Sử dụng cấu trúc For … To Do * Cấu trúc: for := to ; * Trong đó: - for, to, từ khố - biến có kiểu đếm (nguyên, kí tự, liệt kê, logic…) - , biểu thức có giá trị kiểu với - câu lệnh, câu lệnh đơn câu lệnh phức LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com * Hoạt động: Câu lệnh viết sau từ khóa thực tuần tự, với biến đếm nhận giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối, giá trị đầu lớn giá trị cuối vịng lặp khơng thực Ví dụ 1: Với a số nguyên a > 2, tính tổng: S  1 1     a a 1 a  a  100 (SGK Tin học 11 – Trang 42) Phân tích: Với tốn dễ thấy ta có cơng thức truy hồi để tính giá trị S sau: S0  a S n  S n 1  an Với n = 1→100 Việc cộng vào tổng S lặp lại 100 lần, giá trị n tham gia vòng lặp sau lần lặp n tăng lên n > 100 dừng Như số lần lặp biết trước, biến n sử dụng biến đếm từ đến 100 Từ ta có chương trình: program vidu1; var s:real; n,a : integer; begin clrscr; writeln(' Hay nhap gia tri a (a>2):'); readln(a); s := 1.0/a; for n := to 100 s := s + 1.0/(a+n); writeln('Tong s la: ',s:8:4); readln; end LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Ví dụ 2: Lập trình tính giai thừa số nguyên n (do giới hạn lưu trữ số nguyên cho n=3) Viết chương trình in số Fibônaxi với từ đến 20 Phân tích: Ta dễ dàng tìm cách tính: cho i chạy từ đến 20 tính fi theo định nghĩa: fi = fi-1 + fi-2 Ban đầu đặt biến f1 := 1; f2 := 1; sử dụng biến f0 để tính fi ứng với LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com giá trị i, ta viết f0:= f1+f2 theo cơng thức truy hồi; sau f1 f2 thay đổi giá trị để tính phần tử Tồn văn chương trình: program Vidu_3; var i, f0, f1, f2 : integer; begin writeln('Chuong trinh tinh cac so Fibonaxi tu den 20 '); f1 := 1; f2 := 1; writeln('F1 = 1'); writeln('F2 = 1'); for i := to 20 begin f0 := f1 + f2; writeln('F',i,' = ',f0); f1 := f2; f2 := f0; end; readln; end Sử dụng cấu trúc for downto * Cấu trúc: for := downto ; * Trong đó: - for, downto, từ khố - biến có kiểu đếm (nguyên, kí tự, liệt kê, logic…) - , biểu thức có giá trị kiểu với - câu lệnh, câu lệnh đơn phức * Hoạt động: Câu lệnh viết sau từ khóa thực tuần tự, với biến đếm LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com nhận giá trị liên tiếp giảm từ giá trị đầu đến giá trị cuối, giá trị đầu nhỏ giá trị cuối vịng lặp khơng thực Hoạt động cấu trúc for … downto … tương tự cấu trúc for …to … do, khác biến đếm đếm ngược Trong đa số trường hợp hai có tác dụng 50 n n=1 n+1 Ví dụ 4: Lập trình tính tổng sau: Y =  (SGK Tin học 11 – Trang 51) hân tích: Với tốn sử dụng cấu trúc lặp với số lần biết trước dạng tiến hay lùi Nếu sử dụng cấu trúc lặp For …downto … ta xây dựng cơng thức truy hồi để tính giá trị Y sau: Yn  n Với n từ 50 giảm dần n 1 Việc cộng vào tổng Y lặp lại 50 lần, giá trị n tham gia vòng lặp 50 sau lần lặp n giảm n =1 dừng Như số lần lặp biết trước, biến n sử dụng biến đếm giảm từ 50 1, tổng cần tính Y0 Ta viết chương trình sau: program vidu_4; var Y: real; n : integer; begin clrscr; Y := 0; for n := 50 downto Y := Y + n/(n+1); writeln('Tong Y la: ',Y:10:4); readln; end Tuy nhiên số trường hợp dùng cấu trúc, đặc biệt tính cơng thức truy hồi Ta xét ví dụ dùng for … downto … thích hợp hơn: Yn 1  Yn  LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Ví dụ 5: Tính tổng S =   2n với n số tự nhiên nhập từ bàn phím n dấu Phân tích: Đặt si  2i  2(i  1)  2n ta có cơng thức truy hồi sau:  s n   , s n    s i  i  s i  2n Tổng cần tính s1 Công thức truy hồi truy hồi ngược (vì tính si qua si+1) nên dùng for … down … to thích hợp Có thể viết đoạn chương trình tính sau: s:=0; for i := n downto s := sqrt (2 * i + s); Ta viết chương trình sau: program Vidu_5; var i,n : integer; s : real; begin write('Nhap mot so tu nhien n = '); readln(n); s:=0; for i := n downto s := sqrt (2 * i + s); writeln('Ket qua can tinh: s = ',s:10:5); readln; end LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sử dụng cấu trúc While … do… * Cấu trúc: While ; * Trong đó: - While, từ khố; - biểu thức logic; - câu lệnh Có thể câu lệnh đơn câu lệnh phức * Cấu trúc hoạt động sau: - Bước 1: Tính ; - Bước 2: Nếu kết (true) thực quay lại bước 1, ngược lại chuyển sang câu lệnh chương trình Ví dụ 6: Tính tổng S   1 1     đến  104 2n  2n+1 Phân tích: Ta nhận thấy: Đặt: S n   1 1     rn = (n số tự nhiên bắt 2n  2n+1 đầu 0)  s =0 Ta có:  s =s +r Sn ≈ S rn = 1E-4 Begin LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com s := s + r; n := n + 1; r:= 1/(2*n+1); end; writeln('Tong can tinh voi chinh xac 1E-4 la S = ',s :10:6); readln; end Ví dụ 7: Tính tổng S   1     đến 12  106 n n Phân tích: Phương pháp tính sau: Đặt: s n   1 1     r = n 2 32 n2 n2 (n số tự nhiên 1)  s =0 Ta có:  s =s +r Sn ≈ S rn = 1E-6 Begin s := s + r; n := n + 1; r := sqr(1/n); end; writeln('Tong can tinh voi chinh xac 1E-6 la S = ',s :10:6); readln; end Ví dụ 8: Dân số quốc gia khoảng 75 triệu người, tỉ lệ tăng tự nhiên 1.7% Hỏi sau năm dân số quốc gia đạt xấp xỉ 100 triệu? LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phân tích: đặt S0 dân số (tính theo đơn vị triệu) thời điểm tại, Sn dân số sau n năm tính từ thời điểm Ta có: s  75  s n  s n-1  s n-1*0.017 lượng tăng tự nhiên) (dân số năm sau dân số năm trước cộng thêm Như n số năm cần tìm n số tự nhiên bé thoả mãn Sn100 Ta thấy để tính trực tiếp n khơng dễ dàng sử dụng phương pháp lặp Nghĩa tăng dần n (với n 0) tính Sn theo cơng thức Sn >100 dừng * Tồn văn chương trình: program Vidu_8; var n : integer; s : real; Begin n := 0; s := 75; while s a dừng s n  s n-1  rn Q trình tính q trình lặp điều kiện dừng xảy * Tồn chương trình: Program vidu_9; Uses crt; Var a, S : real; n: longint; Begin Clrscr; Write(‘Nhap gia tri cua a:’); Readln(a); S:=0; n:=1; Repeat S:= S+ 1/n; n:= n+1; LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Until S>a; Writeln(‘ So nguyen n la:’, n ); Readln; End Ví dụ 10: Turbo Pascal có hàm exp để tính ex, nhiên ex tính theo công thức khai triển chuỗi sau: x2 x3 xn e =1+x+ + + + + 2! 3! n! Lập trình nhập số thực x tính ex với độ xác exp =2 *10-6 x Phân tích: x x3 xn xn s =1+x+ + + + + r  Đặt: n n 2! 3! n! n! s  Ta có: s  s  r sn  S rn =1 Q trình tính trình lặp điều kiện dừng xảy * Ta viết chương trình sau: program vidu_10; var s, r : real; n ,x : integer; begin writeln('Chuong trinh tinh gan dung ham e mu ',x); s := 1; n := 1; r:= 1; LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Repeat r :=r * x/n; s := s + r; n := n + 1; until r

Ngày đăng: 10/10/2022, 16:05

Hình ảnh liên quan

2. Kết quả của thực trạng trê n: - (SKKN HAY NHẤT) rèn luyện kĩ năng sử dụng cấu trúc lặp trong pascal để giải một số bài toán truy hồi cho học sinh lớp 11

2..

Kết quả của thực trạng trê n: Xem tại trang 3 của tài liệu.

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

Tài liệu liên quan