Sử dụng ví dụ thực tế, hệ thống câu hỏi và bài tập khi dạy bài cấu trúc lặp tạo hứng thú học lập trình cho học sinh trường THPT DTNT Ngọc Lặc

Sử dụng ví dụ thực tế, hệ thống câu hỏi và bài tập khi dạy bài cấu trúc lặp tạo hứng thú học lập trình cho học sinh trường THPT DTNT  Ngọc Lặc

Chúng ta đang sống ở thế kỉ XXI là thế kỉ của Công nghệ thông tin và truyền thông. Sự phát triển mạnh mẽ như vũ bão của tin học đã làm cho xã hội có nhiều nhận thức mới về cách tổ chức các hoạt động, trong đó Tin học góp phần vào sự chuyển biến mạnh mẽ đối với cuộc cách mạng công nghiệp 4.0. Vì vậy việc trang bị những kiến thức Tin học là một vấn đề có ý nghĩa và tầm quan trọng rất lớn đối với quá trình đào tạo nhân lực, bồi dưỡng nhân tài cho đất nước.

Xác định được tầm quan trọng đó nên từ năm 2006 môn Tin học đã được bộ Giáo dục-Đào tạo đưa vào giảng dạy ở các cấp học, nhằm trang bị cho học sinh những kiến thức cơ bản, phổ thông về ngành khoa học Tin học. Đặc biệt là trong chương trình sách giáo khoa (SGK)Tin học lớp11 bậc trung học phổ thông (THPT), các nhà biên soạn sách đã đưa vào các chương bài giúp học sinh tiếp cận được với ngôn ngữ lập trình bậc cao. Qua đó giúp các em hình dung được sự ra đời, cấu tạo, hoạt động cũng như ích lợi của các chương trình hoạt động trong máy tính. Từ đó khơi gợi ở các em niềm đam mê đối với bộ môn Tin học, tạo niềm tin để các em có thể dễ dàng tự định hướng, lựa chọn nghề nghiệp sau này.

Trong thời đại thông tin bùng nổ như ngày nay, việc lập được các chương trình tự hoạt động cho máy tính, máy gia dụng là rất cần thiết. Để làm được việc đó cần có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó nhà lập trình có thể chọn một ngôn ngữ lập trình thích hợp. Tuy nhiên mọi thứ đều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao là ngôn ngữ nền tảng cho việc học các ngôn ngữ bậc cao khác. Vậy làm sao để các em viết tốt được các chương trình trong pascal? Một trong những yếu tố quan trọng là các em phải nắm vững cấu trúc các câu lệnh và biết vận dụng chúng vào bài toán cụ thể, đặc biệt là hai cấu trúc của câu lệnh lặp. Nó Xuyên suốt trong cả chương trình Tin học 11 khi hai cấu trúc này áp dụng vào hầu hết các bài tập ở các chương còn lại.

 

doc 19 trang thuychi01 4910
Bạn đang xem tài liệu "Sử dụng ví dụ thực tế, hệ thống câu hỏi và bài tập khi dạy bài cấu trúc lặp tạo hứng thú học lập trình cho học sinh trường THPT DTNT Ngọc Lặc", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ 
TRƯỜNG THPT DTNT NGỌC LẶC
SÁNG KIẾN KINH NGHIỆM
SỬ DỤNG VÍ DỤ THỰC TẾ, HỆ THỐNG CÂU HỎI VÀ BÀI TẬP KHI DẠY BÀI CẤU TRÚC LẶP TẠO HỨNG THÚ HỌC LẬP TRÌNH CHO HỌC SINH TRƯỜNG THPT DTNT NGỌC LẶC
Người thực hiện: Dương Thị Lan
Chức vụ: Giáo viên
SKKN thuộc lĩnh vực (môn): Tin học
THANH HOÁ, NĂM 2019
MỤC LỤC
	1. Mở đầu
	1.1. Lý do chọn đề tài 
Chúng ta đang sống ở thế kỉ XXI là thế kỉ của Công nghệ thông tin và truyền thông. Sự phát triển mạnh mẽ như vũ bão của tin học đã làm cho xã hội có nhiều nhận thức mới về cách tổ chức các hoạt động, trong đó Tin học góp phần vào sự chuyển biến mạnh mẽ đối với cuộc cách mạng công nghiệp 4.0. Vì vậy việc trang bị những kiến thức Tin học là một vấn đề có ý nghĩa và tầm quan trọng rất lớn đối với quá trình đào tạo nhân lực, bồi dưỡng nhân tài cho đất nước. 
Xác định được tầm quan trọng đó nên từ năm 2006 môn Tin học đã được bộ Giáo dục-Đào tạo đưa vào giảng dạy ở các cấp học, nhằm trang bị cho học sinh những kiến thức cơ bản, phổ thông về ngành khoa học Tin học. Đặc biệt là trong chương trình sách giáo khoa (SGK)Tin học lớp11 bậc trung học phổ thông (THPT), các nhà biên soạn sách đã đưa vào các chương bài giúp học sinh tiếp cận được với ngôn ngữ lập trình bậc cao. Qua đó giúp các em hình dung được sự ra đời, cấu tạo, hoạt động cũng như ích lợi của các chương trình hoạt động trong máy tính. Từ đó khơi gợi ở các em niềm đam mê đối với bộ môn Tin học, tạo niềm tin để các em có thể dễ dàng tự định hướng, lựa chọn nghề nghiệp sau này.
Trong thời đại thông tin bùng nổ như ngày nay, việc lập được các chương trình tự hoạt động cho máy tính, máy gia dụng là rất cần thiết. Để làm được việc đó cần có một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó nhà lập trình có thể chọn một ngôn ngữ lập trình thích hợp. Tuy nhiên mọi thứ đều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao là ngôn ngữ nền tảng cho việc học các ngôn ngữ bậc cao khác. Vậy làm sao để các em viết tốt được các chương trình trong pascal? Một trong những yếu tố quan trọng là các em phải nắm vững cấu trúc các câu lệnh và biết vận dụng  chúng vào bài toán cụ thể, đặc biệt là hai cấu trúc của câu lệnh lặp. Nó Xuyên suốt trong cả chương trình Tin học 11 khi hai cấu trúc này áp dụng vào hầu hết các bài tập ở các chương còn lại. 
 Là một giáo viên Tin học được phân công về dạy trong ngôi trường THPT Dân tộc nội trú (DTNT) Ngọc Lặc tôi luôn trăn trở làm thế nào giúp những học sinh – là con em của đồng bào dân tộc thiểu số có trình độ nhất định về tin học và sự đam mê Tin học cũng như biết lập trình, ươm mầm cho các em sau này có thể trở thành các nhà lập trình viên chuyên nghiệp, vậy để làm được điều đó tôi luôn phải đổi mới phương pháp giảng dạy cho phù hợp với từng bài học, tiết học, từng đối tượng học sinh.  Xuất phát từ thực tiễn dạy học tại trường THPT DTNT Ngọc Lặc, khi học Tin học 11 các em mới biết thể hiện thuật toán thành chương trình, biết máy tính thực hiện chương trình như thế nào nên các em rất hứng thú và muốn khám phá. Nhưng khi tôi dạy đến Bài10 : “Cấu trúc lặp”, học sinh vẫn thấy nội dung kiến thức mới, rộng, trừu tượng và khó hiểu hơn nhiều so với các bài học trước. Nên tôi đã sử dụng các ví dụ thực tế, hệ thống câu hỏi và bài tập phù hợp để giảng dạy bài 10 – cấu trúc lặp (Sách giáo khoa Tin học 11) vào giảng dạy thì thấy kết quả tốt hơn hẳn, vận dụng tốt cấu trúc lặp vào để giải các bài toán.  Thái độ học tập của học sinh hăng hái, tích cực, chủ động sáng tạo... Vì các lí do trên tôi mạnh dạn đưa ra sáng kiến kinh nghiệm “ Sử dụng ví dụ thực tế, hệ thống câu hỏi và bài tập khi dạy bài Cấu trúc lặp tạo hứng thú học lập trình cho học sinh trường THPT DTNT Ngọc Lặc”
	1.2. Mục đích nghiên cứu
	Giúp học sinh (đặc biệt là học sinh trường THPT DTNT Ngọc Lặc) hiểu rõ về câu lệnh lặp: lặp với số lần biết trước, chưa biết trước tự tin làm bài tập có niềm đam mê hứng thú khi học lập trình Pascal – Tin học 11; từ chỗ các em còn mơ hồ về khái niệm lặp là gì? không biết khi nào sử dụng lệnh lặp For, while, nguyên tắc hoạt động của từng loại... vv. Giờ đây (sau khi áp dụng SKKN) các em đã hiểu được lặp là gì, dùng nó khi nào và làm được nhiều bài tập có liên quan tới cấu trúc lặp đặc biệt hơn nữa là các em đã có niềm tin và yêu thích học lập trình Pascal nói riêng và bộ môn Tin học 11 nói chung.
	1.3. Đối tượng nghiên cứu
	 Học sinh các lớp 11A1, 11A2 trường THPT DTNT Ngọc Lặc năm học 2018- 2019 khi học bài 10 - Cấu trúc lặp – Sách giáo khoa Tin học 11
	1.4. Phương pháp nghiên cứu
	Trong đề tài này tôi sử dụng một số phương pháp nghiên cứu chính:
	+ Phương pháp nghiên cứu tài liệu.
         	+ Phương pháp quan sát.
 	+ Phương pháp phỏng vấn.
 + Phương pháp so sánh.
	2. Nội dung
	2.1. Cơ sở lí luận
	Pascal là ngôn ngữ lập trình bậc cao do giáo sư Niklaus Wirth (trường đại học kỹ thuật , Zurich, Thụy sĩ) sáng tác và công bố vào đầu những năm 1970, với tên Pascal để kỷ niệm nhà toán học người Pháp Blaise Pascal thế kỷ 17. Lúc đầu, ngôn ngữ lập trình này được sáng tác ra nhằm giúp cho những người mới học lập trình có được thói quen viết một chương trình có cấu trúc sáng sủa, rõ ràng, dễ hiểu và dễ đọc cho mọi người. Giáo sư Wirth thấy rằng có thể tránh được rất nhiều lỗi khi lập trình với một ngôn ngữ có cấu trúc khối và có sự kiểm tra kỹ lưỡng sự tương thích giữa các kiểu dữ liệu. Mà Pascal là một ngôn ngữ như thế: mọi biến và hằng của một kiểu dữ liệu không thể tự do đem trộn lẫn với các biến và hằng của một kiểu dữ liệu khác. Ngôn ngữ Pascal có thể tách các thông tin dữ liệu (biến, hằng,) và các lệnh cần dùng cho một nhiệm vụ xác định thành những khối riêng, tách ra khỏi phần còn lại của chương trình để người lập trình có thể giải quyết dần từng phần một, từng khối một và thậm chí có thể cho nhiều người tham gia lập trình, mỗi người phụ trách một vài khối.
Từ tính ưu việt đó của ngôn ngữ lập trình Pascal mà ngôn ngữ này đã được sử dụng rộng dãi. Pascal rất thích hợp dùng để giảng dạy trong các nhà trường và cho những người mới bắt đầu học lập trình. Do đó trường THPT DTNT Ngọc Lặc đã chọn ngôn ngữ lập trình này để dạy học sinh giải bài toán trên máy tính. Mặc dù mục tiêu của chương trình giáo dục Tin học của Bộ GD & ĐT không quy định phải dạy học sinh trên một ngôn ngữ lập trình cụ thể nào.
Pascal là ngôn ngữ khởi đầu, là hành trang cho các em tiếp cận các ngôn ngữ bậc cao khác dễ dàng hơn. Nhưng để làm được như vậy các em phải hiểu và vận dụng viết được các chương trình trong pascal một cách linh hoạt. Muốn vậy các em phải nắm vững được cú pháp, ngữ nghĩa của pascal, sử dụng thành thạo các câu lệnh của ngôn ngữ trong đó có các câu lệnh lặp. Nhưng thực tế học sinh gặp rất nhiều khó khăn, nhầm lẫn trong việc xác định vòng lặp và xác định điều kiện dừng của vòng lặp, câu lệnh nào nằm trong vòng lặp. Từ đó nảy sinh cho giáo viên và học sinh nhu cầu giải quyết vấn đề đó. 
	2.2. Thực trạng vấn đề:
	 	Qua thực tế giảng dạy các lớp mà tôi được phân công chuyên môn ở trường THPT DTNT Ngọc Lặc, tôi nhận thấy khi học đến chương III bài cấu trúc lặp - Tin học lớp 11 đa số học sinh đều nhận xét bài học này khó và không hứng thú đó là:
 - Bởi khi học các bài đầu của sách giáo khoa các em thấy kiến thức nhẹ nhành, học đến đâu là có thể làm tốt các bài tập ngay, nhưng với bài này hầu hết các em thấy kiến thức nhiều hơn nhiều, trừu tượng hơn
 - Bài học không có ví dụ liên quan đến thực tiễn đời sống nên khó hiểu;
 - Khi đưa ra ví dụ áp cho các câu lệnh ForDo, WhileDo tương ứng với các ví dụ trong sách giáo khoa như Tong-1a, Tong -1b đã giới thiệu học sinh không hình dung được hoạt động của các câu lệnh đa phần các em có học lực trung bình là thấy khó (như khi nào sử dụng for ..do, khi nào dùng While..Do; lúng túng khi sử dụng : câu lệnh for –do còn sử dụng câu lệnh tác động lên biến điều khiển; khó khăn xác định biểu thức điều kiện trog câu lệnh while –do; không sử dụng (begin..end;) khi có câu lệnh ghép sau Do 
 - Nguyên tắc hoạt động của câu lệnh lặp chỉ giới thiệu vài dòng không giúp học sinh hiểu rõ được cơ chế hoạt động của fordo là gì? và while ..do là gì?
	2.3. Sử dụng ví dụ thực tế, hệ thống câu hỏi và bài tập khi dạy bài Cấu trúc lặp – Tin học lớp 11:
	2.3.1. Đối với việc dạy học sinh khái niệm: Lặp là gì?
	*Giáo viên đưa ra các ví dụ và các câu hỏi :
	Ví dụ 1: Thầy giáo dạy thể dục yêu cầu bạn Giàng A Dế chạy quanh sân trường như sau:
	Trường hợp 1: bạn Dế chạy 10 vòng quanh sân trường
	 Trường hợp 2: bạn Dế chạy quanh sân trường đến khi mệt (việc mệt được hiểu là thoog qua hỏi bạn đã mệt hay chưa? )	
	Câu hỏi 1: - Việc chạy của bạn Dế có lặp ko? Khi này học sinh sẽ trả lời được là: việc chạy quanh sân trường của bạn là lặp
	 - 	và lặp bao nhiêu lần? Học sinh sẽ trả lời được: ở trường hợp 1 Bạn chạy quanh sân trường 10 vòng nên lặp 10 lần; còn ở trường hợp 2 có khi bạn chạy 3 vòng đã mệt hoặc 5 vòng đã mệt nên số vòng chạy của bạn không biết và dẫn đến không biết trước được lặp bao nhiêu lần
 => từ đây giáo viên nhấn mạnh: việc chạy quanh sân trường của bạn Giàng A Dế trong trường hợp 1 đã biết trước số vòng chạy hay lặp đã biết trước số lần còn ở trường hợp 2 là không biết trước số vòng chạy hay lặp không biết trước số lần
	Ví dụ 2: Công việc hàng ngày mỗi sáng của các em là múc nước giếng đổ vào bể. Cô quản lí kí túc xá yêu cầu bạn Thao Đắc Di dùng xô (mỗi xô chứa được 10 lít) múc đổ đầy bình trong 2 trường hợp sau:
	a. Đổ nước vào Bể chứa được 100 lít nước 
	b. không biết bình chứa được bao nhiêu lít nước mà yêu cầu bạn Di múc nước đổ vào bể cho đến khi đầy
Câu hỏi 2: - Việc dùng xô múc nước đổ vào bể của bạn Thao Đắc Di có lặp không các em? 
Khi này học sinh sẽ dễ dàng trả lời được là: Việc dùng xô 10 lit múc nước đổ vào bể của bạn Di là lặp
	 - Các em có biết bạn phải xách bao nhiêu xô nước không (tức là lặp bao nhiêu lần) ?
Khi này học sinh sẽ suy nghĩ và trả lời được là: ở trường hợp a bạn sẽ phải xách 10 xô tức 10 lần vì bể 100 lit =10x10 lít; ở trường hợp b thì không biết trước bạn Di sẽ phải xách bao nhiêu xô nước (bao nhiêu lần) vì bình chưa biết chứa được thể tích bao nhiêu lít chỉ biết là bạn sẽ dừng xách nước khi đổ đầy bể
=> Từ đây qua 2 ví dụ trên giáo viên khẳng định : việc thực hiện lại một hoặc nhiều lần 1 công việc nào đó gọi là lặp.
GV hỏi lại : Vậy lặp là gì ? 
Học sinh dễ dàng trả lời được : Lặp là việc thực hiện lại một hoặc nhiều lần 1 công việc nào đó .
Giáo viên đưa ra khái nệm : Lặp là 1 công việc, 1 thao tác, 1 phép toán, 1 câu lệnh.nào đó được thực hiện lại một hoặc nhiều lần. 
Nếu biết trước số lần lặp gọi là lặp với số lần biết trước ngược lại gọi là lặp với số lần chưa biết trước.
Câu hỏi 3 : em hãy kể tên các hiện tượng được gọi là lặp trong thực tế cuộc sống mà em biết ?
Sau khi đã hiểu về lặp qua 2 ví dụ, học sinh sẽ dễ dàng lấy được ví dụ liên quan tới chính công việc, hoạt động hàng ngày của các em như : 
- Lặp với số lần nhất định và biết trước : Đánh răng mỗi ngày hai lần ; ăn cơm mỗi ngày 2 lần tại nhà ăn. 
	- Lặp với số lần không xác định trước : Học cho đến khi thuộc bài, nhặt từng cọng rau cho đến khi nào xong.
 2.3.2 Lệnh for..do để mô tả lặp biết trước số lần:
Câu hỏi 4: Viết chương trình đưa ra màn hình các số nguyên dương từ 1 đến10 
Các số được viết trên một dòng, mỗi số cách nhau 1 dấu cách.
- Học sinh dễ dàng viết được như sau:
Begin
Write (1,’ ‘);Write (2,’ ‘);Write (3,’ ‘);Write (4,’ ‘);Write (5,’ ‘);
Write (6,’ ‘);Write (7,’ ‘);Write (8,’ ‘);Write (9,’ ‘);Write (10,’ ‘);
Readln
End;
Câu hỏi 5: Từ chương trình ở câu hỏi 4 các em hãy sửa lại chương trình để thực hiện đưa ra màn hình các số nguyên từ 1 đến 100
Lúc này giáo viên quan sát gương mặt của các học sinh trong lớp đã thấy sự băn khoăn của nhiều em vì lí do viết nhiều tới 100 câu lệnh write, 1 số ít khác lại hăng say viết vì nghĩ rằng nhiều câu lệnh thế thì phải làm ngay cho nhanh xong
? Em nào cho biết ý tưởng để viết chương trình câu hỏi 5. Đúng như dự đoán các em đều trả lời được rằng phải viết 100 câu lệnh write và thấy dài dòng, nhàm chán
GV: (dẫn dắt) để khắc phục sự dài dòng nhàm chán khi phải viết các câu lệnh chương trình Ngôn ngữ lập trình Pascal cung cấp cho ta câu lệnh lặp với số lần biết trước For ..Do, sau đó chiếu lên màn hình đoạn câu lệnh
	For i:=1 to 100 do write(i, ‘ ‘);
Khi này quan sát trên gương mặt của các em học sinh là sự nhẹ nhõm hứng khởi để được học câu lệnh mới for..do
2.3.2.1 Câu lệnh for ..do dạng tiến:
*) Cú pháp:
	For := To Do ;
Trong đó: là biến đơn, thường là nguyên
	, là các biểu thức cùng kiểu với biến đếm, giá trị đầu nhỏ hơn hoặc bằng giá trị cuối (nếu giá trị đầu lớn hơn giá trị cuối thì vòng lặp không thực hiện).
Ví dụ: Ta quay lại ví dụ 1 Thầy giáo dạy thể dục yêu cầu bạn Giàng A Dế chạy 10 vòng quanh sân trường.
Các em coi việc thầy giáo đứng đếm (tiến) 1: bạn Dế chạy vòng thứ 1; 
	 2: bạn Dế chạy vòng thứ 2;
	 ..
	 10: bạn Dế chạy vòng thứ 10, rồi kết thúc giống như còn giá trị 1 là , 10 là , chạy là . Việc nhắc lại lần nữa ví dụ 1 đã giúp học sinh hiểu rõ hơn về các thành phần trong câu lệnh fortodo từ đó học sinh cũng hình dung được phần nào về nguyên tắc hoạt động của câu lệnh.
*) Nguyên tắc hoạt động: 
 viết sau từ khóa 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ừ đến 	;
Lưu ý: - sẽ tự động tăng giá trị nên sau từ khóa Do không được có câu lệnh nào làm thay đổi giá trị của 
 - có thể là câu lệnh đơn hoặc là câu lệnh ghép (đặt trong cặp beginend;)	
Câu hỏi 6: Cho biết giá trị của biến s bằng bao nhiêu? sau khi thực hiện đoạn câu lệnh sau : 
S:=0;
For i:=1 to 5 Do s:= s + 1	;
a. s=1 b. s=2 c. s =0	 d. s=5	
Với câu hỏi 6, giáo viên trực tiếp hướng dẫn theo nguyên tắc hoạt động của câu lệnh for ..do dạng tiến cụ thể như sau:
Với i:=1, câu lệnh sau Do thực hiện s= s+1=0+1=1
Với i:=2, câu lệnh sau Do thực hiện s=s+1=1+1=2
Với i:=3, câu lệnh sau Do thực hiện s=s+1= 2+1=3
Với i:=4, câu lệnh sau Do thực hiện s=s+1=3+1=4
Với i:=5, câu lệnh sau Do thực hiện s=s+1 = 4+1= 5
=> Sau khi thực hiện đoạn chương trình trên s=5 (đáp án d)
Câu hỏi 7: Cho đoạn chương sau : 
T:=1;
For i:=1 to 5 Do
 T:=T*i;	
Hãy cho biết giá trị của biến T bằng bao nhiêu sau khi thực hiện các câu lệnh trên?
a. T=1 b. T=120 c.T=20 	d. T=100 	
 Gv gợi ý nhắc lại các em vận dụng nguyên tắc hoạt động của câu lệnh và “chạy bộ” ứng với mỗi giá trị của i thì câu lệnh sau từ khóa Do thực hiện sẽ có một giá trị của T. Đúng như dự đoán các em đã nhanh chóng tìm được giá trị của T= 120 (=1* 1* 2 * 3 * 4 * 5)
Câu hỏi 8: hãy cho biết đoạn chương trình ở câu hỏi 7 thực hiện công việc gì?
 Với câu hỏi này các em nhìn lại phần giấy nháp của mình ở câu hỏi 7 thì các em hoàn toàn trả lời được là : đoạn chương trình trên thực hiện việc tính tích các số tự nhiên từ 1 đến 5, T= 120 (=1* 1* 2 * 3 * 4 * 5)	 
 ? thao tác lặp trong câu hỏi 7 là thao tác nào và lặp bao nhiêu lần => các em sẽ nhìn vào biểu thức và nhận ra được thao tác lặp là phép nhân (*) và lặp 5 lần.
Từ câu hỏi 8, GV nhấn mạnh để mô tả thao tác đó mà được lặp đi lặp lại với số lần biết trước thì ta sử dụng câu lệnh lặp For ..do dạng tiến.
Bài toán 1: Tính tổng S với a là số nguyên và a >2
- Gv đưa ra 1 vài câu hỏi nhỏ để học sinh tiếp cận gần hơn với bài toán :
(Gv liên hệ thực tế: ta coi S gống như cái thùng chứa nước, ban đầu đựng giá trị là 1/a, mỗi số hạng 1/(a+i) cộng vào S thì giống như lượng nước trong xô đổ vào thùng)
? chỉ ra thao tác lặp trong bài toán trên => thao tác lặp là phép +
? Sau mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu=> tăng thêm 1/(a+i) với i = 1,2,..100
? Việc tăng giá trị cho tổng S được lặp đi lặp lại bao nhiêu lần=> 100 lần
Với trả lời được 3câu hỏi trên thì các em học sinh hoàn toàn xác định được , và cần thực hiện trong câu lệnh for do
- Giáo viên yêu cầu các em xem thuật toán (SGK –Tr43 ) viết hoàn chỉnh đoạn câu lệnh lặp ra giấy nháp và được kết quả như mong đợi: 
s:=1/a;
for i:=1 to 100 do s = s + 1/(a+i);
- Giáo viên chiếu chương trình hoàn chỉnh và chạy chương trình cho học sinh quan sát.
Program tong_1a;
Var i: byte; 
 S : real;
Begin
Writeln(‘Nhap so a: ’); 
Readln(a);
S:=1/a;
For i:= 1 to 100 do
S:= S+1/(a+i);
Writeln(‘Tong S la : ‘,S:8:3);
Readln
End.
Câu hỏi 9: Ta quay trở lại ví dụ 1 ban đầu, thầy giáo yêu cầu bạn Dế chạy 10 vòng quanh sân trường Thầy không đứng đếm số vòng chạy của bạn từ 1-.10 mà thầy lại đếm số vòng chạy của bạn từ 10 về 1 có được không các em?
=> học sinh nhất trí hoàn toàn là được vì số vòng chạy lặp không đổi vẫn là 10. Giáo viên gợi mở để dạy câu lệnh lặp dạng lùi	
2.3.2.2 Lệnh lặp for..do dạng lùi:
*) Cú pháp:
For := Downto Do ;
Trong đó: là biến đơn, thường là nguyên
	 , là các biểu thức cùng kiểu với biến đếm, lớn hơn hoặc bằng (nếu giá trị cuối nhỏ hơn giá trị đầu thì vòng lặp không thực hiện).
Câu hỏi 10: Các em có nhận xét gì về cú pháp của câu lệnh For ..do dạng tiến và dạng lùi?
Khi này học sinh sẽ dễ dàng trả lời được: đều mô tả việc lặp là sau từ khóa Do; với số lần lặp bằng : - ; chỉ khác biến đếm nhận các giá trị giảm từ về 
GV: sau khi học sinh đã trả lời được câu hỏi 10 thì đến việc nắm nguyên tắc hoạt động của câu lệnh for dạng lùi sẽ dễ hiểu hơn đó là: sau từ khóa Do sẽ được thực hiện tuần tự với nhận các giá trị liên tiếp giảm từ đến 
Câu hỏi 11: Cho biết giá trị của biến s bằng bao nhiêu? sau khi thực hiện đoạn câu lệnh sau : 
S:=0;
For i:=5 downto 1 Do s:= s + 1;
a. s=1 b. s=2 c. s =0	 d. s=5
Với câu hỏi 11, giáo viên trực tiếp hướng dẫn “ chạy bộ” các câu lệnh theo nguyên tắc hoạt động của câu lệnh for ..do dạng lùi cụ thể như sau:
Với i:=5, câu lệnh sau Do thực hiện s= s+1=0+1=1
Với i:=4, câu lệnh sau Do thực hiện s=s+1=1+1=2
Với i:=3, câu lệnh sau Do thực hiện s=s+1= 2+1=3
Với i:=2, câu lệnh sau Do thực hiện s=s+1=3+1=4
Với i:=1, câu lệnh sau Do thực hiện s=s+1 = 4+1= 5
=> Sau khi thực hiện đoạn chương trình trên s=5 (đáp án d)
Câu hỏi 12: Cho đoạn chương trình sau : 
T:=1;
For i:=5 downto 1 Do
 T:=T*i;	
Hãy cho biết giá trị của biến T bằng bao nhiêu sau khi thực hiện các câu lệnh trên?
a. T=1 b. T=120 c.T=20 	d. T=100 
 Gv gợi ý nhắc lại các em vận dụng nguyên tắc hoạt động của câu lệnh for ..do dạng lùi và “chạy bộ” ứng với mỗi g

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

  • docsu_dung_vi_du_thuc_te_he_thong_cau_hoi_va_bai_tap_khi_day_ba.doc