Giáo án môn Tin học khối 11 - Bài 8: Lặp với số lần chưa biết trước

1. Mục đích, yêu cầu

• Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình;

• Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn;

• Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while.do trong Pascal.

2. Những điểm cần lưu ý và gợi ý dạy học

 Giống với bài 7, ở phần đầu của bài này GV cần nêu một số ví dụ về hoạt động lặp với số lần chưa biết trước. Ví dụ 1 trong SGK là một hoạt động trong đời sống. Ví dụ 2 trong SGK là một bài toán khoa học.

 Trong ví dụ 2, sau khi giới thiệu thuật toán, SGK khái quát, đưa ra sơ đồ hoạt động của cấu trúc lặp với số lần chưa biết trước. Sau đó, SGK giới thiệu câu lệnh while.do của Pascal như một ví dụ minh hoạ. HS được làm quen với các ví dụ sử dụng lệnh while.do qua các ví dụ.

 Dưới đây gợi ý một cách tiến hành khác để GV tham khảo. Cách tiếp cận này được thực hiện theo phương án đi từ câu lệnh lặp cụ thể while.do trong Pascal, sau đó khái quát thành kiến thức chung ở các ngôn ngữ lập trình.

 

doc 8 trang Người đăng phammen30 Ngày đăng 05/04/2019 Lượt xem 71Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án môn Tin học khối 11 - Bài 8: Lặp với số lần chưa biết trước", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Bài 8. Lặp với số lần chưa biết trước
1. Mục đích, yêu cầu
Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình;
Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn;
Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while...do trong Pascal.
2. Những điểm cần lưu ý và gợi ý dạy học
	Giống với bài 7, ở phần đầu của bài này GV cần nêu một số ví dụ về hoạt động lặp với số lần chưa biết trước. Ví dụ 1 trong SGK là một hoạt động trong đời sống. Ví dụ 2 trong SGK là một bài toán khoa học. 
	Trong ví dụ 2, sau khi giới thiệu thuật toán, SGK khái quát, đưa ra sơ đồ hoạt động của cấu trúc lặp với số lần chưa biết trước. Sau đó, SGK giới thiệu câu lệnh while...do của Pascal như một ví dụ minh hoạ. HS được làm quen với các ví dụ sử dụng lệnh while...do qua các ví dụ.
	Dưới đây gợi ý một cách tiến hành khác để GV tham khảo. Cách tiếp cận này được thực hiện theo phương án đi từ câu lệnh lặp cụ thể while...do trong Pascal, sau đó khái quát thành kiến thức chung ở các ngôn ngữ lập trình.
	Sau khi đã giới thiệu ví dụ 1 trong SGK, nếu đã giới thiệu ví dụ viết chương trình chào hỏi ở bài trước, GV có thể đặt tình huống chưa biết trước số bạn trong nhóm thì phải viết chương trình như thế nào? Điểm thuận lợi khi sử dụng ví dụ này là HS đã hiểu yêu cầu của bài toán này từ các tiết học trước. Do vậy, không phải mất nhiều thời gian vào tìm hiểu ý nghĩa của bài toán. Điều đó tạo điều kiện thuận lợi cho việc làm nổi bật vấn đề, tình huống mới cần giải quyết. Hơn nữa, sử dụng những bài toán gắn liền với thực tế là một cách tốt để HS nhận thức rõ khái niệm bài toán trong Tin học không chỉ là những bài toán trong lĩnh vực toán học. 
	Nói chung HS chưa đưa ra được phương án giải quyết cho vấn đề này. GV nên chủ động đưa ra một chương trình Pascal như sau:
Program Chao_hoi;
uses crt;
var Tieptuc: char;
Ten: string;
Begin
Tieptuc:='c';
while tieptuc = 'c' do 
	Begin
	write('Nhap ten cua ban'); Readln(Ten);
	writeln('Chao ban ', Ten);
	write('Tiep tuc ? c/k'); readln(Tieptuc);
	end;
readln;
End.
	Dựa trên chương trình này, GV giới thiệu về cú pháp, sơ đồ hoạt động của câu lệnh while...do. 
	Trong Pascal, cú pháp câu lệnh lặp với số lần chưa xác định trước có dạng: 
while do ;
trong đó:
điều kiện thường là một phép so sánh;
câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép.
Câu lệnh lặp này được thực hiện như sau:
Kiểm tra điều kiện. 
Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và chuyển sang câu lệnh tiếp theo trong chương trình. Nếu điều kiện đúNG, thực hiện câu lệnh và quay lại bước 1.
Sơ đồ hoạt động của câu lệnh câu lệnh lặp với số lần chưa biết trước
(Xuân sửa lưu đồ này nhé)
	Việc dịch nghĩa hay diễn giải ý nghĩa của từ tiếng Anh trong câu lệnh while...do có thể là cần thiết đối với HS chưa được học tiếng Anh và để HS dễ nhớ (Trong khi ... thì). 
	Đến đây, GV có thể khái quát cho HS biết rằng các ngôn ngữ lập trình đều cung cấp câu lệnh lặp với số lần chưa biết trước, hoạt động của câu lệnh lặp với số lần chưa biết trước ở các ngôn ngữ lập trình là giống nhau. Điểm khác nhau giữa các ngôn ngữ lập trình là cú pháp câu lệnh để thể hiện cấu trúc này mà thôi.
	Phần cuối bài GV sử dụng các ví dụ trong SGK hoặc lấy ví dụ khác để HS hiểu được hoạt động, viết đúng cú pháp và biết một số trường hợp sử dụng hiệu quả câu lệnh while...do.
Lưu ý:
+ Đối với vòng lặp while...do, trong các câu lệnh của vòng lặp này cần có câu lệnh làm thay đổi biểu thức điều kiện, có nghĩa là phải có câu lệnh để đến lúc nào đó điều kiện không được thoả mãn, khi đó vòng lặp kết thúc. Do vậy câu lệnh sau từ khóa do của câu lệnh lặp while...do thường phải là câu lệnh ghép.
	Trong ví dụ trên đây, điều kiện không được thoả mãn và vòng lặp kết thúc khi điều kiện tieptuc = 'c' cho kết quả sai, tức là tieptuc 'c'. Câu lệnh readln(Tieptuc) để gán giá trị cho biến Tieptuc từ bàn phím, giá trị của biểu thức điều kiện thay đổi phụ thuộc vào câu trả lời của người sử dụng. Khi người sử dụng nhấn "c" thì vòng lặp tiếp tục, ngược lại, khi người sử dụng nhấn bất kì chữ cái (hoặc chữ số) nào khác thì vòng lặp kết thúc. 
	+ Trong chương trình trên, có câu lệnh Tieptuc:='c' ở ngay sau từ khoá Begin. GV đặt câu hỏi để HS tìm hiểu tại sao phải có câu lệnh này. Khi giải thích được nguyên nhân phải có câu lệnh này, HS sẽ hiểu rõ thêm về biến, điều kiện thực hiện vòng lặp while...do. Việc cần có câu lệnh Tieptuc:='c' có thể được giải thích như sau: gặp lệnh khai báo biến Tieptuc: char Pascal sẽ dành một ô nhớ và đặt tên ô nhớ này là Tieptuc. Ban đầu ô nhớ này chưa được gán giá trị nên có thể chứa một giá trị ngẫu nhiên nào đó (có một số ngôn ngữ lập trình khi khai báo biến thì gán luôn cho biến một giá trị mặc định nào đó do ngôn ngữ lập trình quy định). Nếu giá trị ngẫu nhiên này mà khác 'c' thì điều kiện tieptuc = 'c' không được thoả mãn ngay từ đầu và vòng lặp while...do sẽ không được thực hiện một lần nào cả. Như vậy, đối với câu lệnh lặp while...do có thể xảy ra tình huống vòng lặp không được thực hiện một lần nào cả. 
	Trong trường hợp điều kiện luôn được thoả mãn, nghĩa là người sử dụng luôn luôn gõ phím c, khi đó chương trình này sẽ tiếp tục lặp đi lặp lại. GV có thể sử dụng chương trình dưới đây (có trong trong SGK) để giải thích về việc lặp vô hạn có thể xảy ra do lỗi của người lập trình:
var a:integer;
begin
a:=5;
while a<6 do writeln('A');
end.
+ Các câu lệnh của vòng lặp có thể không được thực hiện một lần nào cả là một đặc điểm khá quan trọng của câu lệnh while...do. Trong Pascal, để mô tả cấu trúc lặp với số lần chưa biết trước, còn có một câu lệnh khác là Repeat...until. Với câu lệnh Repeat...until có đặc điểm là các câu lệnh trong vòng lặp luôn được thực hiện ít nhất một lần. SGK chỉ giới thiệu cho câu lệnh while...do. Người ta đã chứng minh được rằng chỉ cần câu lệnh while...do là đủ, có nghĩa là mọi tình huống lặp sử dụng câu lệnh Repeat...until, đều có thể sử dụng while...do để thay thế. GV không giới thiệu câu lệnh Repeat...until, không so sánh câu lệnh Repeat...until với while...do để tránh quá tải với HS.
	+ Trong ví dụ trên đây có sử dụng kiểu dữ liệu char mà học sinh chưa biết. Do mục đích của ví dụ này là để giới thiệu câu lệnh while...do, nên GV có thể chỉnh sửa chương trình để sử dụng với một kiểu dữ liệu khác mà các em đã biết (ví dụ như integer) hoặc sử dụng chương trình này nhưng không giải thích về kiểu char. Tuy nhiên, nếu học sinh tiếp thu tốt, GV nên giới thiệu thêm cho HS về kiểu dữ liệu char trước khi kết thúc bài này.
3. Hướng dẫn trả lời câu hỏi và bài tập
Có thể nêu rất nhiều vài ví dụ về các hoạt động lặp với số lần lặp chưa biết trước. Dưới đây là một số ví dụ:
Tìm một từ nhất định bị gõ sai chính tả trong văn bản và sửa lại cho đúng. Số từ cần phải sửa chưa được biết trước.
Khi chuẩn bị tô phở để phục vụ cho khách, cô bán hàng thường thực hiện các công việc sau đây: Cho một lượng bánh phở vào nồi nước phở để làm nóng bánh phở, cho bánh phở đã làm nóng vào bát, làm chín một ít thịt và cho vào bát bánh phở đã được làm nóng, cho thêm gia vị, thêm nước phở đang được đun sôi vào bát phở,... Các thao tác đó được thực hiện lặp lại mỗi khi có khách ăn phở. Trong suốt ca bán hàng số lần thực hiện các thao tác lặp đó là không thể biết trước.
Trong xưởng may, mỗi cô công nhân may cùng một chi tiết của chiếc áo, hay chiếc quần với các đường may đã được thiết kế trước. May xong một sản phẩm, cô công nhân sẽ may sản phẩm tiếp theo cho đến khi hết giờ làm việc.
Sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp chưa biết trước là ở các điểm sau đây:
Như tên gọi của nó, câu lệnh lặp với số lần lặp cho trước chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được xác định từ trước, còn với câu lệnh lặp với số lần lặp chưa biết trước thì số lần lặp chưa được xác định trước. Điều kiện sẽ được thay đổi trong mỗi lần lặp và dựa vào điều kiện này chương trình sẽ quyết định thực hiện tiếp câu lệnh lặp hay không.
Trong câu lệnh lặp với số lần cho trước, điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị cuối hay chưa, còn trong câu lệnh lặp với số lần lặp chưa biết trước, điều kiện tổng quát hơn nhiều, có thể là kiểm tra một giá trị của một số thực, cũng có thể là một điều kiện tổng quát khác, ví dụ như một số có chia hết cho 3 hay không,... 
Trong câu lệnh lặp với số lần cho trước, câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Trong câu lệnh lặp với số lần chưa xác định trước, trước hết điều kiện được kiểm tra. Nếu điều kiện được thoả mãn, câu lệnh mới được thực hiện. Do đó có thể có trường hợp câu lệnh hoàn toàn không được thực hiện.
Mô tả thuật toán:
Bước 1. Đặt i = R (i là bán kính đường tròn sẽ vẽ). 
Bước 2. Nếu i > 1.2, vẽ đường tròn bán kính i; ngược lại, chuyển đến bước 4.
Bước 3. i ¬ i - 1/2 và quay lại bước 2. 
Bước 4. Kết thúc thuật toán.
a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng:
S:=10; x:=0.5;
while S>5.2 do S:=S-x;
writeln(S);
b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã được thỏa mãn nên chuyển tới bước kết thúc thuật toán; các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng:
S:=10; n:=0;
while S<10 do
 begin n:=n+3; S:=S-n end;
writeln(S);
Nhận xét: Trong các thuật toán và chương trình trên, điều kiện được kiểm tra trước khi các bước lặp được thực hiện. Do đó nếu điều kiện không được thỏa mãn ngay từ đầu, các bước lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp while..do.
a) Chương trình thực hiện 5 vòng lặp. b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn.
Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp while..do thường là câu lệnh ghép.
a) Thừa dấu hai chấm trong điều kiện; b) Thiếu dấu hai chấm trong câu lệnh gán; c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận.
Viết thuật toán và chương trình Pascal có câu lệnh lặp với số lần không xác định để tính luỹ thừa bậc n của x (tức xn), với n là số tự nhiên và x là số thực được nhập vào từ bàn phím. Hãy so sánh với thuật toán trong bài tập 8, bài 7.
Thuật toán:
Bước 1. Đọc các giá trị x và n. 
Bước 2. A ¬ 1, k ¬ 1. 
Bước 3. Nếu k > n, chuyển xuống bước 5.
Bước 4. A = A.x, k ¬ k + 1 và quay lại bước 3. 
Bước 5. Thông báo kết quả là A và kết thúc thuật toán.
Chương trình Pascal:
var n,k: integer;
	 A, LT: real;
begin
write(‘Nhap so A= ‘); readln(A);
write(‘Nhap so n= ‘); readln(n);
LT:=1; k:=1;
while k<=n do begin LT:=LT*A, k:=k+1 end
end.
Tính tích của N số tự nhiên đầu tiên với số lần lặp không xác định (với N là số tự nhiên được nhập vào từ bàn phím).
Bước 1. Đọc giá trị N. 
Bước 2. T ¬ 1, k ¬ 1. 
Bước 3. Nếu k £ N, T = T.k; ngược lại, chuyển xuống bước 5.
Bước 4. k ¬ k + 1 và quay lại bước 3. 
Bước 5. Kết thúc thuật toán.
Thuật toán: 
Bước 1. Đọc giá trị n. 
Bước 2. S ¬ 0, i ¬ 2. 
Bước 3. Nếu i > n - 1, chuyển xuống bước 5.
Bước 4. Nếu n chia hết cho i, S ¬ S + i, i ¬ i + 1 và quay lại bước 3.
Bước 5. Ghi giá trị S và kết thúc thuật toán.
Chương trình có thể như sau:
var n,i,S: integer;
begin
write('Cho so tu nhien n= '); readln(n);
i:=2; S:=0;
while i<=n-1 do
 begin
 if (n mod i)=0 then S:=S+i; 
 i:=i+1;
 end;
write('Tong cac uoc so thuc su cua ',n,' la: ',S);
readln;
end.
Chương trình có thể như sau:
Uses CRT;
Var A, sum: real;
	i: integer;
Begin
	Write('cho so A: '); readln(A);
	i:=1; sum:= 0;
	While (sum<=A) do
	Begin
	sum:= sum+1/i;
	i:= i+1;
	end;
	Write('Gia tri N bang ', i:6);
	Readln;
	End.
Bài thực hành 6. Sử dụng lệnh lặp while...do
1. Mục đích, yêu cầu
Hiểu câu lệnh lặp while...do trong chương trình TP có sẵn 
Biết lựa chọn câu lệnh lặp while...do hoặc for...do phù hợp với tình huống cụ thể.
Rèn luyện kĩ năng về khai báo, sử dụng biến
Rèn luyện khả năng đọc chương trình
Biết vai trò của việc kết hợp các cấu trúc điều khiển. 
2. Những điểm cần lưu ý và gợi ý dạy học
	Trước hết cần lưu ý rằng Chuẩn kiến thức, kĩ năng không yêu cầu HS phải viết được chương trình có sử dụng câu lệnh lặp với số lần chưa biết trước. Do vậy, trong bài thực hành này không yêu cầu HS phải viết chương trình có câu lệnh while...do để giải bài toán. GV có thể cho HS đọc, hiểu chương trình và đặc biệt cần hiểu được hoạt động của lệnh while...do trong chương trình.
	Trước khi cho HS thực hành bài 1 trong SGK, có thể cho HS gõ chương trình Chao_hoi mà các em đã được học ở bài lí thuyết. Việc thử nghiệm chương trình đã viết khi học lí thuyết giúp HS dễ hiểu hơn, đặc biệt là tính thuyết phục sẽ cao hơn và hơn nữa thể hiện được việc gắn kết giữa lí thuyết với thực hành.
	Với bài 1, trước hết cần xác định Input và Ouput của bài toán:
	Input: Dãy số thực x1, x2...xn
	Output: Giá trị trung bình (x1 + x2+..+xn)/n
	Thuật toán
	Bước 1. - Nhập N là số lượng số thực sẽ được nhập từ bàn phím:
	- Gán biến đếm bằng 0 Dem¬ 0;
	- Gán tổng Sum ¬ 0.
	Bước 2. Trong khi Dem < N thì 
	2.1 Nhập giá trị số thực x từ bàn phím;
	2.2 Cộng thêm x vào tổng Sum: Sum ¬ Sum + x;
	2.3 Tăng biến dem thêm 1 đơn vị: Dem ¬ Dem + 1;
Bước 3. Tính trung bình dãy số vừa nhập TB ¬ Sum/N.
Bước 4. Đưa TB ra màn hình, rồi kết thúc.
	Có nhiều cách để mô tả thuật toán này, tuy nhiên cách mô tả trên đây được sử dụng với mục đích HS thuận lợi hơn khi đọc, hiểu, đối chiếu giữa thuật toán với chương trình Tinh_Trung_binh ở câu b.
	Căn cứ vào mô tả thuật toán, HS tìm hiểu để xác định các biến và kiểu tương ứng cần khai báo trong chương trình.
	Câu c) yêu cầu HS thử dịch, chỉnh sửa, chạy và kiểm thử chương trình. Những kĩ năng này HS đã được rèn luyện ở những bài thực hành trước cho nên HS có thể hoàn toàn thực hiện được. GV có thể đưa ra hoặc hướng dẫn HS tạo ra những bộ dữ liệu test.
GV cần yêu cầu HS đọc, thảo luận đối chiếu giữa thuật toán và các câu lệnh mô tả thuật toán trong chương trình. Cần làm cho HS hiểu rõ về hoạt động của vòng lặp while...do trong chương trình, có thể cho học sinh làm việc nhóm để mô phỏng chương trình (Việc này nên được làm trên lớp học, ở tiết bài tập trước khi thực hành trên máy).
Ví dụ dưới đây là một mô phỏng hoạt động chính của chương trình với n=3
1. Trước khi bắt đầu vòng lặp while...do: dem=0, TB=0, n = 3;
2. Bắt đầu vòng lặp while...do
DEM < N
DEM
X (nhập từ bàn phím)
TB
Đúng
1
10
10
Đúng
2
15
25
Đúng
3
20
45
Sai
3. Kết thúc vòng lặp while...do: TB = 45/3 = 15.
	Câu d) yêu cầu HS chuyển từ sử dụng câu lệnh while...do sang sử dụng câu lệnh for...do. Qua việc làm này HS được rèn luyện thêm về sử dụng lệnh for...do.
	Tuy nhiên, về cơ bản tình huống sử dụng while...do và for...do là khác nhau. While...do thích hợp hơn với trường hợp lặp với số lần chưa biết trước, for...do thích hợp hơn với trường hợp lặp với số lần biết trước. Ví dụ, không thể sử dụng lệnh for...do để thay thế lệnh while...do trong chương trình Chao_hoi được (chưa biết trước số bạn trong nhóm).
Như vậy, ở câu d, bên cạnh mục đích cho HS có ý thức trong việc lựa chọn cấu trúc lặp phù hợp với tình huống, còn có mục đích tiếp tục rèn luyện viết chương trình với câu lệnh for...do đảm bảo đạt yêu cầu đề ra trong chuẩn kiến thức, kĩ năng. 
	Với bài 2, cách tiến hành giống như với bài 1. Trước hết cần xác định Input và Output của bài toán:
	Input: Số tự nhiên N
	Output: Trả lời N là số nguyên tố hoặc N không là số nguyên tố
	Thuật toán
	HS lớp 8 đã biết tính chất của số nguyên tố, số nguyên tố là số tự nhiên chỉ chia hết cho 1 và chính nó.
	Để kiểm tra N có phải số nguyên tố hay không ta sẽ đi kiểm tra xem N có chia hết các số từ 2 đến N - 1 hay không. Nếu N không chia hết cho số nào trong khoảng từ 2 đến N - 1 thì N là số nguyên tố, ngược lại N chia hết cho bất kì một số nào trong khoảng từ 2 đến N - 1 thì N không phải là số nguyên tố. 
	Sử dụng phép chia lấy phần dư mod để kiểm tra tính chia hết.
Bước 1: Nhập số tự nhiên N từ bàn phím
Bước 2: Nếu N£ 0 thông báo N không phải là số tự nhiên, rồi chuyển đến bước 4.
Bước 3: Nếu N > 0:
	3.1. i¬2;
	3.2. Trong khi N mod i 0, i¬i+1;
	3.3. Nếu i = N thì thông báo N là số nguyên tố, rồi chuyển đến bước 4, không thì thông báo N không phải là số nguyên tố;
	Bước 4: Kết thúc.
	Sau đó GV cho HS đọc chương trình trong SGK, đối chiếu việc sử dụng câu lệnh để mô tả thuật toán trên đây.
	Lưu ý, trong chương trình trên sử dụng cả câu lệnh điều kiện, câu lệnh lặp while...do. Mục đích của bài này là để HS thấy được sự cần thiết phải kết hợp các cấu trúc điều khiển để giải quyết bài toán. Hơn nữa, trong ví dụ này còn sử dụng phép chia lấy phần dư mod. Điều này thể hiện sự cần thiết và tính hiệu quả khi lựa chọn công cụ phù hợp trong lập trình.
Đối với đa số HS lớp 8, thuật toán kiểm tra tính nguyên tố của một số tự nhiên là không khó. Tuy nhiên, nếu thấy HS của mình có thể gặp khó khăn khi tìm hiểu thuật toán này, GV có thể thay thế bằng ví dụ khác. Ví dụ mà GV đưa ra có thể chỉ cần thể hiện sự kết hợp giữa câu lệnh điều kiện và câu lệnh lặp với số lần chưa biết trước, không nhất thiết phải có tình huống sử dụng phép chia lấy phần dư mod.
Sự kết hợp các cấu trúc điều khiển (tuần tự, rẽ nhánh và lặp) trong ngôn ngữ lập trình tạo nên sự linh hoạt và góp phần tạo nên sức mạnh của ngôn ngữ lập trình. Chính sự kết hợp giữa các cấu trúc điều khiển cho phép ngôn ngữ lập trình mô tả được những thuật toán phức tạp, giúp giải quyết được nhiều bài toán xuất phát từ nhu cầu thực tiễn. Giáo viên có thể không cần trình bày ý nghĩa của việc kết hợp các cấu trúc điều khiển với HS.
	Như trên đã nêu chuẩn kiến thức, kĩ năng không yêu cầu HS phải viết được chương trình có sử dụng câu lệnh lặp với số lần biết trước. Tuy nhiên, nếu HS tiếp thu tốt, GV có thể yêu cầu HS tập viết chương trình đơn giản có sử dụng câu while...do.

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

  • docBai_tap_va_thuc_hanh_1.doc