www.themegallery.com
KIỂM TRA BÀI CŨ
Câu 1: Hãy ghi cú pháp của câu lệnh lặp For…do?
C¸ch tÝnh sè vßng lÆp?
Câu 2: Hãy viết chương tình tính tổng của 5 số tù nhiªn
đầu tiên ?
Var i, Tong: integer;
Begin
Tong:=0;
For i: = 1 to 5 do
Tong:= Tong + i;
Write(‘Tong= ’,Tong);
Readln;
End.
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
www.themegallery.com
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
While <điều kiện> do <câu lệnh>;
Trong đó:
-
Điều kiện thường là các 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 được thực
hiện như thế nào ?
Câu lệnh
Điều kiện
?
Đúng
Sai
Kết thúc
www.themegallery.com
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 3: Với giá trị nào của n để 1/n < 0.003 ? Viết chương
trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước.
Uses crt;
Var x: Real;
n: Integer;
Const Sai_So=0.003;
Begin
Clrscr;
x:=1; n:=1;
While x >= Sai_So do
Begin
n:=n+1; x:=1/n
End;
Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n);
Readln;
End.
www.themegallery.com
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 4: Viết chương tình tính tổng n số trong ví dụ 2
Var S,n:Integer;
Begin
S:=0; n:=1;
While S<=1000 do
Begin
S:=S+n; n:=n+1
End;
Writeln(‘So n nho nhat de tong > 1000 la ‘, n);
Writeln(‘Tong dau tien > 1000 la ‘, S);
Readln
End.
www.themegallery.com
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 5: Viết chương tình tính tổng T=1+1/2+1/3+…+1/100
T:=0;
For i:=1 to 100 do
T:=T+1/i;
Writeln(T);
T:=0;
i:=1;
While i<= 100 do
Begin
T:=T+1/i;
i:=i+1
End;
Writeln(T);
For…do
While…do
www.themegallery.com
3. Lặp vô hạn lần – lỗi lập trình cần tránh:
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
Var a:Integer;
Begin
a:=5;
While a < 6 do
Writeln(‘A’);
End.
Var a:Integer;
Begin
a:=5;
While a < 6 do
Begin
Writeln(‘A’);
a:=a+1;
End;
End.
www.themegallery.com
* Một số chú ý trong vòng lặp While do
-
Nếu ngay lần kiểm tra đầu tiên mà kết quả
là sai thì các câu lệnh trong vòng lặp sẽ
không đ$ợc thực hiện lần nào.
-
Số lần kiểm tra chính là số lần lặp.
-
Tuỳ theo điều kiện mà viết các câu lệnh
trong vòng lặp cho phù hợp.
www.themegallery.com
Lặp với số lần chưa biết trước
Tuần 27
Tiết 51
Bài 8
GHI NHỚ:
1. Ngoài cấu trúc lặp với số lần lặp biết trước, các ngôn ngữ
lập trình còn có các câu lệnh lặp với số lần chưa biết trước.
2. While…do là câu lệnh lặp với số lần chưa biết trước trong
Pascal.
www.themegallery.com
CNG C
Bài tập 8.3 sbt/67: Cõu lnh no sau õy sai và sai ở đâu?
A. While i:=1 do t:=10;
B. While a<=b; do write(b khong nho hon a);
C. While 1=1 do write(Toi lap trinh gioi);
D. i:=1; x:=5;
while i<x do i:=i+1; write(Gia tri cua i la , i);
Trả lời
(A) Sai, thừa dấu hai chấm đầu tiên
(B) Sai, thừa dấu chấm phẩy tr1ớc từ khoá do
(C) Sai, vòng lặp vô hạn do điều kiện luôn đúng
(D) Sai, vòng lặp đ1ợc thực hiện nh1ng chỉ có giá trị
cuối cùng của i đ1ợc in ra. Nếu muốn in ra các giá trị của
i thì thiếu hai từ khoá begin và end để gộp hai
câu lệnh cuối thành câu lệnh ghép.
www.themegallery.com
Bài tập 8.5 sbt/68:
Sau khi chạy đoạn ch$ơng trình này giá trị
của x là bao nhiêu?
X:=0; tong:=0;
While tong<=20 do Begin Writeln(tong);
Tong:=tong+1;
End;
X:=tong;
A. 20 B. 21
C. Không xác định đ1ợc D. 0
B. 21
www.themegallery.com
DẶN DÒ
-
Về học bài này.
-
Tập trả lời các câu hỏi và bài tập trang 71 SGK.
-
Xem trước néi dung bµi TH, giê sau TH