1. BÀI GIẢNG
MÔN TIN HỌC 8Nguyễn Quang Sơn
Email: sonnq.sp@gmail.com
Website: sonnqsp.wordpress.com
Edited by Quang-Son, Nguyen - 2013
TRƯỜNG THPT NGUYỄN HÙNG HIỆP
2. Edited by Quang-Son, Nguyen - 2013 2
Bài 7: CÂU LỆNH LẶP
1. Các công việc phải thực
hiện nhiều lần
2. Câu lệnh lặp – một lệnh
thay cho nhiều lệnh
3. Ví dụ về câu lệnh lặp
4. Tính tổng và tích bằng
câu lệnh lặp
3. 1. Các công việc phải thực hiện
nhiều lần
Edited by Quang-Son, Nguyen - 2013 3
Hãy quan sát các ảnh sau
Đánh răng mỗi ngày hai lần là công việc lặp lại
với số lần nhất định và biết trước.
Mỗi ngày tắm một lần là công việc lặp lại
với số lần nhất định và biết trước.
Đi học mỗi ngày một lần là công việc lặp
lại với số lần nhất định và biết trước.
Học cho đến khi thuộc bài là công việc
lặp lại với số lần không thể xác định được.
4. Edited by Quang-Son, Nguyen - 2013 4
1. Các công việc phải thực hiện
nhiều lần
Để chỉ dẫn cho máy thực hiện đúng công việc, trong
nhiều trường hợp ta cũng cần phải viết lặp lại nhiều
câu lệnh thực hiện một phép tính nhất định.
Ví dụ: Tính tổng
S = 1 + 2 +3 +4+…+100
5. 2. Câu lệnh lặp – một lệnh thay
cho nhiều lệnh
Edited by Quang-Son, Nguyen - 2013 5
Ví dụ 1. Giả sử ta cần vẽ ba hình vuông có cạnh
1 đơn vị như hình 33. Mỗi hình vuông là ảnh dịch
chuyển của hình bên trái nó một khoảng cách 2
đơn vị. Do đó, ta chỉ cần lặp lại thao tác vẽ hình
vuông ba lần.
Hình 33
6. Edited by Quang-Son, Nguyen - 2013 6
2. Câu lệnh lặp – một lệnh thay
cho nhiều lệnh
Thuật toán vẽ hình vuông sau đây:
Bước 1. Vẽ hình vuông ( vẽ liên tiếp bốn cạnh và trở về
đỉnh ban đầu).
Bước 2. Nếu số hình vuông đã vẻ được ít hơn 3, di
chuyển bút vẻ về bên phải hai đơn vị và trở lại bước 1;
ngược lại kết thúc thuật toán.
1
2 2
7. Edited by Quang-Son, Nguyen - 2013 7
2. Câu lệnh lặp – một lệnh thay
cho nhiều lệnh
Riêng bài toán vẽ một hình vuông (hình 34), thao
tác chính là vẽ bốn cạnh bằng nhau, hãy lặp lại
bốn lần thao tác vẽ một đoạn thẳng. Sau mỗi lần
vẽ đoạn thẳng, thước kẻ được quay một góc 90
sang phải tại vị trí của bút vẽ.
Hình 34
8. Edited by Quang-Son, Nguyen - 2013 8
Thuật toán sau đây sẽ mô tả các bước để vẽ
hình một vuông:
Bước1. K←0 (K là số đoạn thẳng
đã vẽ được)
Bước2. K←K+1. Vẽ đoạn thẳng 1
đơn vị độ dài và quay thước 900 sang
phải.
Bước3. Nếu K < 4 thì trở lại bước2;
Ngược lại, kết thúc thuật toán.
2. Câu lệnh lặp – một lệnh thay
cho nhiều lệnh
9. Edited by Quang-Son, Nguyen - 2013 9
2. Câu lệnh lặp – một lệnh thay
cho nhiều lệnh
Ví dụ 2. Giả sử cần tính tổng của 100 số
tự nhiên đầu tiên, tức là tính:
S= 1+2+3+…+100.
Thuật toán sau đây sẽ mô tả việc thực hiện lặp lại
phép cộng 100 lần:
Bước1. SUM 0; i 0.
Bước2. i i+1.
Bước3. Nếu i ≤ 100, thì SUM SUM + i và quay lại bước 2.
Bước4. Thông báo kết quả và kết thúc thuật toán.
10. Edited by Quang-Son, Nguyen - 2013 10
Kết luận: Cách mô tả các hoạt động lặp
trong thuật toán như trong ví vụ trên được gọi là
cấu trúc lặp
2. Câu lệnh lặp – một lệnh thay
cho nhiều lệnh
11. Edited by Quang-Son, Nguyen - 2013 11
3. Ví dụ về câu lệnh lặp
• Trong đó For, to, do là từ khóa
• Biến đếm: biến kiểu nguyên
• Giá trị đầu, giá trị cuối là biểu thức cùng kiểu với
biến đếm (giá trị đầu phải nhỏ hõn hoặc bằng giá
trị cuối)
• Câu lệnh: Không được làm thay đổi giá trị biến
đếm, Nếu có nhiều hơn một lệnh thì phải đặt trong
cặp từ khóa Begin ... end;
Câu lệnh lặp thường gặp trong pascal có dạng như sau:
For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Ví dụ: for i:= 1 to 10 do write(i);
12. Edited by Quang-Son, Nguyen - 2013 12
Bước 1: tính giá trị
đầu, gán cho biến đếm.
Bước 2: Nếu biến
đếm <= giá trị cuối thì:
- thực hiện lệnh cần
lặp.
- tăng biến đếm 1 đơn
vị, quay lại bước 2
SƠ ĐỒ KHỐI
Biến đếm:=giá trị đầu
Biến đếm<=giá trị cuối
Thực hiện câu lệnh, biến đếm tăng 1
Đúng
Sai
Quan sát sõ đồ khối, hãy cho biết sự thực hiện của máy?
3. Ví dụ về câu lệnh lặp
13. Edited by Quang-Son, Nguyen - 2013 13
3. Ví dụ về câu lệnh lặp
day la lan lap thu 1
day la lan lap thu 2
day la lan lap thu 3
day la lan lap thu 4
day la lan lap thu 5
day la lan lap thu 6
day la lan lap thu 7
day la lan lap thu 8
day la lan lap thu 9
day la lan lap thu 10
Program lap;
Uses crt;
Var i: integer;
Begin
For i:= 1 to 10 do
Writeln (‘day la lan lap thu’,i);
Readln
end.
Ví dụ 3:Chương trình sau sẽ in ra màn hình thứ
tự lần lặp:
14. Edited by Quang-Son, Nguyen - 2013 14
3. Ví dụ về câu lệnh lặp
Program lap;
Uses crt;
Var i: integer;
Begin
For i:= 1 to 20 do
begin
Writeln (‘O’);
delay(100);
end;
Readln
end.
Ví dụ 4: Để in một chữ “O” trên màn hình, ta
có thể sử dụng lệnh “Writeln(‘O’);
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
15. Edited by Quang-Son, Nguyen - 2013 15
4. Tính tổng và tích bằng câu lệnh lặp
Program Tinh_tong;
Uses crt;
Var N, i: integer;
S: longint;
Begin
Write(‘nhap so N=‘); readln(N);
S:=0;
For i:= 1 to N do S:= S + i;
Writeln (‘Tong cua’,N,’So tu nhien dau tien=‘,s);
Readln
end.
Ví dụ 5: Chương trình sau đây sẽ tính tổng của N số tự nhiên
đầu tiên, với N là số tự nhiên được nhập từ bàn phím
16. Edited by Quang-Son, Nguyen - 2013 16
4. Tính tổng và tích bằng câu lệnh lặp
Program Tinh_Giai_thua;
Uses crt;
Var N, i: integer;
P: longint;
Begin
Write(‘nhap so N=‘); readln(N);
P:=1;
For i:= 1 to N do p:=p*i;
Writeln (N,’!=’p);
Readln
end.
Ví dụ 6: Tính giai thừa N!
17. Edited by Quang-Son, Nguyen - 2013 17
4. Tính tổng và tích bằng câu lệnh lặp
Ví dụ 6: Ta kí hiệu N! là tích N số tự nhiên đầu tiên:
N! = 1.2.3…N
Viết chương trình tính N! với N là số tự nhiên được nhập
vào từ bàn phím.
Program Tính_Giai_thua;
Uses crt;
Var i, N: integer;
P: longint;
Begin
write (‘Nhap N = ‘); readln (N);
P:= 1;
For i:= 1 to N do P:= P*i;
Writeln (N,’! = ’,P);
Readln
end.
19. C l i c k t o e d i t c o m p a n y s l o g a n .
Edited by Quang-Son, Nguyen - 2013
Editor's Notes
Trong cuộc sống hằng ngày, nhiều hoạt động được thực hiện lặp đi, lặp lại nhiều lần, có những hoạt động mà chúng ta thường thực hiện lặp với số lần nhất định và biết trước. Vậy, Khi viết chương trình máy tính cũng vậy.