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

docx 34 trang sk11 18/07/2024 790
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á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:

  • docxsang_kien_kinh_nghiem_ren_luyen_ki_nang_su_dung_cau_truc_lap.docx