Giới thiệu
Có những hoạt động mà chúng ta lặp với số lần nhất định và biết trước, chẳng hạn:
-Đánh răng mỗi ngày hai lần.
-Mỗi ngày tắm một lần.
Chúng ta còn lặp lại những công việc với số lần không thể xác định trước, như là:
-Học cho đến khi thuộc bài.
-Nhặt từng cọng rau cho đến khi xong…
Khi viết chương trình máy tính cũng vậy. Để chỉ dẫn cho máy tính thực hiện đúng công viêc, trong nhiều trường hợp ta cũng cần phải viết nhiều câu lệnh thực hiện một phép tính nhất định.
Bài 10
Tin học lớp 11

(Ti?t 1)
Trang 42 sách giáo khoa
CẤU TRÚC LẶP
Bài toán 1:
Bài toán 2:
Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2
cho đến khi
Lặp
Bài toán 1:
Bài toán 2:
Cho đến khi
? S? l?n l?p bi?t tru?c.
Việc tăng gá trị¸ cho tổng S được lặp đi lặp lại cho đến khi
Vi?c tang giỏ tr? cho t?ng S du?c l?p di l?p l?i 100 l?n.
Tìm sự khác biệt
 Số lần lặp chưa biết trước.
CẤU TRÚC LẶP
CẤU TRÚC LẶP CÓ HAI DẠNG:
I. LẶP VỚI SỐ LẦN BIẾT TRƯỚC.
II. LẶP VỚI SỐ LẦN KHÔNG BIẾT TRƯỚC.
1. B�i toỏn d?t v?n d?:
- Dữ liệu ra (Output) : Tổng S
Viết chương trình tính tổng sau:

- Dữ liệu vào (Input) : Nhập a
Hãy nhập INPUT và OUTPUT của bài toán trên!
Lặp với số lần biết trước
Phân tích bài toán với N = 100

S0 = 1/a
S1 = S0 + 1/(a+1)
S2 = S1 + 1/(a+2)
. . . . . . . . . . . . . . . . . . . .
.....
S100 = S99 + 1/(a+100)
Nhận xét:
Bắt đầu từ S1 việc tính tổng S được lặp đi lặp lại 99 lần theo quy luật
Si = Si-1 + 1/(a+i)
Với i chạy từ 1  100
Bước 1. S:=1/a ; N:=1;
Bước 2. Nếu N>100 thì chuyển đến bước 5;
Bước 3. S:=S+1/(a+N);
Bước 4. N:=N+1; rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Thuật toán Tong_1a
Bước 1. S:=1/a ; N:=100;
Bước 2. Nếu N<1 thì chuyển đến bước 5;
Bước 3. S:=S+1/(a+N);
Bước 4. N:=N-1; rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100 (N=101) thì kết thúc.
Giá trị N khi bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (N=0) thì kết thúc.
Thuật toán Tong_1b
Với a là số nguyên, a>2. Tính và đưa kết quả ra màn hình tổng
Số lần lặp của hai thuật toán trên là như nhau với số lần lặp biết trước (100 lần)
? L?p d?ng ti?n.
? L?p d?ng lựi.
FOR := TO DO < câu lệnh>;
Ví dụ: tong:=1;
FOR i:=2 TO 100 DO tong:=tong+1/i;
b. D?ng 2 (d?ng l?p lựi)
FOR := DOWNTO DO ;
Ví dụ: tong:=1;
FOR i:=100 DOWNTO 2 DO tong:=tong+1/i;
a. Dạng 1 (dạng lặp tiến)
Lặp với số lần lặp biết trước, câu lệnh For - do
 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 hoặc bằng giá trị cuối.
VD: For i:= 100 to 200 do write(i);

Chú ý: Giá trị của biến đếm được điều chỉnh tự động, vì vậy câu lệnh viết sau DO không được thay đổi giá trị biến đếm.
Trong đó
 Biến đếm là biến kiểu nguyên hoặc kí tự.
VD: For i:=1 to 10 do write(i);
For i:=‘a’ to ‘z’ do write(i);

Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối.
b. Dạng 2 (dạng lặp lùi)
Câu lệnh viết sau từ khóa do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu.
a. Dạng 1 (dạng lặp tiến)
Hoạt động của câu lệnh for - do
Var i,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1;
FOR i:=2 to N do S := S+1/i;
Writeln(` Tong S = `,S:8:2);
Write(` Nhap vao gia tri cua N :`); readln(N);
Program Tinh_tong;
Hãy áp dụng câu lệnh lặp dạng tiến để viết chương trình giải bài toán sau.
Ví dụ: Viết chương trình tính tổng sau:

S := 1 ; i := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.08
1.83
1.5
1
4
3
2
Lượt
i
S
2.28
5
Nhập N
S := 1 ; i := 2;
2>5 ?
S
S
S := 1 +1/2 ;
i := 2 +1;
3>5 ?
S := 1.5+1/3 ;
i := 3 +1;
4>5 ?
S := 1.83+1/4 ;
i := 4 +1;
5>5 ?
S := S+1/i;
i := 5 +1;
6
S
S
S
6>5 ?
In Tổng S
Tổng S ra
Với N = 5
2.28
Đ
Đ
Mô phỏng thuật toán

Hãy nhớ!
Câu lệnh lặp
trong pascal
FOR ... TO ... DO ....
FOR ... Downto ... DO ...
- L?p v?i s? l?n bi?t tru?c.
HOẠT ĐỘNG
Các câu lệnh Pascal sau có hợp lệ không? Vì sao ?
1:
2:
3:
4:
ĐS: Không hợp lệ, vì giá trị đầu lớn hơn giá trị cuối
HẾT GIỜ
For i:=100 to 1 do
Write(‘A’);
For i:=1.5 to 10.5 do
Write(‘A’);
ĐS: Không hợp lệ, vì giá trị đầu, giá trị cuối là dữ liệu kiểu số thực
For i:=1 to 10 do
Write(‘A’);
ĐS: Hợp lệ, in ra AAAAAAAAAA
For i:=10 Downto 1 do
Write(‘A’);
ĐS: Hợp lệ,in ra AAAAAAAAAA
2. Tính tổng
3. Tính tổng
Bài tập về nhà
1. Nhập từ bàn phím hai số nguyên dương M, N. Tính và đưa ra màn hình tổng các số chẵn trong khoảng từ M đến N.
Xin chân thành cảm ơn!
Chúc sức khỏe quý thầy cô!
Chúc các em học tốt!
Tin 11
Kết thúc
nguon VI OLET