Please enable JavaScript.
Coggle requires JavaScript to display documents.
Bài 8: Lặp với số lần
chưa biết trước
image - Coggle Diagram
Bài 8: Lặp với số lần
chưa biết trước
2. Lặp vô hạn lần- Lỗi lập trình cần tránh
Khi viết chương trình cần chú ý tạo nên các lỗi lặp không kết thúc.
Chẳng hạn, chương trình dưới đây sẽ lặp lại vô tận.
Trong chương trình trên, điều kiện a<6 luôn luôn đúng nên lệnh writeln ('A') luôn được thực hiện.
Do vậy khi thực hiện vòng lặp, giá trị các biến phải luôn được thay đổi để chương trình không bị rơi vào những vòng lặp vô tận.
1. Lệnh lặp
VD 1
Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
Mô tả thuật toán bằng liệt kê:
- S<= 0, b <= 0.
- Nếu S ≤ 1000, chuyển tới bước 3; ngược lại chuyển tới bước 4.
- S<= S + n và quay lại bước 2
- In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán( thuật toán chỉ dừng lại khi S>1000)
Để viết chương trình chỉ dẫn máy tính thực hiện xác hoạt động lặp mà chưa xác định trước được số lần lặp, ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa xác định.
Cú pháp
-
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 hay ghép
VD2:
-
uses crt;
var x:real;
n:integer;
const sai_so=0.003;
begin
clrscr;
x:=1; n:=1;
while x>=sai_so do begin x:=1/n; n:=n+1 end;
writeln('So n nho nhat de 1/n< ', sai_so,'la ', n-1);
readln
end.
VD3: Quay lại VD1, viết chương trình thể hiện thuật toán tính S và n
uses crt;
var S, n: integer;
begin
clrscr;
S:=0, n:=0;
while S<=1000 do begin n:=n+1; S+n end;
writeln(' Tong dau tien > 1000 la ',S);
writeln('So n nho nhat de tong > 1000 la ',n);
readln
end.
-