bài 1: Ví dụ : Tính tổng
S2 =
Với điều kiện
Cách giải:
- Bắt đầu S được gán giá trị 1/a.
- Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, …
- Với bài toán 1, việc cộng thêm dừng khi N = 100 → số lần lặp biết trước.
- Với bài toán 2, việc cộng thêm dừng khi 1/(a+N) < 0.0001 → thỏa mãn điều kiện.
· Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp. Lặp thường có 2 loại:
- Lặp với số lần biết trước.
- Lặp kiểm tra điều kiện trước.
cấu trúc lặp với số lần biết trước và câu lệnh for-do.
· Lặp dạng tiến:
for <biến đếm> := <giá trị đầu>
to <giá trị cuối> do <câu lệnh> ;
· Lặp dạng lùi:
for <biến đếm> := <giá trị cuối>
downto <giá trị đầu> do <câu lệnh> ;
Trong đó:
+ Biến đếm thường là biến kiểu nguyên.
+ Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
+ Ở dạng lặp tiến: biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
+ Ở dạng lặp lùi: biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.
+ Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần.
viết chương trình dùng câu lệnh for-do.
VD1: Tính tổng S với a nhập từ bàn phím:
S=
Sử dụng lệnh lặp dạng tiến:
program vi_du_1:
uses crt;
var a, N: integer; S: real;
begin
write(‘Nhap gia tri a: ’); readln(a);
S:=1/a;
for N:=1 to 100 do S:=S+1/(a+N);
writeln(‘Tong S la: ’, S:8:4);
readln
end.
Sử dụng lệnh lặp dạng lùi:
Tương tự như trên, chỉ thay đổi lệnh lặp:
for N:=100 downto 1 do S:=S+1/(a+N);