Sáng kiến kinh nghiệm Rèn luyện kĩ năng sử dụng cấu trúc lặp trong lập trình Pascal cho học sinh lớp 11
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Rèn luyện kĩ năng sử dụng cấu trúc lặp trong lập trình Pascal cho học sinh lớp 11", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
Tóm tắt nội dung tài liệu: Sáng kiến kinh nghiệm Rèn luyện kĩ năng sử dụng cấu trúc lặp trong lập trình Pascal cho học sinh lớp 11
SỞ GIÁO DỤC VÀ ĐÀO TẠO VĨNH PHÚC TRƯỜNG THPT YÊN LẠC 2 ---------- BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN Tên sáng kiến: RÈN LUYỆN KĨ NĂNG SỬ DỤNG CẤU TRÚC LẶP TRONG LẬP TRÌNH PASCAL CHO HỌC SINH LỚP 11 Tác giả sáng kiến: NGUYỄN THỊ NỤ Mã sáng kiến: 28.62.02 Vĩnh Phúc, năm 2020 Trang 1 MỤC LỤC 1. LỜI GIỚI THIỆU .........................................................................................................1 2. TÊN SÁNG KIẾN ........................................................................................................1 3. TÁC GIẢ SÁNG KIẾN................................................................................................1 4. CHỦ ĐẦU TƯ SÁNG TẠO RA SÁNG KIẾN............................................................1 5. LĨNH VỰC ÁP DỤNG SÁNG KIẾN ..........................................................................1 6. NGÀY SÁNG KIẾN ĐƯỢC ÁP DỤNG .....................................................................1 7. MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN ....................................................................1 7.1. Tổng quan các vấn đề nghiên cứu ...........................................................................2 7.1.1. Mục đích nghiên cứu .......................................................................................2 7.1.2. Bản chất đối tượng nghiên cứu........................................................................2 7.1.3. Đối tượng, phạm vi nghiên cứu .......................................................................2 7.1.4. Phương pháp nghiên cứu .................................................................................2 7.1.5. Giới hạn về không gian của phương pháp nghiên cứu ....................................2 7.2. Phần nội dung ..........................................................................................................3 7.2.1. Cơ sở lý luận....................................................................................................3 7.2.2. Cơ sở thực tiễn.................................................................................................3 7.2.3. Nội dung cụ thể................................................................................................3 I. Lặp ...................................................................................................................3 II. Lặp với số lần biết trước và câu lệnh FOR – DO ............................................4 1. Cú pháp và hoạt động của câu lệnh For – do...............................................4 2. Một số ví dụ .................................................................................................6 III. Lặp với số lần chưa biết trước.......................................................................16 1. Cú pháp và hoạt động của lệnh lặp với số lần chưa biết trước ..................16 a. Câu lệnh While – do ...............................................................................16 b. Câu lệnh lặp repeat_until........................................................................16 2. Một số ví dụ ...............................................................................................18 IV. Bài tập áp dụng ..........................................................................................23 7.3. Khả năng áp dụng của sáng kiến ...........................................................................24 8. NHỮNG THÔNG TIN CẦN BẢO MẬT ..................................................................24 9. CÁC ĐIỀU KIỆN CẦN THIẾT ĐỂ ÁP DỤNG SÁNG KIẾN..................................24 10. LỢI ÍCH THU ĐƯỢC ................................................................................................24 11. DANH SÁCH TỔ CHỨC, CÁ NHÂN ĐÃ THAM GIA ÁP DỤNG SÁNG KIẾN..29 KẾT LUẬN .......................................................................................................................30 TÀI LIỆU THAM KHẢO .................................................................................................31 Trang 3 Từ ngày 01/08/2019 7. MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN 7.1. Tổng quan các vấn đề nghiên cứu 7.1.1. Mục đích nghiên cứu Góp phần đổi mới phương pháp dạy học sinh giỏi môn Tin học theo hướng phát huy tính tích cực, chủ động và sáng tạo của học sinh giúp học sinh tiếp thu tri thức một cách có hiệu quả. Góp phần gây hứng thú học tập môn Tin học cho học sinh tham gia thi chọn học sinh giỏi, tránh việc học thụ động, học vẹt. Giúp học sinh lĩnh hội tri thức một cách khoa học, củng cố và khắc sâu kiến thức. Qua đề tài này tôi mong muốn cung cấp cho học sinh một những vấn đề mà các em đang gặp phải về kĩ năng sử dụng cấu trúc lặp trong khi lập trình giúp các em chủ động hơn trong học tập, tích luỹ kiến thức, kỹ năng lập trình. 7.1.2. Bản chất đối tượng nghiên cứu Đưa ra hệ thống lý thuyết về cấu trúc lặp và ứng dụng cấu trúc lặp giải các bài tập trong ngôn ngữ lập trình Pascal giúp học sinh lĩnh hội tri thức, giúp các em tích cực, chủ động tích lũy kiến thức. Qua đó, học sinh phát triển được tư duy logic thông qua hệ thống bài tập giúp các em rèn luyện được tính tự giác, tính kỉ luật, thói quen tự học đó là những đức tính rèn luyện tốt của học sinh. 7.1.3. Đối tượng, phạm vi nghiên cứu - Đối tượng: Cấu trúc lặp trong lập trình - Phạm vi: Các vấn đề về cấu trúc lặp trong chương trình tin học lập trình trên ngôn ngữ Pascal. 7.1.4. Phương pháp nghiên cứu Phương pháp Nghiên cứu lí luận chung. Khảo sát điều tra thực tế dạy học. Tổng hợp đúc rút kinh nghiệm. Cách thực hiện Trao đổi với đồng nghiệp, tham khảo ý kiến giáo viên cùng bộ môn. Liên hệ thực tế trong nhà trường, áp dụng và đúc rút kinh nghiệm qua quá trình giảng dạy. Thông qua việc giảng dạy trực tiếp học sinh lớp 11 và học sinh tham gia thi chọn học sinh giỏi môn Tin học khối 10 tại trường THPT Yên Lạc 2 năm học 2019 -2020. 7.1.5. Giới hạn về không gian của phương pháp nghiên cứu Trang 2 I. Lặp Xét 2 bài toán sau đây: Bài toán 1: Tính và đưa kết quả ra màn hình tổng S = 1+2+3++100 Bài toán 2: Tính và đưa kết quả ra màn hình tổng S = 1+2+3+..+n+ cho đến khi S > 105 Với cả 2 bài toán trên, dễ thấy cách để tính tổng S có nhiều điểm tương tự: • Xuất phát, S được gán giá trị 0; • Tiếp theo công vào tổng S một giá trị i với i = 1,2,3,4,5,. Việc cộng này được lặp lại một số lần. Đối với bài toán 1, số lần lặp là 100 và việc cộng vào tổng S sẽ kết thúc khi thực hiện cồn việc 100 lần. Đối với bài toán 2, số lần lặp chưa biết trước nhưng việc cộng vào tổng S sẽ kết thúc khi điều kiện S > 105 được thỏa mãn. Nói chung, ta thấy trong một số thuật toán có những thao tác phải lặp đi lặp lại nhiều lần. Cấu trúc lặp mô tả thao tác lặp được phân biệt 2 loại là lặp với số lần biết trước và lặp với số lần chưa biết trước. Các ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc lặp. II. Lặp với số lần biết trước và câu lệnh FOR – DO 1. Cú pháp và hoạt động của câu lệnh For – do Có 2 thuật toán tong1a và tong1b để giải bài toán 1 như sau: Thuật toán tong1a Bước 1: S ← 0; i ← 0; Bước 2: i ← i+1; Bước 3: Nếu i < 1 thì chuyển đến bước 5; Bước 4: S ← S+i rồi quay lại bước 2; Bước 5: Đưa S ra màn hình rồi kết thúc. Thuật toán tong1b Bước 1: S ← 0; i ← 101; Bước 2: i ← i-1; Bước 3: Nếu i > 100 thì chuyển đến bước 5; Bước 4: S ← S+i rồi quay lại bước 2; Bước 5: Đưa S ra màn hình rồi kết thúc. Trong thuật toán tong1a, giá trị i khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp i tăng lên 1 đơn vị cho đến khi i > 100 thì kết thúc lặp (thực hiện 100 lần). Trong thuật toán tong1b giá trị i khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp giảm đi 1 Trang 4 For i:= 1 to 100 do S:= S+i; Write (‘Tong S la: ‘, S); Readln; End. Program tong1b; Var S, i: longint; Begin S:=0; For i:= 100 downto 1 do S:= S+i; Write (‘Tong S la: ‘, S); Readln; End. 2. Một số ví dụ Ví dụ 1: Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng n (0<=n<=106). a. Ý tưởng - Sử dụng vòng lặp tiến với biến đếm i chạy từ đến n để duyệt lần lượt các số từ 1 đến n; - Nếu i lẻ ( i mod 1 0) thì in ra số i. b. Code tham khảo Program In_So_le; Uses crt; var i,n: longint; Begin Clrscr; Write('Nhap so n ='); readln(n); For i:=1 to n do Trang 6 Program dem_So_chan_le_2; Uses crt; var i,n,m, d_chan, d_le: qword; Begin Clrscr; Write('Nhap so n ='); readln(n); Write('Nhap so m ='); readln(m); d_chan:=0; d_le:=0; For i:=n+1 to m-1 do if i mod 2 0 then inc(d_le) else inc(d_chan); Writeln(‘Co ‘,d_chan,’ so chan trong khoang tu ‘,n,’ den ‘,m); Writeln(‘Co ‘,d_le,’ so le trong khoang tu ‘,n,’ den ‘,m); readln end. Ví dụ 4: Một số có tổng các ước thực sự (là các ước không kể chính nó) bằng chính nó được gọi là số hoàn chỉnh. Ví dụ: Số nguyên 6 có các ước thực sự là 1, 2, 3. Tổng là 1 + 2 + 3 = 6. Viết chương trình xét xem một số n (n<1018) được nhập từ bàn phím có phải là số hoàn chỉnh không. a. Ý tưởng - Dùng biến n lưu số cần xét. - Biến S lưu trữ tổng các ước thực sự, khởi tạo s:= 0; - Sử dụng vòng lặp for với biến đếm i chạy từ 1 đến n-1. nếu i là ước của n thì cộng thêm i vào S. - Nếu S = n thì đưa ra thông báo n là số hoàn chỉnh, ngược lại đưa ra thông báo n không là số hoàn chỉnh . b. Code tham khảo Program So_Hoan_Chinh; uses crt; var n, i, s: int64; Trang 8 Program Tim_uoc_2; uses crt; Var S, n, i, j: longint; Begin clrscr; Write('Nhap so n ='); readln(n); For i:=1 to n-1 do Begin S:=0; For j:=1 to i div 2 do if i mod j = 0 then S:=S+j; if S = i then write(i,', '); end; readln end. Ví dụ 6: Viết chương trình xét xem một số n có phải là số nguyên tố không (0<n<=105)? Số nguyên tố là số chỉ có 2 ước là 1 và chính nó a. Ý tưởng - Nếu n không chia hết mọi số i trong đoạn từ 2 đến n - 1 thì n là số nguyên tố. - Sử dụng biến ok có kiểu boolean và có giá trị ban đầu là true. - Cho biến i chạy từ 2 đến n – 1. Xét n mod i = 0 thì gán ok = false. - Nếu ok = true thì n là số nguyên tố, ngược lại thì n không phải là số nguyên tố b. Code tham khảo Program Nguyen_to_1; uses crt; var n, i: integer; ok: boolean; begin ok:=true; write('Nhap n: ');readln(n); for i:= 2 to n-1 do Trang 10
File đính kèm:
- sang_kien_kinh_nghiem_ren_luyen_ki_nang_su_dung_cau_truc_lap.docx