2. Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 4: Tính tổng T=1+2+3+… sao cho tổng T nhỏ nhất lớn
hơn 1000.
Tính T=1+2+3+… sao cho tổng T nhỏ nhất lớn hơn 1000.
T 0
T T+1
T T+2
T T+3
…
Cần cộng bao nhiêu số tự nhiên để được tổng T nhỏ nhất
lớn hơn 1000?
Nếu i= 1, 2, 3,… thì tổng T được thay bằng lệnh gì?
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 4: Tính tổng T=1+2+3+… sao cho tổng T nhỏ nhất lớn
hơn 1000.
Tính T=1+2+3+… sao cho tổng T nhỏ nhất lớn hơn 1000.
T 0
T T+1
T T+2
T T+3
…
Ta sử dụng câu lệnh nào để giải quyết bài toán?
Điều kiện của lệnh lặp và câu lệnh là gì?
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Program vidu4;
Var T,n: integer;
Begin
T:=0; n:=0;
While T<=1000 do
Begin T:= T+n; n:= n+1 end;
Writeln ( ‘so n nho nhat de tong >1000 la’,n);
Writeln (‘Tong dau tien >1000 la’,T);
Readln
End.
Ví dụ 5:
Tính T= 1+ 1/2+ 1/3+…+ 1/100
T 0
T T+ 1/1
T T+ 1/2
T T+ 1/3
…
T T+1/100
Nếu i=1, 2, 3,…,100 thì tổng T được thay bằng lệnh gì?Ta sử dụng câu lệnh nào để giải quyết bài toán?
2. Ví dụ về lệnh lặp với số lần chưa biết trước
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 5:
Program vidu5_1;
Var i: integer;
T: real;
Begin
T:=0;
For i:=1 to 100 do T:=T+1/i;
Writeln (‘Tong T= ‘,T:10:2);
Readln
End.
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Ví dụ 5:
Program vi_du5_2;
Var i: integer;
T: real;
Begin
T:=0;
i:=1;
while i<=100 do begin T:=T+1/i;
i:=i+1; end;
writeln(‘tong T=‘,T:10:2);
Readln
end.
3. Lặp vô hạn lần – lỗi lập trình cần tránh
Lưu ý: Khi thực hiện vòng lặp, While ….do cần xác định được
điều kiện trong câu lệnh sau một số lần sẽ chuyển từ đúng
sang sai để thoát khỏi vòng lặp. Không rơi vào những “Vòng
lặp vô tận”
- Trong vòng lặp While do điều kiện được kiểm tra trước khi
thực hiện cậu lệnh, do đó có thể có trường hợp câu lệnh
không được thực hiện một lần nào.