Một số giải pháp rèn kĩ năng vận dụng câu lệnh lặp của ngôn ngữ lập trình pascal trong chương trình Tin học 8

Một số giải pháp rèn kĩ năng vận dụng câu lệnh lặp của ngôn ngữ lập trình pascal trong chương trình Tin học 8

Hiện nay, giáo dục tin học đóng vai trò chủ đạo trong việc chuẩn bị cho học sinh khả năng tìm kiếm, tiếp nhận, mở rộng tri thức và sáng tạo trong thời đại cách mạng công nghiệp lần thứ tư và toàn cầu hoá. Tin học có ảnh hưởng lớn đến cách sống, cách suy nghĩ và hành động của con người, là công cụ hiệu quả hỗ trợ biến việc học thành tự học suốt đời. Môn Tin học giúp học sinh thích ứng và hoà nhập được với xã hội hiện đại, hình thành và phát triển năng lực cho học sinh. Học tin học, không phải chúng ta chỉ biết ngồi chơi điện tử, các trò giải trí hay biết soạn thảo thông thường, vv mà học tin học ta có thể xây dựng nên những chương trình ứng dụng cho mình như giải tuyết các bài toàn từ đơn giản đến phức tạp bằng các ngôn ngữ lập trình Đặc biệt là trong xu thế hiện nay, tin học đóng vai trò quan trọng, nó đáp ứng được xu thế phát triển trong cuộc cách mạng công nghiệp 4.0

Chương trình Tin học lớp 8 là chương trình bước đầu làm quen với ngôn ngữ lập trình, đây là một chương trình khó đối với cả giáo viên và học sinh. Có những em học khá cũng phải thốt lên, Tin học 8 sao khó thế, còn hơn cả môn Toán cô ạ. Là bởi vì : Môn Tin học 8 học về lập trình, mà khi muốn lập trình được ta phải biết các thuật toán trong toán học, hơn nữa, các câu lệnh của chương trình hoàn toàn bằng tiếng Anh. Đây là ngôn ngữ với những qui định chặt chẽ, chưa kể đến khi viết được một chương trình dù đơn giản hay phức tạp đòi hỏi chương trình Pascal có rất nhiều các câu lệnh lặp để thể hiện một công việc nào đó được lặp đi lặp lại nhiều lần. Do đó khi phân tích bài toán, đòi hỏi các em phải hình dung xem bài toán đó phải áp dụng thuật toán nào, sử dụng vòng lặp nào mới hiệu quả. Trăn trở về vấn đề này bản thân tôi đã tích cực nghiên cứu nội dung SGK, các tài liệu tập huấn dạy học theo định hướng phát triển năng lực học sinh, tham gia học các chuyên đề đổi mới PPDH xem các diễn đàn giáo dục, tham gia sinh hoạt cụm chuyên môn, tổ chuyên môn, đặc biệt tích cực dự giờ các đồng nghiệp. Xuất phát từ cơ sở trên, tôi mạnh dạn đề xuất SKKN “Một số giải pháp rèn kĩ năng vận dụng câu lệnh lặp của ngôn ngữ lập trình pascal trong chương trình Tin học 8 ’’

 

doc 26 trang thuychi01 24915
Bạn đang xem 20 trang mẫu của tài liệu "Một số giải pháp rèn kĩ năng vận dụng câu lệnh lặp của ngôn ngữ lập trình pascal trong chương trình Tin học 8", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
	MẪU Bìa SKKN của Sở GD&ĐT Thanh Hóa
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ 
PHÒNG GD&ĐT THỌ XUÂN
SÁNG KIẾN KINH NGHIỆM
MỘT SỐ GIẢI PHÁP RÈN KĨ NĂNG VẬN DỤNG 
CÂU LỆNH LẶP CỦA NGÔN NGỮ LẬP TRÌNH PASCAL TRONG CHƯƠNG TRÌNH TIN HỌC 8 
Người thực hiện: Lê Thị Vân
Chức vụ: Giáo viên
Đơn vị công tác: Trường THCS Nam Giang-Thọ Xuân
SKKN thuộc lĩnh vực : Tin học
THANH HOÁ NĂM 2019
1. MỞ ĐẦU
1.1. Lí do chọn đề tài
Hiện nay, giáo dục tin học đóng vai trò chủ đạo trong việc chuẩn bị cho học sinh khả năng tìm kiếm, tiếp nhận, mở rộng tri thức và sáng tạo trong thời đại cách mạng công nghiệp lần thứ tư và toàn cầu hoá. Tin học có ảnh hưởng lớn đến cách sống, cách suy nghĩ và hành động của con người, là công cụ hiệu quả hỗ trợ biến việc học thành tự học suốt đời. Môn Tin học giúp học sinh thích ứng và hoà nhập được với xã hội hiện đại, hình thành và phát triển năng lực cho học sinh. Học tin học, không phải chúng ta chỉ biết ngồi chơi điện tử, các trò giải trí hay biết soạn thảo thông thường, vv mà học tin học ta có thể xây dựng nên những chương trình ứng dụng cho mình như giải tuyết các bài toàn từ đơn giản đến phức tạp bằng các ngôn ngữ lập trình Đặc biệt là trong xu thế hiện nay, tin học đóng vai trò quan trọng, nó đáp ứng được xu thế phát triển trong cuộc cách mạng công nghiệp 4.0
Chương trình Tin học lớp 8 là chương trình bước đầu làm quen với ngôn ngữ lập trình, đây là một chương trình khó đối với cả giáo viên và học sinh. Có những em học khá cũng phải thốt lên, Tin học 8 sao khó thế, còn hơn cả môn Toán cô ạ. Là bởi vì : Môn Tin học 8 học về lập trình, mà khi muốn lập trình được ta phải biết các thuật toán trong toán học, hơn nữa, các câu lệnh của chương trình hoàn toàn bằng tiếng Anh. Đây là ngôn ngữ với những qui định chặt chẽ, chưa kể đến khi viết được một chương trình dù đơn giản hay phức tạp đòi hỏi chương trình Pascal có rất nhiều các câu lệnh lặp để thể hiện một công việc nào đó được lặp đi lặp lại nhiều lần. Do đó khi phân tích bài toán, đòi hỏi các em phải hình dung xem bài toán đó phải áp dụng thuật toán nào, sử dụng vòng lặp nào mới hiệu quả. Trăn trở về vấn đề này bản thân tôi đã tích cực nghiên cứu nội dung SGK, các tài liệu tập huấn dạy học theo định hướng phát triển năng lực học sinh, tham gia học các chuyên đề đổi mới PPDHxem các diễn đàn giáo dục, tham gia sinh hoạt cụm chuyên môn, tổ chuyên môn, đặc biệt tích cực dự giờ các đồng nghiệp. Xuất phát từ cơ sở trên, tôi mạnh dạn đề xuất SKKN “Một số giải pháp rèn kĩ năng vận dụng câu lệnh lặp của ngôn ngữ lập trình pascal trong chương trình Tin học 8 ’’ 
1.2. Mục đích nghiên cứu
Pascal là một ngôn ngữ lập trình tốt và đặc biệt, được tạo ra với mục đích dùng cho giảng dạy vì các lý do: Có cú pháp rõ ràng, trình biên dịch Pascal nhỏ gọn, có thể chạy tốt trên các máy tính cấu hình yếu, rất phù hợp với khả năng đầu tư cho học tập của học sinh. 
Cấu trúc lặp là cấu trúc thường được sử dụng để lập trình giải các bài toán, trong đó có các bài toán truy hồi, đó là nền tảng cho các môn toán học ở cấp 3 sau này. Tuy nhiên một số học sinh khi gặp các bài toán dạng này, các em khó xác định được công thức truy hồi của bài toán, đồng thời không biết nên dùng cấu trúc lặp nào để giải bài toán đó. Chính vì vậy, học sinh cảm thấy chán nản, không muốn tìm hiểu và rèn luyện kĩ năng lập trình. Mặt khác với một số đối tượng học sinh khá, giỏi, đa phần các em rất hào hứng với việc học lập trình, cụ thể là ngôn ngữ lập trình Turbo Pascal hoặc Free Pascal). Do đó các em muốn tìm hiểu sâu hơn về một số bài toán mà có thể áp dụng cấu trúc lặp để giải. Giáo viên nên tích cực khai thác vốn hiểu biết của học sinh để vận dụng, liên hệ một số ví dụ mở rộng, nâng cao với đối tượng học sinh này.
Để giúp học sinh dễ dàng hơn trong việc lập trình giải quyết các bài toán mang tính lặp, trong nội dung của bài sáng kiến này tôi đưa ra những kinh nghiệm của bản thân để giúp các em có thể dễ dàng lập trình giải các các bài tập.
1.3. Đối tượng nghiên cứu
Trong quá trình giảng dạy, tôi nhận thấy Pascal là môn học khó đối với các em học sinh Khối 8, vì có một số thuật toán các em chưa được học ở bộ môn Toán, thêm vào đó là các em chỉ sử dụng các câu lệnh bằng Tiếng Anh để thể hiện khi lập trình. Do đó việc học tập của học sinh vẫn còn mang tính mơ hồ, như bị ép buộc, có nhiều học sinh rất sợ môn Tin học 8 vì tính chất khô khan, khó hiểu trong khi học. Đối với đối tượng là học sinh lớp 8, muốn viết được một chương trình Pascal không những các em phải nhớ được các cấu trúc câu lệnh, các từ khóa, mà các em phải hiểu được thuật toán, điều này là vô cùng khó đối với các em học ở mức trung bình, trung bình khá...
Từ thực tế đó tôi không ngừng học hỏi để tìm ra biện pháp khắc phục. Bằng kinh nghiệm khiêm tốn trong những năm qua, tôi đã đưa ra những tóm lược cơ bản nhất của các bài toán bằng ngôn ngữ tự nhiên, từ các ngôn ngữ đó tôi vận dụng lại bằng các câu lệnh lặp pascal thông thường để chỉ rõ vấn đề cho học sinh thấy sau đó tôi lấy thêm một số ví dụ mẫu vận dụng cấu trúc lặp để giải quyết có hiệu quả là nhằm giúp học sinh tiếp thu bài nhanh, nhớ kiến thức lâu hơn và cảm thấy thích thú với môn học.
Với những cơ sở đó, tôi sẽ hướng cho các em tự phân tích, tự tìm ra hướng giải quyết. Dựa trên các cấu trúc lặp mà kiến thức trong sách giáo khoa đã cung cấp, các em biết đối với từng bài toán, mình phải sử dụng cấu trúc lặp nào ? Cấu trúc lặp đã biết trước số lần lặp hay cấu trúc lặp chưa biết trước số lần lặp, hay là kết hợp các cấu trúc lặp với nhau
1.4. Phương pháp nghiên cứu
1.4.1. Phương pháp nghiên cứu xây dựng cơ sở lí thuyết
Tìm đọc và nghiên cứu kĩ sách giáo khoa, các tài liệu có liên quan đến việc rèn kỹ năng lựa chọn và thiết kế thuật toán cho học sinh nhằm xây dựng cơ sở lí luận cho đề tài.
1.4.2. Phương pháp thu thập thông tin        
Khảo sát thực tế học sinh: Qua bài kiểm tra
1.4.3. Phương pháp điều tra khảo sát thực tế
Trực tiếp dự giờ giáo viên, trao đổi cùng đồng nghiệp về cách hướng dẫn học lựa chọn và thiết kế thuật toán cụ thể, xem đồng nghiệp cảm thấy khi dạy vấn đề này thì phần nào là khó dạy nhất để rút kinh nghiệm. 
Trao đổi với học sinh xem khi lựa chọn và thiết kế thuật toán em cảm thấy khó nhất ở bước nào, tại sao?
Trực tiếp chấm, chữa bài kiểm tra thường xuyên, kiểm tra định kì, kết quả thi học sinh giỏi các cấp qua các năm học của học sinh nhằm tìm hiểu việc rèn luyện kĩ năng lựa chọn và thiết kế thuật toán của học sinh.
1.4.4. Phương pháp thống kê, xử lí số liệu
Từ kết quả khảo sát, tiến hành thống kê, so sánh, phân tích và xử lí thông tin, thu thập ý kiến phản hồi của học sinh và đồng nghiệp để khái quát hóa tình hình nắm bắt kiến thức và kĩ năng lựa chọn và thiết kế thuật toán của học sinh để đưa ra biện pháp khắc phục.
2. NỘI DUNG
2.1. Cơ sở lí luận
Trên cơ sở dạy học theo định hướng hình thành và phát triển năng lực người học, không chỉ chú trọng những năng lực chung, cốt lõi mà còn chú trọng phát triển cả năng lực chuyên biệt. Định hướng dạy học này đáp ứng được các đòi hỏi của thực tiễn, hướng nghiệp và phát triển. Đồng thời giúp HS linh hoạt và năng động trong việc tiếp cận và hình thành năng lực. Mặt khác, để kết quả giáo dục của môn Tin học nói riêng được tốt, ngoài việc bản thân HS tích cực học tập thì vai tròn dẫn dắt của người thầy trong mỗi tiết học là điều rất quan trọng.
 Để giúp học sinh dễ dàng hơn trong việc lập trình giải quyết các bài toán mang tính lặp ở bộ môn Tin học vừa đúng với nguyên tắc dạy học ở trường THCS, vừa đúng theo tinh thần đổi mới phương pháp dạy học hiện nay, nhằm hình thành cho học sinh tính tích cực, độc lập, sáng tạo, nâng cao năng lực phát triển và giải quyết vấn đề, 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 tin và thích thú học tập cho HS. Vì vậy, việc hệ thống các kiến thức về câu lệnh lặp cũng như đưa ra những ví dụ để giải một số bài tập của giáo viên phải được chú ý đúng mức, phù hợp với học sinh.
2.2. Thực trạng
2.2.1. Thực trạng về nội dung chương trình sách giáo khoa hiện nay:
 	 Mục tiêu dạy học được mô tả không chi tiết và không nhất thiết phải quan sát, đánh giá được.
 Nội dung SGK biên soạn theo hướng nặng về cung cấp kiến thức để thi cử, ít chú trọng vấn đề bồi dưỡng năng lực cho học sinh. Nhiều bài học khô khan, một số kiến thức quá trừu tượng không gắn liền với các tình huống thực tiễn.
2.2.2 Thực trạng chung về môn tin học trong các nhà trường phổ thông hiện nay: 
Đối với bộ môn Tin học ở trường THCS vẫn với tư cách là một môn học tự chọn, cho nên mức độ yêu cầu cũng chỉ là ở mức độ “làm quen”. Tuy nhiên nó lại là một môn học rất mới mẻ và trừu tượng, nhất là các ngôn ngữ lập trình mà đặc biệt là ngôn ngữ lập trình Pascal. Đây là một nội dung khó đối với cả người dạy và người học. Một trong những nội dung khó đó là phần kiến thức về Câu lệnh rẽ nhánh và tổ chức lặp ở chương trình Tin học 8.
2.2.3. Thực trạng về vấn đề dạy và học môn Tin học ở trường.
* Đối với nhà trường:
Trang thiết bị phục vụ cho công tác dạy học theo hướng phát triển năng lực HS còn thiếu thốn : Số phòng máy chỉ có 1 phòng với 17 máy, chưa đảm bảo mỗi em được một máy để thực hành.
* Đối với giáo viên.
 	 So với các môn học khác, số GV biên chế giảng dạy môn tin học của nhà trường ít có 1GV, thậm chí trong 1 cụm chỉ có 1 giáo viên Tin, do đó việc dự giờ, góp ý, rút kinh nghiệm cho nhau nhiều khi không đảm bảo tính khách quan, đánh giá thiếu chính xác và ít học được các kinh nghiệm về chuyên môn.
 Tin học là môn học tự chọn, không bắt buộc thi HSG do đó GV ít khi đầu tư tìm tòi, nghiên cứu sáng tạo
* Đối với học sinh:
 Áp lực về HSG các môn văn hóa rất lớn. Do đó HS chủ yếu tập trung học và ôn thi các môn văn hóa, ít có thời gian để tìm tòi, nghiên cứu học tập môn Tin học. 
 Mặt khác chất lượng HS không đồng đều, có những HS thông minh vượt trội, song cũng còn nhiều HS có học lực trung bình, lại ham chơi, nghịch ngợm, lười học Điều này cũng gây khó khăn, bất cập cho GV trong quá trình giảng dạy.
 Đa số học sinh bị hổng kiến thức Toán từ lớp dưới nên ý thức tìm tòi và nghiên cứu của các em còn hạn chế. Có không ít học sinh chưa cố gắng trong học tập, không chịu khó động não, nên ảnh hưởng không nhỏ đến việc học.
Trên cơ sở tìm hiểu tình hình của nhà trường, thực trạng của HS. Năm học 2016-2017, khi dạy xong bài 6,7,8 - câu lệnh rẽ nhánh và câu lệnh lặp. Tôi đã khảo sát 75 em HS khối 8 với nội dung đề kiểm (tra 45 phút) như sau:
 * Đề kiểm tra:
I. Trắc nghiệm (4 điểm): Khoanh tròn chữ cái đứng trước kết quả đúng
Câu 1: Phát biểu nào sau đây là đúng ?
Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn.
Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp.
Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh whiledo
Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp chưa biết trước bằng câu lệnh fordo
Câu 2: Lệnh lặp nào sau đây là đúng?
For = to do ;
For := to do ;
For := to do ;
For : to do ;
Câu 3: Câu lệnh pascal nào sau đây là hợp lệ?
For i:=100 to 1 do writeln(‘A’);	 B. For i:=1.5 to 10 do writeln(‘A’);
C.	For i= 1 to 10 do writeln(‘A’);	 D. For i:= 1 to 10 do writeln(‘A’);
Câu 4: Vòng lặp while ..do là vòng lặp:
 A. Biết trước số lần lặp	 B. Biết trước số lần lặp nhưng giới hạn là <=100
 C. Chưa biết trước số lần lặp D.Biết trước số lần lặp nhưng giới hạn là >=100 
Câu 5: Câu lệnh lặp whiledo có dạng đúng là:
A. While do; ; B. While do;
C. While do ;	 D.While do ;
Câu 6: Cho S và i là biến nguyên. Khi chạy đoạn chương trình sau kết quả in lên màn hình là của s là : 
 s:=0;
 for i:=1 to 5 do s := s+i;
 writeln(s);
	A.11 	B. 55 	C. 101	D.15
Câu 7:Chương trình pascal sau sẽ in ra màn hình nội dung gì?
Var i: integer;
BEGIN
For i:=1 to 10 do writeln(‘Day la lan lap thu ‘,i);
Readln;
END.
A. 1 câu “Day la lan lap thu i”;	 	 B. 1 câu “Day la lan lap thu ‘, i”;
C. 10 câu “Day la lan lap thu ‘, i”; 	 D. 10 câu "Day la lan lap thu i” với i theo thứ tự từ 1->10;
Câu 8: Cho S và i biến kiểu nguyên. Khi chạy đoạn chương trình sau giá trị sau cùng của S là :
 S:= 0; i:= 1;
 while i<= 6 do
 begin
 S:= S + i; i:= i + 2;
 end;
	A. 16	B. 9	C. 6 	D. 0
II. Tự luận (6 điểm):
Câu 1. (4 đ): a) Mô tả thuật toán tính tổng sau:	 
 	b) Viết chương để tính tổng S ở câu a.
Câu 2. (2 đ): Viết chương trình tính trung bình cộng của n số thực: a1,a2,a3,,an. (Các số n và a1,a2,a3,,an được nhập từ bàn phím).
Đáp án của đề như sau:
I. Trắc nghiệm
Câu
1
2
3
4
5
6
7
8
Đáp án
A
B
D
C
D
D
D
B
II. Tự luận
Câu 1: 
a) Mô tả thuật toán: 
B1: Sß0; iß0;
B2: S:=S+1/i; ißi+1; 
B3: Nếu i<=100 thì quay lai B2, ngược lại thông báo giá trị của S và kết thúc thuật toán.
b) program caub;
var i,n,S: integer;
begin
s:=0; i:=0;
for i:=1 to 100 do	s:=s+1/i;
write(‘Tong cua day so la: ‘,s);
readln;
end.
Câu 2) 
Program cau2;
Ues crt;
Var n,d:integer;
X,tb:real;
Begin
Clrscr;
d:=0; TB:=0;
write(‘nhap so các so can tinh n= ‘);readln(n);
while d<n do begin
d:=d+1;
write(‘nhap so thu ‘,d , ‘=’);readln(x);
TB:=TB+x; end;
TB:=TB/n;
Write(‘Trung binh cua ‘,n,’ so la = ‘,TB:5:3);
Readln;
END.
Qua bài kiểm tra, tôi thu được kết quả như sau:
 Tổng số HS được khảo sát
 Giỏi
 Khá
TB
Yếu
 Kém
 SL
%
 SL
%
 SL
%
 SL
%
 SL
%
75
9
12.0
15
20.0
44
58.7
5
6.7
2
2.7
Từ kết quả điều tra này, tôi nhận thấy rằng việc quyết định đưa ra sáng kiến là điều rất cần thiết, hoàn toàn phù hợp với xu thế đổi mới phương pháp dạy học theo hướng tích cực, lấy học sinh làm trung tâm trên cơ sở SGK hiện hành tạo bước đệm cho việc thay SGK trong những năm tới.
2.3. Giải pháp giải quyết vấn đề
2.3.1. Xây dựng KHGD ngay từ đầu năm học:
- GV chia nhóm học tập cho từng HS, phân nhóm trưởng, hướng dẫn cách hoạt động nhóm, em khá giỏi kèm em yếu, kém. 
- GV cần đầu tư nghiên cứu, mỗi năm cập nhật những cách hay của đồng nghiệp để tích luỹ cho việc giảng dạy. 
- GV cần dành một thời lượng thích hợp cho việc mấu chốt và hướng dẫn HS cách nhớ kiến thức cơ bản vừa học ở các tiết học lý thuyết. Cũng như cách tìm hiểu ý nghĩa của mỗi lệnh trong các bài thực hành.
2.3.2. Một số giải pháp thực hiện:
Giải pháp 1: Hệ thống lại kiến thức chung các vòng lặp
a) Cấu trúc lặp là gì?
 Cấu trúc lặp là một điều khiển thực hiện công việc lặp đi lập lại khi chưa đủ số lần lặp hoặc khi một điều kiện nào đó còn đúng.
Trong thực tế có rất nhiều công việc được lặp đi lặp lại nhiều lần, như: ngày mai, em biết mình đi học buổi sáng, buổi chiều, buổi tối, em biết mình đánh răng 2 lần đó là những việc em đã biết trước được số lần lặp, đó là lặp với số lần lặp đã biết trước. Ngược lại, có những công việc em không xác định được số lần lặp là bao nhiêu lần, ví dụ: em gọi điện cho bạn, chuông sẽ đổ cho đến khi bạn nhấc máy lên. Như vậy số lần chuông đổ là số lần lặp lại và vỉ không biết chuông đổ bao nhiêu lần nên ta gọi đó là số lần lặp không xác định trước. 
Cấu trúc lặp trong thuật toán được dùng để mô tả việc thực hiện lặp lại nhiều lần một hoặc một nhóm các hoạt động.
Mọi ngôn ngữ lập trình đều có câu lệnh lặp để thể hiện cấu trúc lặp, trong đó một hoặc nhiều lệnh được viết một lần nhưng lại được điều khiển để thực hiện lặp lại một số hữu hạn lần. Các lệnh điều khiển quá trình lặp như vậy gọi là câu lệnh lặp.
Trong lập trình, đôi khi quá trình lặp không thể dừng được gọi là quá trình lặp vô hạn. Điều này xảy ra khi điều kiện để dừng lặp không còn bị biến đổi giá trị sau mỗi lần lặp. Khi đó để thoát lặp vô hạn, cần có các câu lệnh cho phép thoát ngay khỏi lặp.
 Có hai loại cấu trúc lặp: 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.
b) Cấu trúc lặp với số lần đã biết trước
* Trước hết, Tôi đưa ra mục đích, yêu cầu của bài học như sau:
Xác định yêu cầu kiến, kĩ năng.
	Kiến thức
+ Hiểu được các hoạt động lặp. Biết được các tình huống sử dụng từng loại lệnh lặp.
	+ Hiểu cấu trúc lặp với số lần biết trước.
	+ Biết cách vận dụng đúng đắn từng loại cấu trúc lặp số lần biết trước vào tính huống cụ thể.
	Kĩ năng
	+ Mô tả được thuật toán của một số bài toán đơn giản có hoạt động lặp với số lần lặp biết trước .
	+ Biết vận dụng câu lệnh lặp với số lần biết trước để lập trình một số bài toán đơn giản .
* Tác dụng: Câu lệnh lặp với số lần lặp đã xác định trước.
* Cú pháp: 
Dạng tiến: 
For := to do ;
Dạng lùi: 
For := Downto do ;
Trong đó:
+ for, to, do là các từ khóa.
+ Biến đếm có kiểu nguyên.
+ Giá trị đầu và giá trị cuối là các biểu thức có cùng kiểu với biến đếm và giá trị cuối phải lớn hơn hoặc bằng giá trị đầu.
+ Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép. 
* Nguyên lý hoạt động cấu trúc For dạng tiến:
1. Biến đếm nhận giá trị của giá trị đầu.
2. Máy kiểm tra xem giá trị của biến đếm còn nhỏ hơn giá trị của biểu thức giá trị cuối hay không (biến đếm ≤ giá trị cuối).
3. Nếu việc kiểm tra:
	- Cho giá trị sai câu lệnh sẽ bị bỏ qua.
	- Cho giá trị đúng:
	+Máy sẽ thực hiện câu lệnh sau từ khóa do.
	+Tăng giá trị của biến đếm lên giá trị đứng liền sau của nó một đơn vị
	- Quay trở lại bước 2
Trong cấu trúc For do, câu lệnh được thực hiện lặp đi lặp lại cho đến khi giá trị của biến đếm lớn hơn giá trị cuối. Mỗi lần thực hiện xong câu lệnh, giá trị của biến đếm được tăng lên đến giá trị liền sau của nó.
Khi câu lệnh thành phần của lệnh lặp for...do là một câu lệnh lặp for...do khác thì ta nói rằng các câu lệnh lặp for...do lồng nhau.
c) Lặp với số lần chưa biết trước
Phần này, khi hệ thống lại, tôi cũng đưa ra mục đích, yêu cầu khi học xong bài học này
* Trước hết, Tôi đưa ra mục đích, yêu cầu của bài học như sau:
Xác định yêu cầu kiến, kĩ năng.
	Kiến thức
+ Hiểu được các hoạt động lặp. Biết được các tình huống sử dụng từng loại lệnh lặp.
	+ Hiểu cấu trúc lặp với số lần chưa biết trước.
	+ Biết cách vận dụng đúng đắn từng loại cấu trúc lặp số lần chưa biết trước vào tính huống cụ thể.
	Kĩ năng
	+ Mô tả được thuật toán của một số bài toán đơn giản có hoạt động lặp với số lần lặp chưa biết trước .
	+ Biết vận dụng câu lệnh lặp với số lần chưa biết trước để lập trình một số bài toán đơn giản .
* Lặp với số lần chưa biết trước có hai dạng:
Dạng 1 : Trong khi còn đúng thì còn thực hiện 
Dạng 2: Còn thực hiện trong khi còn đúng.
Tuy nhiên, trong phạm vi Tin học 8, tôi chỉ giới thiệu cấu trúc lặpWhiledo
*Tác dụng: Dùng để xây dựng chu trình với số lần lặp chưa xác định trước.
* Cú pháp: While do ;
Câu lệnh là thân chu trình và có thể là câu lệnh đơn hoặc câu lệnh ghép.
Nguyên lý hoạt động:
1. Máy tính xác định giá trị của điều kiện. 
2. Tuỳ thuộc vào giá trị của điều kiện:
	- Nếu điều kiện có giá trị đúng, máy tính sẽ thực hiện câu lệnh sau đó quay lại bước 1.
	- Nếu điều kiện có giá trị sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc.
Nhận xét:
- Câu lệnh được thực hiện lặp đi lặp lại cho đến khi nhận giá trị sai. Câu lệnh sẽ không được thực hiện lần nào nếu nhận giá trị sai ngay từ khi bắt đầu vào chu trình.
	- Trong thân chu trình phải có câu lệnh làm thay đổi giá trị của để tránh xảy ra vòng lặp vô tận.
Cuối cùng, tôi tóm lại cho học sinh bằng sơ đồ tư duy như sau:
	Đối với chương trình Tin học 8, không giới thiệu câu lệnh lặp for dạng lùi, tuy nhiên, tôi vẫn giới thiệu thêm cho các em phần này vì có một số bài toán khi áp dụng câu lệnh này sẽ dễ dàng hơn.
Khi dạy xong 2 cấu trúc này, qua từng ví dụ, tôi sẽ phân tích cho các em thấy rõ hơn khi nào ta sử dụng cấu trúc dạng fordo và khi nào ta sử dụng cấu trúc dạng whiledo
Giải pháp 2: Đưa ra một số bài tập vận dụng dưới dạng lý thuyết
Bài tập 1: Cho S và i là biến nguyên. Khi chạy đoạn chương trình :
 s:=0;
 for i:=1 to 5 do s := s+i;
 writeln(s);
 Kết quả in lên màn hình là của s là : 
	A.11 	B. 55 	C. 101	D.15
Phân tích: Trước hết, với đoạn chương trình trên, ta cần cho các em xác định số lần lặp lại công việc là: giá trị cuối – giá trị đầu + 1 (lần), vậy số lần lặp lại là: 5-1+1= 5 lần. Biến đếm i sẽ nhận các giá trị từ 1 đến 5. Lần thứ nhất, i nhận g

Tài liệu đính kèm:

  • docmot_so_giai_phap_ren_ki_nang_van_dung_cau_lenh_lap_cua_ngon.doc