I - LẶP VỚI SỐ LẦN BIẾT TRƯỚC
ví dụ lặp với số lần biết trước ???
Xét bài toán tính tổng S như sau
S=1+2+3+...+10000
Ta thấy rằng : công thức tổng quát cho bài toán trên là S=S+I với I chạy từ 1 đến 10000
Khởi tạo S=0
i(1,10000)
khi i=1 => S=0+1
khi i=2 => S=0+1+2
khi i=3 => S=0+1+2+3
Cú pháp và ví dụ trong Pascal
Lặp tiến:
FOR <BIẾN ĐẾM>: =<GIÁ TRỊ ĐẦU> TO <GIÁ TRỊ CUỐI> DO
<CÂU LỆNH>;
Lặp lùi:
FOR <BIẾN ĐẾM>: =<GIÁ TRỊ CUỐI> DOWNTO <GIÁ TRỊ ĐẦU> DO
<CÂU LỆNH>;
Ví dụ :
program Bai_1a;
uses crt;
var i:integer;
s:Longint;
Begin
clrscr;
s:=0;
For i:=1 to 10000 Do
s:=s+i;
readln;
end.
Cú pháp và ví dụ trong VBA
FOR <BIẾN ĐẾM>=<GIÁ TRỊ ĐẦU> TO <GIÁ TRỊ CUỐI> STEP <BƯỚC NHẢY>
<CÁC CÂU LỆNH>
EXIT FOR
NEXT
ví dụ
Private Sub Bai_1a_Click()
Dim s As Long
Dim i As Integer
'----------------- khoi tao --------------
s = 0
'----------------- Vong lap --------------
For i = 1 To 10000 Step 1
s = s + i
Next
'---- hien thi ket qua ra man hinh -------
MsgBox "Tong S=" & s, vbOKOnly, "Ket Qua"
End Sub
II - LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Xét bài toán tính tổng S như sau
s=2+4+6+...+n
Lặp cho đến khi n>5000
Cú pháp
Cú pháp và ví dụ trong C++
While (<Điều kiện lặp>)
<Câu lệnh>;
Ví dụ
#include<stdio.h>
#include<conio.h>
main()
{
int n,s;
s=0;
n=2;
while (n<=5000)
{
s=s+n;
n=n+2;
}
printf("Tong s=%d",s);
getch();
}
Cú pháp và ví dụ trong Pascal
While <Điều kiện lặp> Do
<các câu lệnh>;
Ví dụ
program Bai_1a;
uses crt;
var n:integer;
s:Longint;
Begin
clrscr;
s:=0;
n:=2;
while n<=5000 do
begin
s:=s+n;
n=n+2;
End;
readln;
End.
Cú pháp và ví dụ trong VBA
While <Điều kiện lặp>
<các câu lệnh>
Wend
Lưu ý : đối với bài toán lặp với số lần chưa biết trước người ta luôn cho điều kiện dừng, điều kiện lặp luôn luôn ngược lại của điều kiện dừng.
ví dụ
Private Sub Bai_2a_Click()
'-----------Khai báo biến--------
Dim s As Long
Dim n As Integer
'-----------Khởi tạo-------------
s = 0
n = 0
'---------------Vòng lặp--------------------
While n <= 5000
s = s + n
n = n + 2
Wend
'---------------Hiển thị kết quả-----------
MsgBox "Tinh tong s=" & s, vbOKOnly, "ket qua bai tap 2"
End Sub
BÀI TẬP