Em đánh răng 2 lần một ngày Kim giây quay 60 vòng trong 1 giờ Hãy kể tên những hoạt động được thực hiện lặp đi lặp lại với số lần nhất định và biết trư ớc?. Các công việc phải thực
Trang 1Giáo Viên : Phạm Hồng Ngọc
Trang 2 Em đánh răng 2 lần một ngày
Kim giây quay 60 vòng trong 1 giờ
Hãy kể tên những hoạt
động được thực hiện
lặp đi lặp lại với số lần nhất định và biết trư
ớc?
1 Các công việc phải thực hiện nhiều lần
Trang 3O O
O O O
VÝ dô1: In ra mh mét ch÷ O VÝ dô2: In ra mh bèn ch÷ O
Program in1;
Uses crt;
Begin
Writeln('O');
End.
Program in4;
Uses crt;
Begin
Writeln('O');
Writeln('O');
Writeln('O');
Writeln('O');
End.
KÕt qu¶
2 C©u lÖnh lÆp - mét lÖnh thay cho nhiÒu lÖnh
Trang 4O
Mọi ngôn ngữ lập trình đều có câu lệnh giúp
thực hiện nhiều câu lệnh lặp đi lặp lại bằng một câu lệnh Đó là các câu lệnh lặp.
Nếu viết chương
trình in ra màn hình
100 chữ O ‘ ’ thì sao
dài, và viết mất nhiều thời gian !
Trang 5 Câu lệnh lặp với số lần lặp biết trước trong Pascal:
FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>;
Giá trị đầu và Giá trị cuối là các giá trị nguyên.
Câu lệnh có thể là câu lệnh đơn giản( một lệnh ) hoặc
lệnh ghép ( nhiều lệnh )
Trong đó
For , to , do là các từ khóa.
Biến đếm là biến kiểu nguyên
Số vòng lặp = giá trị cuói giá trị đầu + 1. –
3 câu lệnh lặp (5đ)
Trang 6Chú ý :
• Ban đầu biến đếm sẽ nhận giá trị đầu , sau
tăng thêm một đơn vị cho đến khi bằng
giá trị cuối
• Thường Giá trị cuối lớn hơn Giá trị đầu
Trang 7Program in4;
Uses crt;
Begin
Writeln('O');
Writeln('O');
Writeln('O');
Writeln('O');
End.
Program in4;
Uses crt;
Begin For i:=1 to 4 do Writeln('O');
End.
Ban đầu biến đếm (i=1 <4) lệnh in được thực hiện In ra mh chữ O đầu tiên
Biến đếm i tăng 1 đơn vị (i=2 <4 ) lệnh in được thực hiện in ra mh chữ O thứ hai
Tương tự như vậy cho đến khi biến đếm i bằng giá trị cuối (i=4) thì lệnh được thực hiện lần cuối và kết thúc ⇒ trên màn hình có 4 chữ O.
O
O
O
O
Hoạt động của lệnh For to do
ví dụ 1: In ra màn hình 4 chữ O
Trang 8Program in4;
Uses crt;
Begin
For i:=1 to 10 do
begin
Writeln('O');
delay(100);
end;
End.
+ Hai lệnh được đặt giữa hai từ khoá begin, end Câu lệnh ghép
O O O O O O O O O O
ví dụ 2: Mô phỏng quả trứng rơi từ trên cao xuống
Trang 9Ví dụ 5: Tính tổng của n số tự nhiên đầu tiên liên tiếp
S = 1 + 2 + 3 + 4 + + n
Nhận xét:
S = 0
S = S + 1
S = S + 2
S = S + 3
S = S + n
1
=
S
Việc tính S được lặp đi lặp lại 100 lần theo quy luật
Ssau = Strước+ i với i tăng lần lượt từ 1 đến100
2
+ + 3 + 4 + + n
4 Tính tổng và tích bằng câu lệnh lặp
Trang 10Diễn tả thuật toán
B1: Bắt đầu
B2: S:=0; i:=1;
B3: Nếu i > 100 thì kết thúc
B4 : S:= S + i
i := i +1 quay lại B3.
Program tinhtong;
Uses crt;
Var S,i : Integer;
Begin
S:=0;
Nhap so n For i:=1 to n do S:=S +i; Writeln('Tong S=',S);
Chương trình
Trang 111! = 1
2! = 1 2
3! = 1 2 3
4! = 1 2 3 4
Ví dụ 3: Tính N! (Tích N số tự nhiên đầu tiên) N! = 1.2.3.4 N
GT = 1
GT = GT 2
GT = GT 3
GT = GT 4
Hãy xác định:
- Giá trị khởi tạo của GT
- Giá trị đầu, cuối của biến đếm i
-Câu lệnh sẽ được lặp GT:=1;
For i:=1 to N do
GT:= GT*i;
Trang 12Em hãy khai báo biến cho bài toán trên?
Em hãy viết câu lệnh nhập vào N?
Begin
Clrscr;
Write('Nhap N= '); Readln(N);
Khởi tạo GT bằng bao nhiêu?
GT:=1;
Hãy viết câu lệnh lặp với các giá trị của biến đếm và câu lệnh được lặp.
For i:=1 to N do GT:=GT*i;
In ra kết quả?
Writeln('Tich cua N so tu nhien =',GT);
Readln;
N:integer;
GT:longint;
Trang 13Uses crt;
Var i,N : Integer; S : real;
BEGIN
Readln;
END.
S:=0;
FOR i:=1 to N do S := S+1/i;
Writeln(‘ Tong S =’,S:8:3);
Write(‘ Nhap vao gia tri cua N :’);readln(N);
Program Tinh_tong2;
Dựa vào đề bài hãy
xác định:
- Giá trị khởi tạo của S
- Giá trị đầu, cuối của biến đếm i
-Câu lệnh sẽ được lặp
N
4
1 3
1 2
1
=
S:=0;
For i:=1 to N do
S:= S + 1/i;
Lập chương trình tính tổng sau:
Ví dụ 2:
Trang 14Ghi nhớ!
cho máy tính thực hiện lặp lại một hoạt động nào đó, thường là vớic ác dữ liệu khác nhau, cho đên skhi một
điều kiện nào đó được thỏa mãn
Mọi ngôn ngữ lập trình đều có các câu lệnh lặp để thể hiện cấu trúc lặp
Ngôn ngữ Pascal thể hiện cấu trúc lặp