6.3. Câu lệnh lặp xác định FOR 6.3.1. Ý nghĩa:
Câu lệnh lặp là câu lệnh mà cho phép thực hiện lặp đi lặp lại nhiều lần một số công việc. Câu lệnh FOR là câu lệnh cho phép lặp với số lần lặp biết trước.
6.3.2 Câu lệnh FOR tiến (Dạng 1)
6.3.2.1 Cú pháp
For Biến_điều_khiển:= to do ;
Trong đó:
Biến_điều_khiển, , phải là dữ liệu kiểu vô hướng đếm được như kiểu số nguyên, kiểu ký tự, kiểu logic...
có thể là một lệnh hoặc một khối lệnh.
6.3.1.2 Sự hoạt động
Bước 1: Biến_điều_khiển được khởi tạo là
Bước 2: Kiểm tra điều kiện Biến_điều_khiển có nhỏ hơn hay bằng (<=) Giá_trị_cuối hay không,
Nếu đúng thực hiện bước 3, nếu sai thực hiện bước 4.
Bước 3:
Bước 3.1: Thực hiện
Bước 3.2: Gán giá trị ngay sau cho Biến_điều_khiển bằng succ(của biến điều khiển ở bước trước)
Bước 3.3: Quay lại bước 2.
Bước 4: Ra khỏi vòng lặp For
Chú ý: Giá trị đầu thường là <= giá trị cuối, tuy nhiên nếu giá trị đầu > giá trị cuối thì vòng lặp sẽ dừng ngay khi kiểm tra điều kiện đầu tiên.
6.3.2.3 Lưu đồ thể hiện sự hoạt động
Hình 6.4. Lưu đồ hoạt động của
vòng lặp xác định FOR tiến
6.3.2.4. Ví dụ
Ví dụ_6.6: Tính tổng S=1+1/2+1/3+...+1/n . Biết rằng n là một số nguyên dương được đọc vào từ bàn phím.
Program VIDU_6_6; { Chuong trinh su dung FOR tien }
Uses Crt;
Var i, n: Integer;
s: Real;
BEGIN
ClrScr;
Write('Nhap n= '); ReadLn(n);
s:=0;
For i:=1 to n do
s:=s+1/i;
WriteLn('Tong S= ',s:8:3);
ReadLn;
END.
6.3.3 Câu lệnh FOR lùi (Dạng 2)
6.3.3.1 Cú pháp
For Biến_điều_khiển:= to do ;
Trong đó:
Biến_điều_khiển, , phải là dữ liệu kiểu vô hướng đếm được như kiểu số nguyên, kiểu ký tự, kiểu logic...
có thể là một lệnh hoặc một khối lệnh. Nếu là một khối lệnh thì phải được đặt trong Begin ... End;
Thường thì giá_trị_đầu >= giá_trị_cuối.
6.3.3.2 Sự hoạt động
Bước 1: Biến_điều_khiển được khởi tạo bằng
Bước 2: Kiểm tra điều kiện Biến_điều_khiển lớn hơn hay bằng (>=)
Nếu đúng thực hiện bước 3, nếu sai thực hiện bước 4.
Bước 3:
Bước 3.1: Thực hiện
Bước 3.2: Gán giá trị cho Biến_điều_khiển bởi pred (biến điều khiển ở bước trước)
Bước 3.3: Quay lại bước 2.
Bước 4: Ra khỏi vòng lặp For
6 .3.3.3 Lưu đồ thể hiện sự hoạt động
Hình 6.5. Lưu đồ hoạt động
của vòng lặp xác định FOR lùi
Ví dụ 6.7: Xét ví dụ 6.6 nhưng sử dụng câu lệnh FOR lùi
Program VIDU_6_7;
Uses Crt;
Var i, n: Integer;
s: Real;
BEGIN
ClrScr;
Write('Nhap n= '); ReadLn(n);
s:=0;
For i:=n downto 1 do s:=s+1/i;
WriteLn('Tong S= ',s:8:3);
ReadLn;
END.
Ví dụ 6.8: Minh hoạ cho việc sử dụng biến điều khiển có kiểu CHAR: Viết chương trình in ra màn hình 2 dòng: dòng thứ nhất in các chữ thường a z, dòng thứ hai in các chữ IN HOA từ Z A.
Program vidu_6_8;
Uses Crt;
Var ch: Char;
BEGIN
ClrScr;
WriteLn('In cac ky tu viet thuong tu a ==> z');
For ch:='a' to 'z' do Write(ch:3);
WriteLn;
WriteLn;
WriteLn('In cac ky tu viet IN HOA tu Z ==> A');
For ch:='Z' downto 'A' do Write(ch:3);
WriteLn;
ReadLn;
END.
Chia sẻ với bạn bè của bạn: |