Đó là 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 nhỉ?. - B3: Nếu biến đếm nhỏ hơn hoặc bằng giá trị cuối thì thực hiện câu lệnh và quay về B2.. Tính tổng và t
Trang 1CÂU LỆNH LẶP
BÀI 7
Trang 2 Em đánh răng 2 lần mỗi ngày
Kim giây quây 60 vòng trong 1 giờ
Viết chương trình in ra màn hình 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âu lệnh lặp – một lệnh thay cho nhiều lệnh
Trang 3HELLO HELLO HELLO HELLO
VD1 : in ra màn hình 1
chữ HELLO
Program BT1;
Uses crt;
Begin
Writeln(‘HELLO');
Readln;
End
Program BT4;
Uses crt;
Begin
Writeln(‘HELLO');
Writeln('HELLO');
Writeln(‘HELLO');
Writeln(‘HELLO');
Readln;
End.
VD2 : in ra màn hình 4 chữ HELLO
Trang 4 Mọi ngôn ngữ lập trình đều có cấu trúc lặp với một
câu lệnh Đó là 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 nhỉ?
chương trình quá dài, và viết mất
nhiều thời gian !
Trang 5a Cú pháp :
FOR <BIẾN ĐẾM>:= <GIÁ TRỊ ĐẦU> TO <GIÁ TRỊ CUỐI> DO <CÂU LỆNH>;
b Trong đó:
- FOR, TO, DO : là các từ khóa của Pascal
- Biến đếm : thường có kiểu số nguyên
- Giá trị đầu, giá trị cuối : là giá trị số nguyên
- Giá trị cuối > Giá trị đầu.
- Câu lệnh : có thể là câu lệnh đơn hoặc câu lệnh ghép
2 Câu lệnh lặp For…do (câu lệnh lặp với số lần biết trước)
Trang 6c Hoạt động:
- B1: Biến đếm nhận giá trị bằng giá trị đầu và thực hiện câu lệnh.Sang B2
- B2: Biến đếm tăng 1 đơn vị Sang B3.
- B3: Nếu biến đếm nhỏ hơn hoặc bằng giá trị cuối thì thực hiện câu lệnh và quay về B2 Ngược lại, qua B4.
- B4: Kết thúc
Trang 7Program in4;
Uses crt;
Begin
Writeln('O');
Writeln('O');
Writeln('O');
Writeln('O');
Readln;
End.
Program in4;
Uses crt;
Begin
For i:=1 to 4 do Writeln('O');
Readln;
End.
Ban đầu biến đếm (i =1 < 4) lệnh writeln được thực hiện In ra màn hình chữ O đầu tiên
Biến đếm i tự động tăng lên 1 đơn vị (i = 2 < 4 ) lệnh writeln được thực hiện In ra màn hình chữ O thứ 2
O
O
O
O
Hoạt động của lệnh For …To… Do
VD3: In ra màn hình 4 chữ O
Trang 8Program thutu;
Uses crt;
Begin For i:=1 to 4 do writeln(‘ day la lan lap thu :’, i);
Readln;
End.
Program thutu;
Uses crt;
Begin
Writeln(‘day la lan lap thu:’, 1);
Writeln(‘day la lan lap thu:’, 2);
Writeln(‘day la lan lap thu:’, 3);
Writeln(‘day la lan lap thu:’, 4);
Readln;
End.
day la lan lap thu : 1 day la lan lap thu : 2 day la lan lap thu : 3 day la lan lap thu : 4
Kết quả khi chạy chương trình
VD 4: In lên màn hình thứ tự lần lặp
Trang 9Ví dụ 5: 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
Việc tính S được lặp đi lặp lại 100 lần theo quy luật
S sau = S trước + i với i tăng lần lượt từ 1 đến100
3 Tính tổng và tích bằng câu lệnh lặp.
1
Trang 10Diễn tả thuật toán
B1: Bắt đầu
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
B2: S:=0; i:=1;
Trang 11Uses 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 S:=0;
For i:=1 to N do
S:= S + 1/i;
VD6: Lập chương trình tính tổng sau:
N
4
1 3
1 2
1
Trang 121! = 1
2! = 1 2
3! = 1 2 3
4! = 1 2 3 4
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 13Em 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 ;
Mô phỏng chương trình bằng Pascal
Trang 14Câu l
ệnh l ặp
Cú
pháp
Giải thích
Tính tổng và tích bằng c
âu lệnh lặp
Tính
tổng
Tính tích
Trang 15Bài tập 1: Viết chương trình in ra các số chẵn nhỏ hơn
hoặc bằng n ( Với n được nhập)
Hướng dẫn: - Cho biến i chạy từ 1 đến n.
- Nếu i chẵn ( i chia 2 dư 0) thì in ra
Bài tập 2: Viết chương trình in ra các số lẻ nhỏ hơn hoặc
bằng n ( Với n được nhập)
Hướng dẫn: - Cho biến i chạy từ 1 đến n.
- Nếu i lẻ ( i chia 2 dư 1) thì in ra
Trang 16Bài tập 3: Viết chương trình in ra tổng các số lẻ nhỏ hơn hoặc
bằng n ( Với n được nhập)
Hướng dẫn:
- Cho S = 0.
- Cho biến i chạy từ 1 đến n
- Nếu i lẻ ( I chia 2 dư 1) thì cộng thêm I vào S
- In ra S
Bài tập 4: Viết chương trình in ra tổng các số chẳn nhỏ hơn
hoặc bằng n ( Với n được nhập)
Hướng dẫn:
- Cho S = 0.
- Cho biến i chạy từ 1 đến n
- Nếu i chẵn ( I chia 2 dư 0) thì cộng thêm I vào S
- In ra S
Trang 17Bài tập 5: Một số có tổng các ước nhỏ hơn nó bằng chính nó
được gọi là số hoàn chỉnh
Ví dụ: 6 có các ước nhỏ hơn nó là 1, 2, 3 Tổng là 1 + 2 + 3 = 6.Viết chương trình xét xem một số n được nhập từ bàn phím
có phải là số hoàn chỉnh không
Hướng dẫn:
- Dùng biến n lưu số cần xét.
- Biến S có giá trị ban đầu bằng 0
- Cho i chạy từ 1 đến n-1 nếu i là ước của n thì cộng thêm i vào S
- Nếu S = n thì S là số hoàn chỉnh