C¸c c«ng viÖc ph¶i thùc hiÖn nhiÒu lÇn... C©u lÖnh lÆp - mét lÖnh thay cho nhiÒu lÖnh..[r]
(1)Câu lệnh lặp
Bài
(2) Em đánh 2 lần ngy
Kim giây quay 60 vòng giờ Bài toán: Viết ch ơng trình
in hình số từ đến 10
Hãy kể tên hoạt động đ ợc thực lặp
đi lặp lại với số lần định biết tr ớc?
10 lÖnh in
(3)O O O O O
Ví dụ1: In hình chữ O
Ví dụ2: In hình ch÷ O
Program vd1; Uses crt;
Begin
Writeln('O'); End
Program vd2; Uses crt;
Begin
Writeln('O'); Writeln('O'); Writeln('O'); Writeln('O');
End KÕt qu¶
(4)O
O
Mọi ngơn ngữ lập trình có câu lệnh giỳp
thực nhiều câu lệnh lặp lặp lại một câu lệnh Đó các câu lệnh lặp.
Nếu viết ch ơng trình in
màn hình 100
chữ O nhỉ?
ch ơng trình dài, viết nhiều
(5)Câu lệnh lặp với số lần lặp biết tr ớc 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 giá trị đầu.
Câu lệnh câu lệnh đơn giản(một lệnh) 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 writeln(‘O’);
(6)Program in4; Uses crt;
Begin
Writeln('O'); Writeln('O'); Writeln('O'); Writeln('O'); End
Program in4; Var i: integer;
Begin
For i:=1 to Writeln('O');
End
Ban đầu biến đếm (i=1<4) lệnh in đ ợc thực In mh chữ O đầu tiên Biến đếm i tăng đơn vị (i=2<4) lệnh in đ ợc thực in mh chữ O thứ hai T ơng tự nh biến đếm i giá trị cuối (i=4) lệnh đ ợc thực
hiƯn lần cuối kết thúc hình có ch÷ O.
O O O O
Hoạt động lệnh For to
(7)Program in4; Uses crt;
Var i:integer; Begin
For i:=1 to 10 do begin
Writeln('O'); delay(100); end;
Readln; End.
Với giá trị bin m
+ Hai câu lệnh Writeln(o) delay(100) ® ỵc thùc hiƯn
+ Hai lệnh đ ợc đặt hai từ khoá begin, end Câu lệnh ghép
O O O O O O O O O O
(8)VÝ dô 1: Tính tổng 100 số tự nhiên liên tiÕp S = + + + + + 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 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ừ đến100
2
3 4 100
(9)Diễ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.
(10)Uses crt;
Var i,N : Integer; S : real; BEGIN
Readln; END.
S:=0;
FOR i:=1 to N 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 đề xác định:
- Giá trị khởi tạo S
- Giá trị đầu, cuối của biến đếm i
- Câu lệnh đ ợc lặp
N
S 1
4 1 3 1 2 1
1
S:=0;
For i:=1 to N do S:= S + 1/i;
(11)1! = 1
2! = 2
3! = 3 4! = 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 biến đếm i
- Câu lệnh đ ợc lặp
GT:=1;
(12)Em hÃy khai báo biến cho 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 bao nhiêu?
GT:=1;
Hãy viết câu lệnh lặp với giá trị biến đếm câu lệnh đ ợc lặp
For i:=1 to N GT:=GT*i;
In kÕt qu¶?
Writeln('Tich cua N so tu nhien =',GT); Readln;
End.
(13)
T
in
h
ä
c
8
Ghi nhí!
Cấu trúc lặp đ ợc sử dụng để thị
cho máy tính thực lặp lại hoạt động đó, th ờng vớic ác liệu khác nhau, cho đên skhi điều kiện đ ợc thỏa mãn
Mọi ngơn ngữ lập trình có câu
lệnh lặp để thể cấu trúc lặp
Ng«n ngữ Pascal thể cấu trúc lặp