Mục đích nghiên cứu của đề tài là sử dụng các ví dụ minh họa cụ thể để học sinh hiểu như thế nào gọi là ‘lặp’ và như thế nào là ‘lặp với số lần biết trước’, tiếp theo đó là học sinh nắm được cú pháp, ý nghĩa của cấu trúc lặp. Và thông qua các ví dụ đó, hướng dẩn học sinh phân biệt, nắm vững dạng lặp.
Trang 1A MỞ ĐẦU
I Lý do chọn đề tài:
Như ta đã biết Tin học là một bộ môn đƯỢc đưa vào giảng dạy chính thức trong nhà trường phổ thông gần đây Đối với các em học sinh, có thể nói đây là mỘt hành trang để giúp các em vỮng bƯỚc đi tới tưƠng lai - tương lai của một thế hệ công nghệ thông tin bùng nổ!
Phần mềm phát triển nhanh và phong phú đáp Ứng hầu hết mọi lãnh
vực trong xã hội, đời sống con ngƯời Người ta, đặc biệt là các bạn trẻ khi sử
dụng một phần mềm chỉ biết được phần mềm đó Ứng dụng vào lãnh vực nào, sử dụng ra sao và cố gắng tìm hết chức năng của phần mềm đó chứ ít khi mà nghĩ đến phần mềm mình đang sử dụng Ở đâu ra? Ai đã tạo ra nó? Và
tạo ra như thế nào? NhỮng người quan tâm đến công nghệ thông tin thì đều
biết được chính các lập trình viên đã sáng tạo nên, viết nên các phần mềm đó
mà viết đƯợc nó là nhỜ vào các ngôn ngữ lập trình
Cũng vì lễ đó mà BỘ Giáo dục đã chọn ngôn ngỮ lập trình Pascal đưa
vào trong chương trình học của lớp 8 để các em biết được thế nào là tƯ duy,
thế nào là lập trình và chắc chắn sẽ có được một số em thích thú, say mê để rỒi trở thành những lập trình viên chuyên nghiệp mai sau
Vậy thì chúng ta phải làm như thế nào để sau khi kết thúc lớp § thì các
em có thể nắm và hiểu được nhƯ thế nào là ngôn ngỮ lập trình, cụ thể là
ngôn ngỮ lập trình Pascal mà ta đã nói Ở trên
Trong chương trình Pascal lớp 8, phần nào cũng rất hay và rất quan
trọng nhưng tôi thấy câu lệnh lặp với số lần lặp biết trước For Do rất đặc biệt mà lại thường gặp trong các bài toán cơ bản và nâng cao Khi tới phần này, rất nhiều em mơ hồ về việc lặp lại các thao tác của câu lệnh lặp mặc dù
chƯƠng trình đƯợc chạy trực tiếp bằng phân mềm Pascal trên màn hình chiếu Nên sau khi chạy chương trình xong, tôi ghi đoạn chương trình có chứa
câu lệnh For lên bảng và hướng dẫn các em chạy bằng tay nghĩa là tự mình tính toán và ghi lại kết quả trong mỗi lần lặp lại của lệnh lặp For Tôi nhận
thấy các em hiểu rõ hơn phần này và cảm thấy thích thú hơn
1
Trang 2Xuất phát tỪ những cảm nhận trên, tôi chon dé tai “TIM HIỂU THÊM
VỀ NGON NGU LAP TRINH PASCAL” dé đi sâu thêm và mở rộng thêm về
câu lệnh lặp với số lần lặp biết trước For Do
H Mục tiêu, nhiệm vụ của đề tài:
1 Mục tiêu:
Sử dụng các ví dụ minh hoa cụ thể để học sinh hiểu nhu thế nào gọi
la ‘lap’ va nhu thế nào là “lặp với số lần biết trước”, tiếp theo đó là học sinh nắm được cú pháp, ý nghĩa cỦa cấu trúc lặp Và thông qua các ví dụ đó,
hướng dẩn học sinh phân biệt, nắm vững dạng lặp
2 Nhiệm vụ:
Xuất phát từ yêu cầu thực tế của việc dạy và học bộ môn Tin học, hàng năm cứ vào đầu năm là tôi đề ra kế hoạch cụ thể nhằm đạt được hiệu quả tốt nhất, với những nhiệm vụ nhƯ sau:
- Khảo sát chất lượng đầu năm của học sinh để từ đó có phương pháp phù hợp với từng đối tượng
- Luôn trao đổi kinh nghiệm với tổ bộ môn sau mỗi tiết dự gid để đóng góp nhỮng ý kiến hay và bổ sung cho tiết dạy hoàn thiện hơn
- Tham khảo nhiều tài liệu về Pascal để có nhỮng bài tập rèn luyện kỹ năng lập trình cho học sinh
II Đối tượng nghiên cứu
- Căn cỨ vào tình hình thực tế, tôi thực hiện nghiên cứu trên đỐi tƯợng
là học sinh nhữỮng lớp tôi được phân công gồm các lớp: 8A1 > 8A8
IV Giới hạn của đề tài
Đưa ra vấn đề là bài 7 trong sách tin học 8, để học sinh thảo luận tính toán qua đó nắm vữỮng câu lệnh lặp với số lần biết trước và hình thành Ởở học
Trang 3sinh kínăng phân tích, xử lý các vấn đề liên quan đến vòng lặp trong quá trình lập trình các chương trình đƠn giản sau này
V Phương pháp nghiên cứu:
- Kết hợp thực tiễn giáo dục Ởở trường THCS Nguyễn Trường TỘ
- Kiểm tra chất lượng học tập của học sinh đầu tiết học, sau mỗi buổi hỌc
- SỬ dụng máy tính, máy chiếu (projector)
- Rèn luyện kỹ năng viết chƯƠng trình theo mức độ từ dễ đến khó
B NỘI DUNG
I Cơ sở lí luận:
- Nhận thấy được tầm quan trọng cỦa ngành Tin học, Bộ Giáo dục đã
đưa môn học này vào nhà trường phổ thông nhƯ nhỮng môn khoa học khác
bắt đầu từ năm học 2006-2007
- Chỉ thị số 55/⁄2008/CT- BGDĐT ngày 30/9/2008 của BỘ trưởng BỘ GDĐT về tăng cường giảng dạy, đào tạo và Ứng dụng công nghệ thông tin
trong ngành giáo dục giai đoạn 2008-2012
Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học
sinh trong hoạt động học tập Điều 24.2 của Luật giáo dục đã nêu rõ:
“Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹỸ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hỨng thú học tập cho học sinh” CỐt lõi của việc đổi mới phương pháp dạy học Ở trường phổ thông là 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
Trang 4H Thực trang van đề nghiên cứu
Qua thực tẾ giảng dạy ở trường THCS Nguyễn Trường TỘ đã nhiều năm, tôi nhận thấy đa sỐ học sinh lớp 8, 9 đều nhận xét Tin học 8 14 môn học khó
Khi học sinh học Bài 7_CẤU TRÚC LẶP, học sinh đã có rất nhiều khó khăn, nhầm lẫn trong việc xác định vòng lặp
Một số thuận lợi và khó khăn khi thực hiện chuyên đề này:
- Học sinh chuẩn bị bài tỐt, hứng thú học tập, tích cực phát biểu
2 Khó khăn:
- Về phía nhà trường, phòng máy tính chưa đủ phục vụ cho việc thực
hành vì hai học sinh chung mỘt máy tính Khi viết chương trình Pascal nếu
mỗi học sinh một máy thì sự sáng tạo của các em rất dễ bộc lộ và sẽ có nhiều giải thuật hay
- Một số học sinh Ở vùng dân tộc thiểu số, ít có điều kiện tiếp xúc với máy tính, vì thế mà các em thao tác rất chậm
- Một sỐ các em học yếu môn toán nên để giải được một bài tập đơn
giản liên quan đến toán cũng còn gặp không ít khó khăn
II Nội dung và hình thức của giải pháp:
1 Mục tiêu của giải pháp:
- Căn cứ vào yêu cầu cụ thể của việc dạy và học Tin học 8
Trang 5- Căn cỨ vào viỆc nâng cao chất lượng giảng dạy và sự ham thích học môn tin học của học sinh khối 8
- Căn cỨ vào thực trạng sử dụng ngôn ngữ lập trình và kỹ năng lập trình của học sinh
2 Nội dung và cách thức thực hiện giải pháp:
Để truyền đạt cho học sinh nắm vỮng kiến thức về câu lệnh lặp, cũng
nhƯ kỹ năng lập trình thành thạo là vấn đề rất khó khăn Chính vì vậy, cần
phải có phương pháp giảng dạy nhằm phát huy tính tích cực, chủ động sáng tạo Ở học sinh
+ VỀ phương pháp: SỬ dụng phương pháp thuyết trình kết hợp vấn đáp Bài giảng được soạn bằng phần mềm Microsoft Powerpoint, liên kết với Pascal để chạy những chƯƠơng trình cụ thể
+ Về phương tiện: SỬ dụng máy chiếu (Projector) hoặc chƯƠơng trình Netop School và phải có chương trình Pascal để minh họa
Nội dung trọng tâm sẽ gỒm các ví dỤụ, mỗi ví dụ là một bài toán Bài
toán ban đầu có dạng đơn giản rỒi sau đó phức tạp dần Mỗi bài toán sẽ được
đưa ra các giải pháp để thực hiện và chúng ta sẽ xem cách giải các bài toán này có điểm chung nào và có nhỮng điểm nào khác nhau Ở đây, ta sẽ chạy
đoạn chƯƠng trình bằng tay (bằng tính toán cỦa mình) để các em biết được ý
nghĩa và hoạt động của câu lệnh lặp For Do Sau đó, ta đưa đoạn chương
trình đó vào một chƯơng trình Pascal hoàn chỉnh và chạy cho các em xem kết quả chạy bằng tay có giống với chạy bằng máy không hoặc nếu có thỜi gian
nên dùng cách chạy từng bước Step Over (E8) cho dễ so sánh hơn
Trang 6- Số lần lặp = Giá trị cuối — giá trị đầu + 1 = 3 -1 +1 = 3
- Câu lệnh cần thỰc hiện trong lệnh lặp For:
- Hai câu lệnh trên chỉ được thực hiện khi ¡ < 3
Trang 7- Tính toán xong, ta điền các giá trị vào bảng bên
trên, lệnh lặp For sé lap lai lan thứ 2
các thao tác như lần thứ nhất nhưng
trước khi lặp lại biến đếm ¡ phải tăng
lén 1
-1= 2 (¡ tự động tang lén 1)
- Vì ¡ vẫn < 3 nên ta phải thực hiện:
a:=ati; a=2+2=4 b:=b+a; > b=34+4=7
- Tính toán xong, ta điền các giá trị vào bảng bên
Trang 8
- Sau khi thực hiện xong hai câu lệnh trên, lệnh lặp For sé lap lai lan thứ 3 nhưng trước khi lặp lại biến đếm ¡ phải tăng lên 1
NHÂN XÉT:
Sau khi ¡ = 3 và thực hiện xong 2 câu lệnh trong vòng lặp For thì cũng kết thúc lệnh lặp For
Số lần lặp là 3 như ta xác định ban đầu
Đoạn chương trình trên chạy xong, ta thu được kết quả là:
1=3;a=7;b=14
Tạo đoạn chương trình trên thành mỘt chương trình hoàn chỉnh trong Pascal Nhung thém vào hai lệnh Wrieln(i,° 3
› 3 °b); và ReadIn; để
kết quả hiện lên trong mỗi lần lặp giúp học sinh quan sát tỐt và dỄ so
sánh với kết quả vừa thực hiện bằng tay
Trang 9- Dung Step over dé chay chương trình từng bước cho học sinh quan sát
- _ Kết quả chạy bằng Pascal cũng giống như việc thực hiện trong bang
trên
- _ Sửa lại chương trình cho gọn và đúng yêu cầu
Program Vidul;
Var a,b,i : integer;
Begin
b:=1;
For 1 := 1 to 3 do
Begin a:=ati;
- _ Chạy bằng máy chƯƠng trình vỪa sửa lại cho học sinh quan sát
- Sau đó, ta thay số lần lặp trong chƯơng trình lên nhiều lần hơn
Trang 10- Số lần lặp = Giá trị cuối - giá trị đầu + 1 =4 -1 +1 =4
- Câu lệnh cần thực hiện trong lệnh lặp Eor: S := § +¡ ;
- Câu lệnh trên chỉ được thực hiện khi I < 4
+ Sau khi xác định xong, ta tiến hành thực hiện các bước theo bảng sau:
- ¡ chưa có giá trị vì chưa thực hiện lệnh lặp For
2 Bắt đầu vào lệnh lặp For
-i= 1 (gan gid tri dau 1a 1 cho i)
- Vii < 4 nén ta phải thỰc hiện:
Trang 11
- Sau khi thực hiện xong hai câu lệnh trên, lệnh lặp For sẽ lặp lại lần thứ 2
các thao tác nhƯ lần thứ nhất nhưng
trước khi lặp lại biến đếm ¡ phải tăng
- Sau khi thực hiện xong hai câu lệnh
trên, lệnh lặp For sẽ lặp lại lần thứ 3
các thao tác nhƯ lần thứ nhất nhưng
trước khi lặp lại biến đếm ¡ phải tăng
Trang 12
- Sau khi thực hiện xong hai câu lệnh
trên, lệnh lặp For sẽ lặp lại lần thứ 4 1 |S
các thao tác như lần thứ nhất nhưng Ii
trước khi lặp lại biến đếm ¡ phải tăng : :
- _ SỐ lần lặp là 4 nhƯ ta xác định ban đầu
- _ Đoạn chƯƠng trình trên chạy xong, ta thu được kết quả là: S = 10
- _ Tạo đoạn chương trình trên thành mỘt chương trình hoàn chỉnh trong
Pascal Nhung thêm vào hai lệnh Wrieln(i° 3 S); và Readln; đỂ kết quả hiện lên trong mỗi lần lặp
Program Vidu2;
Trang 13Sau đó, ta thay số lần lặp trong chương trình lên nhiều lần hơn
Chạy lại chƯƠng trình bằng máy cho học sinh quan sát
c VIDU 3: Sử dụng hai vòng lặp lồng nhau
Đoạn chương trình sau chạy xong thì biến ¡, j, a, b sẽ có giá trị là bao nhiêu?
+ Đoạn chương trình trên có hai câu lệnh lặp
+ Lệnh For (j) được lồng trong lệnh Eor (¡)
13
Trang 14+ L@nh For (i):
- Bién dém: i
- Giá trị đầu: 0
- Giá trị cuối: l
- Số lần lặp = Giá trị cuối - giá trị đầu + 1 = 1 -0+1=2
- Câu lệnh cần thực hiện trong lệnh lặp For g6m:
Câu lệnh lặp For () b:=b+a;
- Câu lệnh trên chỉ được thực hiện khi i < 2
+ Lénh For (j):
- Biến đếm: j
- Giá trị đầu: 1
- Giá trị cuối: 3
- Số lần lặp = Giá trị cuối — giá trị đầu + 1 = 3 -1 +1 = 3
- Câu lệnh cần thỰc hiện trong lệnh lặp For: a := a + j ;
- Câu lệnh trên chỉ được thực hiện khi J < 3
+ Một lần lặp trong For (¡) sẽ thực hiện 3 lần lặp trong For (j) Như vậy,
lệnh Eor (¡) lặp 2 lần và lệnh For (J) lặp 3 lần sẽ thực hiện tất cả 6 lần ( 2 x
- Tạo bảng ghi lại các giá trị cho các biến
- Vì có 4 biến cần điền giá trị nên ta tạo 4
14
Trang 15-1 và j chưa có giá trị vì chưa thực hiện lệnh
lặp For
Bắt đầu vào lệnh lặp For ()
-1=0 (gán giá trị đầu là 0 cho i)
Bắt đầu vào lệnh lặp For (j)
- j= 1 (gán giá trị đầu là 1 cho j)
-a:=a+J;^2^a=l+l=2
- b=1 vì chưa hết 3 lần lăp For ()
- Tính toán xong, ta điền các giá trị vào bảng
bên
- Sau khi thực hiện xong câu lệnh trên a:= a
+ j, lệnh lặp For (J) sẽ lặp lại lần thứ 2 với
các thao tác như lần thứ nhất nhưng trước
khi lặp lại biến đếm j phải tăng lên 1
-]= 2 (j tự động tang lén 1)
-a:=a+J;^2^a=2+2=4
- b=1 vì chưa hết 3 lần lăp For ()
- Tính toán xong, ta điền các giá trị vào bảng
bên
Trang 16
- 1= 0 (vì câu lệnh trong For (¡) chưa thực
hiện xong)
- Sau khi thực hiện xong câu lệnh trên a:= a
+ j, lệnh lặp For (j) sẽ lặp lại lần thứ 3 với
các thao tác như lần thứ nhất nhưng trước
khi lặp lại biến đếm j phải tăng lên 1
tác nhƯ lần thứ nhất nhưng trước khi lặp lại
biến đếm ¡ phải tăng lên 1
-1=1
- Vong lap For (J) lại khởi động từ đầu
-]= ] (gán giá trị đầu là 1 cho j)
-a:=a+J;^a=7+l=S6
- b= 8 vì chưa hết 3 lần lăp For (J)
- Tính toán xong, ta điền các giá trị vào bảng
16
Trang 17
- 1= ] (vì câu lệnh trong For (¡) chưa thực
- b =8 vi chUa hét 3 1an lap For (j)
- Tính toán xong, ta điền các giá trị vào bang
khi lặp lại biến đếm j phải tăng lên 1 œ[¬ì|
Trang 18- _ Đoạn chương trình trên chạy xong, ta thu được kết quả là:
I=l;]=3;a= l3; b=2l;
- _ Tạo đoạn chương trình trên thành mỘt chương trình hoàn chỉnh trong
Pascal
Program Vidu3;
Vari,j,a,b : integer;
Begin
a:=1;b:=1;
For i := 0 to | do Begin
For j := 1 to3 do
Begin a:=a+];
Ifj < 3 then
Begin Writeln(i, j, a, b);
- _ Dùng Step over để chạy chương trình từng bước cho học sinh quan sát
- _ Kết quả chạy bằng Pascal cũng giống như việc thực hiện trong bang