Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
199,71 KB
Nội dung
MỤC LỤC MỞ ĐẦU 1.1 Lí chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu NỘI DUNG 2.1 Cơ sở lý luận vấn đề nghiên cứu 2.11.Khái niệm lặp 2.12 Các dạng lặp 2.13.Cấu trúc chương trình lập trình 2.2 Thực trạng vấn đề nghiên cứu 2.3 Giải pháp thực 2.3.1 Bài tập áp dụng 2.3.1.1.Dạng câu lệnh For … Do Bài 1: Tính tổng dãy số Bài 2: Bài 3: Bài 4: Bài tập tự làm 2.3.1.2.Dạng 2: Câu lệnh While … Do Bài 7: Bài 8: Bài 9: Bài tập tự làm 2.4 Hiệu KẾT LUẬN, KIẾN NGHỊ TÀI LIỆU THAM KHẢO CÁC SÁNG KIẾN KINH NGHIỆM ĐÃ ĐẠT GIẢI Trang 1 1 2 2 3 4 9 11 12 13 13 14 16 17 MỞ ĐẦU 1.1 Lý chọn đề tài Hiện công nghệ thông tin ngành khoa học phát triển mạnh mẽ Sự bùng nổ thông tin thời đại ngày nay, tốc độ phát triển cơng nghệ thơng tin địi hỏi người dạy khơng có kiến thức vững vàng mà cịn phải có cách dạy sáng tạo, phù hợp để tạo hứng thú học tập cho học sinh, giúp em tiếp thu cách tốt nhất, vận dụng kiến thức để giải vấn đề thực tiễn Tin học mơn học có nội dung bổ ích thiết thực học sinh , giúp học sinh rèn luyện tư logic mà cịn mang tính sáng tạo cao Tuy nhiên, mơn học có tính trừu tượng cao, đặc biệt chương trình Tin học lớp 11 với việc học kiến thức kĩ lập trình Đây nội dung tương đối khó học sinh, đòi hỏi em phải tư duy, suy luận nhiều so với chương trình Tin học 10, 12 Trong trình giảng dạy, đặc biệt chương trình Tin học lớp 11, nhận thấy học sinh thường gặp khó khăn q trình chuyển từ kiến thức lý thuyết sang việc lập trình tốn hồn chỉnh Đa số em lúng túng xác định thuật toán cho toán trước bước vào phần lập trình Nhận biết khó khăn học sinh, tơi cố gắng tìm kiếm phương pháp dạy học nhằm giúp học sinh giải khó khăn việc giải tập dạng lặp Đó lý tơi chọn đề tài: “ Hướng dẫn học sinh lập trình tập cấu trúc lặp cách tìm cơng thức lặp” 1.2 Mục đích nghiên cứu: Khi định lựa chọn đề tài này, mục đích nghiên cứu tơi giúp học sinh: - Hiểu hơn, nắm vững kiến thức lý thuyết để vận dụng thực hành tốt - Hình thành cho học sinh khả tự lập trình - Lập trình tốn theo khối đồng thời trình bày tốn khoa học 1.3 Đối tượng nghiên cứu: “ Hướng dẫn học sinh lập trình tập cấu trúc lặp cách tìm cơng thức lặp” 1.4 Phương pháp nghiên cứu: Để làm sáng rõ đề tài này, sử dụng phương pháp sau: - Phương pháp phân tích - Phương pháp so sánh, đối chiếu - Phương pháp phân loại - Phương pháp thống kê - Phương pháp thực nghiệm, đối chứng - Phương pháp tổng hợp NỘI DUNG 2.1 Cơ sở lý luận 2.1.1 Khái niệm lặp Lặp cấu trúc hoạt động cho phép lặp lại dòng lệnh nhiều lần dòng lệnh chạy theo thứ tự từ xuống Nói chung thuật tốn có thao tác lặp phải thực lặp lặp lại số lần Một đặc trưng máy tính có khả thực hiệu thao tác lặp 2.1.2 Các dạng lặp Cấu trúc lặp mô tả thao tác lặp có hai dạng : lặp với số lần biết trước lặp với số lần chưa biết trước Cấu trúc lặp với số lần biết trước sử dụng câu lệnh For…….do Cấu trúc lặp với số lần chưa biết trước sử dụng câu lệnh While… 2.1.3.Cấu trúc chương trình lập trình Trong trình giảng dạy thân nhiều năm qua, tơi tìm cấu trúc vận dụng vào dạy Khi vận dụng cấu trúc này, tơi nhận thấy, học sinh tự hồn thành chương trình lập trình hồn chỉnh Vì thế, tơi sử dụng cấu trúc vào việc hướng dẫn học sinh lập trình tập lớp 11 Phần khai báo Phần thân Nhậ p liệu Xử lý Viết kết 2.2 Thực trạng vấn đề nghiên cứu Từ thực tế giảng dạy nhận thấy, học sinh hứng thú học máy tính Hơn nữa, lập trình tốn quen thuộc mà học sinh học mơn Tốn Vì vậy, học sinh muốn tự viết chương trình máy tính để giải tốn Tuy nhiên, kỹ lập trình phận khơng nhỏ học sinh trường phổ thơng cịn yếu Trong đó, thời lượng dành cho tiết học có 45 phút ,trong tiết, giáo viên vừa phải giúp học sinh định hướng ý tưởng lập trình chuyển đổi ý tưởng thành thuật tốn viết thành chương trình hồn chỉnh máy Vì vậy, để giúp hồn thành chương trình khó Cấu trúc lặp vận dụng nhiều dạy Vì thế, học sinh khơng nắm vững việc sử dụng câu lệnh khó tiếp thu kiến thức Bên cạnh đó, Tin học khơng thuộc môn thi tốt nghiệp, đại học nên phần lớn học sinh quan tâm, đầu tư thời gian công sức Đây trở ngai khiến cho kết dạy học chưa cao 2.3 Giải pháp thực Khi học sinh nắm cấu trúc câu lệnh, giáo viên đưa tập cụ thể để áp dụng câu lệnh vào lập trình Tuy nhiên giáo viên sâu vào hướng dẫn thuật tốn bắt tay vào lập trình học sinh cảm thấy khó khơng cịn hứng thú Trong nhiều năm giảng dạy Tôi hướng dẫn học sinh xác định việc: - Công việc 1: Xác định công thức lặp - Cơng việc 2: Xác định cơng thức lặp Khi tìm việc coi việc lập trình tốn đạt 70% Việc cịn lại chuyển cơng thức sang câu lệnh hồn thành chương trình Trường hợp 1: Xác định số lần lặp cơng thức quy dạng lặp biết trước số lần, ta có thuật tốn cho lập trình sau: For i:= to Số lần lặp Công thức lặp; Trường hợp 2: Nếu không xác định số lần lặp cho cơng thức lặp xác định điều kiện tốn điều kiện điều kiện lặp tốn, ta có chương trình tống qt sau: While Công thức lặp; Chú ý: Về mặt thực tế cơng thức lặp lệnh nhiều lệnh 2.3.1 Bài tập áp dụng 2.3.1.1 Dạng 1: Câu lệnh For … Do Bài 1: Tính đưa kết hình tổng: S 1 1 a a 1 a a 100 Hướng dẫn: Công viêc 1: Tìm cơng thức lặp Khởi tạo: Lần 1: a 1 S S a a 1 a 1 S (Thay giá trị S khởi tạo vào biểu thức) Lần 2: S 1 1 S a a 1 a a2 (Thay giá trị S lần vào S 1 1 S a a 1 a a a3 (Thay giá trị S lần vào biểu thức) Lần 3: biểu thức) ……………… ……………… Lần i: Ta có kết sau: SS ai Đây cơng thức lặp tốn Cơng việc 2: Xác định xem cơng thức lặp GV? Nhìn vào trình phân tích ta thấy i có giá trị nào? HS: Giá trị i 1,100 i nhỏ =1 lớn 100 GV: Điều cho thấy cơng thức tổng qt lặp 100 lần GV: Như ta quy toán dạng lặp nào? Hs: Lặp biết trước số lần GV: Giá trị bắt đầu kết thúc bao nhiêu? Hs: giá trị bắt đầu kết thúc 100 GV: Như ta có đoạn chương trình lập trình sau For i:=1 to 100 S:=S+1/(a+i); Giáo viên hướng dẫn học sinh hồn thành chương trình dựa vào cấu trúc chương trình học Đặc biệt chi đoạn chương trình vòng lặp For….Do câu lệnh nằm phần xử lý Phần khai báo Program Tinh_tong; Uses crt; Var i:byte; S,a: real; Nhập Begin liệu Write(‘nhap du lieu cho a’); Readln(a); S:=1/a; Xử lý For i:=1 to 100 S:=S+1/(a+i); Phần thân Viết kết Write(‘Tông = ‘,a:8:2); Readln End 50 n n 1 n Bài 2: Tính giá trị biểu thức: Y Gv: Ta viết cơng thức sau: Y 50 11 1 1 50 Công việc 1: Xác định công thức lặp Giáo viên gọi học sinh lên xác định, yêu cầu học sinh trình bày bước hướng dẫn giáo viên Khởi tạo: Y=0; Lần Lần Lần 1 0 Y 11 11 11 2 Y Y 11 1 1 3 Y Y 11 1 1 1 Y ……… ……… Lần i Y Y i i 1 Đây công thức lặp Công việc 2: Xác định xem công thức lặp nào? Dễ dàng nhận công thức lặp 50 lần i có giá trị bắt đầu =1 lớn =50 - Giáo viên gọi học sinh lên viết đoạn chương trình cho tốn For i:=1 to 50 Y:=Y+i/(i+1); - Giáo viên cho học sinh hoàn thành lập trình kiểm tra kết Phần khai báo Program Tinh_tong; Uses crt; Var i:integer; Y: real; Nhập Begin liệu Y:=0; For i:=1 to 50 Xử lý Y:=Y+i/(i+1); Viết kết Write(‘Ket qua la:’, Y:8:2); End; Phần thân Readln End GV: Từ chương trình vừa thực em có nhận xét gì? HS: Việc quan trọng tìm đoạn chương trình phần xử lý Như để có đoạn chương trình phần xử lý hồn tồn làm thơng qua việc tìm cơng thức lặp số lần lặp cho cơng thức Tơi tiếp tục đưa tốn với việc tìm cơng thức lặp phức tạp để học sinh cảm thấy việc làm áp dụng cho lập trình dạng lặp Bài 3: Tính tổng sau: S n 1! 2! 3! n! (n nhập vào từ bàn phím) Gv: Với tốn việc tính tốn trở nên phức tạp hơn, nhiên công việc mà ta xác định thực sau: Công việc 1: Xác định cơng thức lặp GV: Việc khó ở mẫu số phép tính giai thừa nghĩa ta phải tính mẫu số sau tính tổng Khởi tạo S=0; m=1; Lần 1: m = 1! = 1*1= m*1; S 0 Lần 2: 1 S 1! m m=2! = 1! *2=m*2 S 2 S 1! 2! m Lần 3: m=3! =2!*3=m*3; S 3 S 1! 2! 3! m …… …… Lần i m=m*i SS i m Đây có phải cơng thức lặp mà ta tìm GV: Em có nhận xét cơng thức lặp trên? Hs: Có cơng thức cần phải tính Gv: Như viết chương trình ta có câu lệnh tương ứng Cơng việc 2: Tìm số lần lặp GV: Gọi học sinh xác định số lần lặp HS: Số lần lặp là: n lần với n nhập vào từ bàn phím Giá trị bắt đầu giá trị cuối n GV: Gọi học sinh viết đoạn chương trình For i:=1 to n Begin m:=m*i S:=S+i/m; End; Gv: Yêu cầu học sinh viết chương trình hồn chỉnh chạy chương trình máy tính để kiểm tra kết Phần khai Program Tính; báo Uses crt; Var m,n,i:integer; S:real; Nhập Begin liệu Write(‘Nhap so nguyen n); Readln(n); Phần thân Xử lý Viết kết m:=1;S:=0 for i:=1 to n begin m:=m*i; S:=S+i/m end; Write(‘Tong = ‘,S:8:2); Readln End Bài 4: Viết chương trình tính tổng N số tự nhiên với N nhập vào từ bàn phím GV: Trước tiên phải cho học sinh hiểu đầu bài: Nếu N=8 ta nhập số tự nhiên tính tổng số Cơng việc 1: Xác định công thức lặp Gv: Với tập em hình dung giống nhặt bóng vào rổ, ban đầu rổ chưa có bóng nào, nghĩa số bóng rổ Ta cần phải thực n lần nhặt, lần nhặt số bóng ta cho vào rổ tính ln số bóng rổ cách lấy số bóng ban đầu cộng với số bóng vưa ném vào Sau n lần nhặt ta đếm số bóng có rổ mà không cần phải đếm lại Gv: Như việc lần ta nhặt số bóng cho vào rổ thao tác ta nhập số vào máy tính Gọi số “so” Sau ta tính cộng số bóng rổ với số bóng vừa ném vào việc ta cộng ln số vừa nhập vào với tổng có trước Với giá trị tổng ban đầu =0 Gv: Quá trình thực việc có lặp lại khơng? Hs: Được lặp lại nhiều lần Gv: Như ta có cơng thức lặp sau: - Nhập số tự nhiên - Tong Tong +So Công việc 2:Xác định số lần lặp Gv: Việc tính tổng dừng lại nào? Hs: Khi công thức lặp lặp N lần Học sinh viết đoạn chương trình For i:=1 to n Begin Write(‘nhap so’); readln(so); Tong:= Tong+so; End; Học sinh viết chương trình hồn chỉnh vào máy tính Phần Program Tong_so; khai Uses crt; báo Var so,tong:integer; i, n:word; Nhập Begin liệu Write(‘nhap bao nhieu so: ‘); Readln(n); Phần thân Tong:=0; For i:=1 to n Begin Write(‘nhap so:’); readln(so); Tong:= Tong +so; End; Xử lý Viết kết Write(‘Tong cua : ‘,n, ‘ So tu nhien la :’,tong:4); Readln End Bài tập tự làm 50 Bài 5: Tính tổng n 2n a n 1 (a nhập vào từ bàn phím) Bài 6:Viết chương trình tính tổng S=12+22+32+….n2 (n nhập từ bàn phím) 2.3.1.2 Dạng 2: Câu lệnh While … Do Giáo viên khẳng định cho học sinh lệnh While … Do sử dụng ta biết trước điều kiện dừng vòng lặp mà chưa biết rõ số lần lặp công thức Như việc quan trọng tìm cơng thức lặp Bài 7: Tính tổng dãy số S= 1 1 a a 1 a an Khi 1.0/(a+n) n n+1; Gv: Như giá trị i ta phải tính giá trị giá trị i giá trị cúa S thời điểm n=i Như ta có công thức lặp sau: i i+1 SS ai Công việc 2: Xác định điều kiện lặp Gv: Theo yêu cầu đầu tổng dãy số không tính tiếp nào? Hs: Khi 1.0/(a+n)=0.0001 tính tổng dựa vào công thức lặp tăng giá trị n 1.0/(a+n)=0.0001 Begin S:=S+1.0/(a+n); n:=n+1; End; Gọi học sinh lên viết chương trình với hướng dẫn GV để chương trình hồn chỉnh Phần khai Program ; báo Uses crt; Var a, S: real; n:word; Nhập Begin liệu Write(‘nhap gia tri cho a: ‘); Readln(a); Phần thân S:=1.0/a; n:=1; While 1.0/(a+n)>=0.0001 Begin S:= S+1/(a+n); N:=n+1; End; Xử lý Viết kết Write(‘Ket qua la:’, S:9:2); Readln End Bài 8: Viết chương trình nhập vào số thực A tìm số tự nhiên nhỏ N 1 cho N A 10 Công việc 1: Xác định công thức lặp Đặt tổng dãy số S Khởi tạo S=0; N=0; Lần 1: N=1; N=0+1=N+1; S=1; S=0+1=S+1/N; Lần 2: N=2=1+1=N+1; S 1 1 S N Lần 3: N=3 = 2+1=N+1; S 1 1 S N …… …… Lần i: N:=N+1; SS N Như công thức lặp N:=N+1 S:=S+1/N Công việc 2: Xác định điều kiện lặp Gv: N tiếp tục tăng tổng S tính tiếp nào? Hs: Khi tổng dãy số chưa lớn A cho trước Gv: Vậy điệu kiện lặp gì? Hs: Khi S