• Ban đầu biến đếm sẽ nhận giá trị đầu, sau mỗi vòng lặp, biến đếm được tự động tăng thêm một đơn vị cho đến khi bằng giá trị.. cuối[r]
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?
* Các công việc phải thực hiện nhiều lần
Trang 3O O
O O 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¶
1 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
‘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>;
G iá 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 – giá trị đầu + 1.
3 câu lệnh lặp
Trang 6Chú ý :
• Ban đầu biến đếm sẽ nhận giá trị đầu, sau mỗi vòng lặp, biến đếm được tự động 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
Program tinhtong;
Uses crt;
Var S,i : Integer;
Begin
S:=0;
Write(‘Nhap so n’); Read(n); For i:=1 to n do S:=S +i; Writeln('Tong S=',S);
Readln;
End.
Ch ư ¬ng tr×nh
Khai b¸o
Lµm s¹ch biÕn tæng
NhËp gi¸ trÞ cuèi
In kÕt qu¶
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:
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 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;
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ới các dữ liệu khác nhau, cho đến khi một
lệnh lặp để 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.