SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA
TRƯỜNG THPT NÔNG CỐNG 3
SÁNG KIẾN KINH NGHIỆM
TÊN ĐỀ TÀI
“HƯỚNG DẪN HỌC SINH LẬP TRÌNH GIẢI CÁC BÀI TOÁN
CÓ SỬ DỤNG CẤU TRÚC LẶP BẰNG HỆ THỐNG CÁC CÂU HỎI”
Người thực hiện: Mạc Thị Năm
Chức vụ: Giáo viên
Đơn vị công tác: Trường THPT Nông Cống 3
Môn: Tin học
THANH HOÁ NĂM 2016
MỤC LỤC
Trang
I. MỞ ĐẦU..............................................................................................................3
II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM......................................................3
1. Cơ sở lí luận.........................................................................................................3
2. Thực trạng vấn đề................................................................................................4
3. Giải quyết vấn đề.................................................................................................4
4. Hiệu quả của sáng kiến kinh nghiệm...................................................................13
III. KẾT LUẬN, KIẾN NGHỊ.................................................................................14
2
I. MỞ ĐẦU
+ Câu lệnh: Là câu lệnh đơn hoặc câu lệnh ghép
a.2. ý nghĩa
- Câu lệnh viết sau từ khoá Do được thực hiện tuần tự, với biến đếm lần lượt nhận
các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối.
- Sau mỗi lần lặp, biến đếm tự động tăng lên 1đơn vị
b. Dạng lặp lùi
* Cú pháp:
FOR <biến đếm>:= <gtrị cuối> DOWNTO <gtrị đầu> DO <câu lệnh>;
3
Tương tự như dạng lặp tiến, chỉ khác là sau mỗi lần lặp, biến đếm tự động giảm đi
1 đơn vị
* Chú ý:
- Trong <câu lệnh> không được thay đổi giá trị của biến đếm
- Số lần lặp là:
Giá trị cuối – giá trị đầu + 1
c. Lặp với số lần chưa biết trước và câu lệnh While - Do
* Cú pháp:
While <điều kiện> Do <câu lệnh>;
Trong đó:
+ Điều kiện: Là biểu thức quan hệ hoặc biểu thức logic.
+ Câu lệnh: Là một câu đơn hoặc câu lệnh ghép.
* ý nghĩa: Trong khi <điều kiện> còn đúng thì còn thực hiện <câu lệnh>.
2. Thực trạng vấn đề.
Trong quá trình giảng dạy bộ môn Tin học lớp 11. Tôi nhận thấy đa số học
sinh còn lúng túng và gặp khó khăn khi lập trình một bài toán có sử dụng cấu
trúc lặp, dẫn đến một thực trạng trong các giờ bài tập đa phần các em không
hứng thú, không sôi nỗi và có phần lo lắng. Nguyên nhân là do các em còn mơ
Tỉ lệ
8,8% 15
Tỉ lệ
33,3% 19
Tỉ lệ
42,2% 5
Tỉ lệ
11,3%
Đứng trước thực trạng trên, trong quá trình giảng dạy tin học lớp 11. Khi
hướng dẫn học sinh làm bài tập tôi nhận thấy có thể giải quyết vấn đề bài toán
một cách đơn giản nếu được sự hỗ trợ của giáo viên bằng hệ thống các câu hỏi.
Khi các em có thể tự mình trả lời hệ thống các câu hỏi tức là các em biết cách
tiến hành giải quyết toàn bộ bài toán bằng ngôn ngữ lập trình.
3. Giải quyết vấn đề.
Câu 1: Lập trình: Đưa ra màn hình 5 dòng chữ “chao cac ban”.
Hỏi: Viết câu lệnh đưa ra màn hình?
Trả lời: Writeln(‘chao cac ban’);
Hỏi: Câu lệnh trên được được viết lặp bao nhiêu lần?
4
Trả lời: 5 lần
45 +10
Hỏi: Trình bày cách tính tổng vừa rồi?
Trả lời: - Cách tính: tổng được cộng dồn lại: tổng sau= tổng trước + số hạng tiếp
theo
Hỏi: Thao tác nào được lặp?
Trả lời: tổng sau= tổng trước + số hạng tiếp theo
Hỏi: Thao tác đó lặp mấy lần?
Trả lời: 10 lần
5
Hỏi: Trong thao tác lặp, hãy xác định: Thành phần không thay đổi, thành phần thay
đổi và thay đổi theo quy luật nào sau mỗi lần lặp?
Trả lời :
+ Thành phần không thay đổi:
tổng sau= tổng trước +
+ Thành phần thay đổi: Giá trị của mỗi số hạng trong dãy. Thay đổi theo quy luật:
số đứng sau>số đứng trước 1 đơn vị, bắt đầu từ 1.
Hỏi: Sử dụng câu lệnh lặp nào?
Trả lời: Dạng lặp tiến.
Hỏi: Viết đoạn chương trình tính tổng?
Trả lời:
s:=0;
For i:=1 to 10 do s:=s+i;
Write(‘tong la’, s:3);
Hỏi: Lập trình?
Program
tinhtong ;
Uses crt ;
Var s,i :byte ;
tổng sau= tổng trước +
+ Thành phần thay đổi: Giá trị căn bậc 2 của mỗi số hạng trong dãy. Thay đổi theo
quy luật: số đứng sau>số đứng trước 1 đơn vị, bắt đầu từ 1
Hỏi: Sử dụng câu lệnh lặp nào?
Trả lời: Dạng lặp tiến.
Hỏi: Viết đoạn chương trình tính tổng?
s:=0;
For i:=1 to n do s:= s+ i*i;
Write(‘tong la’, s:6);
Hỏi: Lập trình?
Program
tongbinhphuong;
Uses crt;
Var s:integer;
i,n: word;
Begin
Clrscr;
s:=0;
For i:=1 to n do s:=s+i*i;
Write(‘tong la’, s:6);
Readln;
End.
Câu 4: Lập trình đưa ra màn hình dãy số sau:
46 43 40 37 34 31 28 25 22 19 16 13 10 7 4
Hỏi: Phân tích dãy số trên?
46= 3* 15 +1
43 = 3*14 +1
40= 3*13 +1
37= 3* 12 +1
……………
Clrscr;
For i:=15 downto 1 do Begin
so:=3*i+1;
Write(so:4);
End;
Readln;
End.
Câu 5: Lập trình: Tính tổng: S = 1 + 2 + 3 + 4 + 5 + 6 + …
Cho đến khi S>=75
- Giáo viên phân tích thao tác tính tổng:
S= 1 + 2 + 3 + 4 +5+6+…………
1 + 2 + 3 + 4 + 5 + 6+………
1
1+ 2
3 +3
6 +4
10 + 5
15+6
………………………………………..
Hỏi: Nêu nhận xét cách tính tổng?
8
Trả lời: - tổng sau= tổng trước + số hạng tiếp theo(thay đổi theo quy luật số hạng
sau >số hạng trước 1 đơn vị)
Hỏi: Thao tác đó lặp mấy lần?
Trả lời: Chưa biết trước số lần lặp, tính tổng cho đến khi s>=75
Hỏi: Sử dụng câu lệnh lặp nào?
Trả lời : while
do
readln;
End.
Câu 6: Lập trình: Tính và đưa ra màn hình tổng:
S=
1
1
1
1
+
+
+ ...... +
+ ........
a a +1 a + 2
a+n
nguyên và a>2 được nhập từ bàn phím.
Giáo viên phân tích thao tác tính tổng:
cho đến khi
1
< 0.0001 , với a là số
a+n
9
1
1
S=
……………………………………………
Hỏi: Nêu nhận xét cách tính tổng?
Trả lời: tổng sau= tổng trước + 1/ (a+ số hạng tiếp theo(thay đổi theo quy luật số
hạng sau >số hạng trước 1 đơn vị))
Hỏi: Thao tác đó lặp mấy lần?
Trả lời: Số lần lặp chưa biết trước, tính tổng cho đến khi
1
< 0.0001 .
a+n
Hỏi: Sử dụng câu lệnh lặp nào ?
Trả lời : while - do
Hỏi: + Điều kiện lặp là gì?
+ Lệnh cần lặp là gì?
+ Lệnh nào là lệnh làm thay đổi điều kiện?
Trả lời: - Điều kiện lặp là: 1/ ( a + n) >= 0.0001
- Lệnh cần lặp:
s:= s + 1.0 / (a + n) ;
n:=n+1;
- Lệnh nào là lệnh làm thay đổi điều kiện: n:=n+1;
Hỏi: Viết đoạn chương trình tính tổng:
Trả lời :
s:=1.0/a ; n:=0 ;
While 1/ (a + n) >= 0.0001 do
Begin
n:=n+1;
s:= s + 1.0 / (a + n) ;
Hỏi: Sử dụng câu lệnh lặp nào?
Trả lời: while - do
Hỏi: + Điều kiện lặp là gì?
+ Lệnh cần lặp là gì?
+ Lệnh nào là lệnh làm thay đổi điều kiện?
Trả lời: - Điều kiện lặp là: M< >N
- Lệnh cần lặp: if M>N then M:= M-N else N:=N-M;
- Lệnh nào là lệnh làm thay đổi điều kiện: M:= M-N ; N:=N-M ;
Hỏi: Viết đoạn chương trình sử dụng câu lệnh lặp?
Trả lời: while M< >N do if M>N then M:= M-N else N:=N-M;
Hỏi: Lập trình:
Program
ucln;
uses crt;
var
M, N: word;
Begin
Clrscr;
Write(‘nhap M,N=’); readln(M,N);
while M< >N do if M>N then M:= M-N else N:=N-M;
write(‘ucln la’,
M:5);
readln;
End.
11
Câu 8: Một người gửi tiết kiệm không kì hạn với số tiền A đồng với lãi suất 0,3%
mỗi tháng. Hỏi sau bao nhiêu tháng, người đó rút hết tiền thì sẽ nhận được số tiền ít
nhất là B đồng? Biết rằng với việc gửi tiết kiệm không kì hạn thì lãi không được
Program
tinhtien;
uses crt;
var
tien, A, B:real;
thang: word;
Begin
Clrscr;
Write(‘nhap so tien A,B’); readln(A,B);
tien:=A; thang:=0;
While Tien
< 2*10−6 .
1! 2!
n!
n!
e = 1+ +
4. Hiệu quả của sáng kiến kinh nghiệm.
Sau khi áp dụng đề tài này tại lớp 11C2, trường THPT Nông Cống 3 tôi nhận
thấy: Trong các giờ đã gây được sự chú ý, cuốn hút các em tập trung học tập, động
não, suy nghĩ, học tập sôi nỗi và tạo cho học sinh một thói quen học tập nghiêm
túc, khoa học, kết quả học tập được nâng lên rõ rệt.
13
Qua kết quả khảo sát ở lớp 11C2, trường THPT Nông Cống 3, tổng số 45 học
sinh. Năm học 2015 – 2016, kết quả thu được như sau.
Điểm Giỏi
Điểm Khá
Điểm TB
Điểm Yếu
Điểm Kém
SL
Tỉ lệ
SL
5
đã phát huy được tính tích cực, chủ động và sáng tạo trong học sinh. Giáo viên
nhận trách nhiệm quan trọng hơn, nặng nề hơn với vai trò là người thiết kế, uỷ thác,
điều khiển và thể chế hoá.
- Kiến nghị:
Đối với giáo viên: Không ngừng tự học, tự bồi dưỡng để kịp thời lĩnh hội các
kiến thức chuyên môn, có kỷ năng sử dụng thành thạo các trang thiết bị dạy học
hiện đại. Sử dụng các phương pháp thích hợp để kích thích sự hứng thú học tập của
học sinh.
Nhà trường tăng cường thêm về cơ sở vật chất, đảm bảo về trang thiết bị cho
việc dạy và học, cụ thể là: Tăng cường thêm các thiết bị máy móc như máy vi tính,
máy chiếu đa năng.
XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ
Thanh Hóa, ngày 02 tháng 05 năm 2016.
Tôi xin cam đoan đây là SKKN của mình
viết, không sao chép nội dung của người
khác.
Người viết
Mạc Thị Năm
Tài liệu tham khảo
14
- Lí luận dạy học tin học ở trường THPT.
- Sách giáo khoa Tin học 11 – Hồ Sỹ Đàm – Chủ biên.
- Sách bài tập Tin học 11 - Hồ Sỹ Đàm – Chủ biên.
- Lý thuyết và bài tập lập trình Pascal – Quách Tuấn Ngọc.