Các công việc phải thực hiện nhiều lần... Program in4; Uses crt; Begin Writeln'O'; Writeln'O'; Writeln'O'; Writeln'O'; End.. câu lệnh lặp... Program in4;Uses crt; Begin Writeln'O'; Write
Trang 2 Em đánh răng 2 lần một ngày
Kim giây quay 60 vòng trong 1 giờ
Bài toán: Viết ch ơng trình
in ra mh các số từ 1 đến 10
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?
10 lệnh in
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
thùc hiÖn nhiÒu c©u lÖnh lÆp ®i lÆp l¹i b»ng
NÕu viÕt ch ¬ng tr×nh
in ra mµn h×nh 100
ch÷ O ‘ ’ th× sao nhØ?
ch ¬ng tr×nh qu¸
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ị cuối phải lớn hơn giá trị đầu.
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 đó
Biến đếm th ờng có kiểu số nguyên
For i:=1 to 100 do writeln(‘O’);
3 câu lệnh lặp
Trang 6Program 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 7Program in4;
Uses crt;
Begin
For i:=1 to 10 do
begin
Writeln('O');
delay(100);
end;
End.
Với mỗi giá trị của biến đếm
+ Hai câu lệnh Writeln(‘o’) và delay(100) đ ợc thực hiện + Hai lệnh trên đ ợ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 8Ví dụ 1: Tính tổng của 100 số tự nhiên đầu tiên liên tiếp
S = 1 + 2 + 3 + 4 + + 100
Nhận xét:
S = 0
S = S + 1
S = S + 2
S = S + 3
S = S + 100
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
4 Tính tổng và tích bằng câu lệnh lặp
Trang 9DiÔ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;
For i:=1 to 100 do S:=S +i; Writeln('Tong S=',S);
Readln;
End.
Ch ¬ng tr×nh
Trang 10Uses 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 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;
End.
N:integer;
GT:longint;
Trang 13Ghi 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 với số lần cho tr ớc bằng câu lệnh for do.