Các thực hiện nhiều lần
1
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
2
Ví dụ về câu lệnh lặp
3
Tính tổng và tích bằng câu lệnh lặp
4
1
Các công việc phải
Các công việc phải
thực hiện nhiều lần:
thực hiện nhiều lần:
Hoạt động Hoạt động lặp Số lần lặp
1-Dao động của con lắc đồng hồ
trong thời gian 1 phút.
2-Viết số 9 999 999 999
3- Đếm số hạng trong tổng
3+4+5+6+7+8+…+2015
4- Nhặt từng cọng rác cho đến khi
xong.
5-Học cho đến khi thuộc bài.
Dao động
60
Nhặt rác
Học bài
Chưa biết
Chưa biết
Viết chữ số 9
10
Đếm số hạng
2013
Quan saùt caùc
hoaït ñoäng
1
Các cơng việc phải
Các cơng việc phải
thực hiện nhiều lần:
thực hiện nhiều lần:
Hãy cho một số ví dụ
khác về hoạt động
lặp với số lần biết
trước và chưa biết
trước?
Như vậy có những
hoạt động biết trước
số lần lặp, có những
hoạt động chưa biết
trước số lần lặp
- Khi viết chương trình
máy tính cũng vậy. Để chỉ
dẫn cho máy tính thực
hiện đúng cơng việc,
trong nhiều trường hợp ta
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.
2
Câu lệnh lặp – một
Câu lệnh lặp – một
lệnh thay cho nhiều lệnh:
lệnh thay cho nhiều lệnh:
Ví dụ 1: Giả sử ta cần vẽ ba hình vuông có cạnh 1 đơn vị như
hình 33(SGK). 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ị.
2 đơn vị 2 đơn vị
Vẽ hình vuông thứ 2
theo điều kiện gì?
Thao tác vẽ
hình vuông lặp
lại mấy lần?
Ta chỉ cần lặp lại thao tác vẽ hình vuông ba lần.
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
Ví dụ 1: Giả sử ta cần vẽ ba hình vuông có cạnh 1 đơn vị như hình 33(SGK).
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ị.
Thuật toán :
2 đơn vị
1. Vẽ hình vuông (vẽ liên tiếp bốn cạnh và trở về đỉnh ban đầu).
2. Di chuyển bút vẽ về bên phải 2 đơn vị.
3. Vẽ hình vuông (vẽ liên tiếp bốn cạnh và trở về đỉnh ban đầu).
4. Di chuyển bút vẽ về bên phải 2 đơn vị.
5. Vẽ hình vuông (vẽ liên tiếp bốn cạnh và trở về đỉnh ban đầu).
2 đơn vị
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
Ta cần dịch chuyển
bút vẽ về bên phải
2 đơn vị để vẽ hình
vuông tiếp theo
không?
Quan sát các
thao tác và cho
biết thao tác nào
lặp lại?
Thao tác vẽ hình vuông và
di chuyển bút vẽ về bên
phải 2 đơn vị được lặp lại.
Hai thao tác trên
lặp lại trong
trường hợp nào?
Thao tác vẽ hình vuông và di
chuyển bút vẽ về bên phải 2
đơn vị được lặp lại nếu số hình
vuông đã vẽ được ít hơn 3.
1. Vẽ hình vuông (vẽ liên tiếp bốn cạnh
và trở về đỉnh ban đầu).
2. Di chuyển bút vẽ về bên phải 2 đơn vị.
3. Vẽ hình vuông (vẽ liên tiếp bốn cạnh
và trở về đỉnh ban đầu).
4. Di chuyển bút vẽ về bên phải 2 đơn vị.
5. Vẽ hình vuông (vẽ liên tiếp bốn cạnh
và trở về đỉnh ban đầu).
Bước 1: Vẽ hình vuông (vẽ
liên tiếp bốn cạnh và trở về
đỉnh ban đầu).
Viết lại
thành 1
bước
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 2
đơn vị và trở lại bước 1;
ngược lại, kết thúc thuật
toán.
Ví dụ 1: Giả sử ta cần vẽ ba hình vuông có cạnh 1 đơn vị như hình 33(SGK).
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ị.
Thuật toán :
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
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 2 đơn vị và trở lại bước 1; ngược lại, kết thúc thuật toán.
Hãy nêu thuật toán vẽ ba
hình vuông có cạnh 1 đơn
vị, 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ị?
Máy tính vẽ hình
vuông như thế
nào?
Ví dụ 1. Giả sử ta cần vẽ ba hình vuông có cạnh 1 đơn vị như hình 33(SGK).
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ị.
Thuật toán :
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
Ví dụ 1: (sgk/56)
Xét bài toán vẽ một hình vuông
Thao tác
chính của vẽ
hình vuông
là gì?
Thao tác chính của vẽ hình vuông là vẽ 4 cạnh bằng nhau, hay lặp lại 4
lần thao tác vẽ một đoạn thẳng.
Vẽ 4 đoạn thẳng
này như thế nào để
có được một hình
vuông?
Sau mỗi lần vẽ đoạn thẳng, thước kẻ được quay một góc 90
0
sang phải tại
vị trí của bút vẽ.
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
Thuật toán:
Gọi k là số đoạn thẳng đã vẽ được.
Bước 1: k ← 0
Tăng k bằng
câu lệnh gán
nào?
Bước 2: k ← k + 1.
Bước 2: k ← k + 1. Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 90
0
sang phải.
Thực hiện vẽ
đoạn thẳng 1 đơn
vị độ dài và quay
thước 90
0
sang
phải khi nào?
Ví dụ 1: (sgk/56)
Xét bài toán vẽ một hình vuông
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
Bước 1: k ← 0
Bước 2: k ← k + 1. Vẽ đoạn thẳng 1 đơn vị độ dài và quay thước 90
0
sang phải.
Khi k < 4
Bước 3: Nếu k < 4 thì trở lại bước 2. Ngược lại, kết thúc thuật toán.
Chú ý: Biến k được sử dụng như là biến đếm để ghi lại số cạnh đã vẽ
được.
Thuật toán :
Gọi k là số đoạn thẳng đã vẽ được.
Ví dụ 1: (sgk/56)
Xét bài toán vẽ một hình vuông
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
Ví dụ 2: Tính tổng của 100 số tự nhiên đầu tiên:
S = 1 + 2 + 3 + + 100
Ví dụ 1: (sgk/56)
Thuật toán:
Bước 1: SUM ←0; i ←0.
Bước 2: i ←i+1.
Bước 3: Nếu i ≤100, thì SUM ← SUM +i và quay lại bước 2.
Bước 4: Thông báo kết quả và kết thúc thuật toán.
Thuật toán trên mô tả việc thực hiện lặp lại phép cộng 100 lần.
Thực hiện lặp
lại phép cộng
bao nhiêu
lần?
1
Các công việc phải thực hiện nhiều lần:
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
Câu lệnh lặp – một lệnh thay cho nhiều lệnh
:
:
1
Các công việc phải
Các công việc phải
thực hiện nhiều lần:
thực hiện nhiều lần:
2
Câu lệnh lặp – một
Câu lệnh lặp – một
lệnh thay cho nhiều lệnh:
lệnh thay cho nhiều lệnh:
- Cách mô tả các hoạt động
lặp trong thuật toán như trong
ví dụ trên được gọi là cấu trúc
lặp.
- Mọi ngôn ngữ lập trình đều
có “cách” để chỉ thị cho máy
tính thực hiện cấu trúc lặp với
một câu lệnh. Đó là các câu
lệnh lặp.
Câu lệnh lặp trong
Pascal có dạng
như thế nào?
Câu lệnh lặp trong Pascal thường có dạng:
For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Trong đó: For, to, do: các từ khóa
biến đếm: biến kiểu nguyên.
giá trị đầu, giá trị cuối: là các giá trị nguyên
Program rua_chen;
Uses crt;
Var chen :integer;
Begin
For chen:=1 to 10 do writeln ( ‘Rua’);
readln;
End.
VD:
Câu lệnh
lặp là câu
lệnh nào?
Việc rửa
chén trên sẽ
thực hiện lặp
bao nhiêu
lần?
Sẽ thực hiện lặp lại:
10 – 1 + 1 = 10 lần
Xác định giá
trị đầu, giá
trị cuối, câu
lệnh?
1
Các công việc phải thực hiện nhiều lần:
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
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
Ví dụ về câu lệnh lặp
:
:
Câu lệnh lặp sẽ thực hiện
câu lệnh nhiều lần, mỗi lần
là một vòng lặp. Số vòng
lặp là biết trước và bằng
giá trị đầu – giá trị cuối +1
Khi thực hiện
rửa chén, ban
đầu chén sẽ
nhận giá trị
là bao nhiêu?
Ban đầu chen sẽ nhận giá trị
là 1 (là giá trị đầu)
Sau khi chén thứ 1 rửa xong
thì biến đếm chen sẽ tự
động tăng thêm một đơn vị
cho đến khi chen nhận gía
trị 10 ( giá trị cuối)
Câu lệnh lặp trong Pascal thường có dạng:
For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Trong đó: For, to, do: các từ khóa
biến đếm: biến kiểu nguyên.
giá trị đầu, giá trị cuối: là các giá trị nguyên
1
Các công việc phải thực hiện nhiều lần:
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
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
Ví dụ về câu lệnh lặp
:
:
- Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị là 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.
- Câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần, mỗi lần là một vòng lặp. Số vòng lặp
là biết trước và bằng
giá trị đầu – giá trị cuối +1
Biến:=<GT đầu >
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
True
False
Sơ đồ thuật toán cho cấu trúc lặp
Sơ đồ thuật toán cho cấu trúc lặp
For
For
To
To
Do
Do
3
Ví dụ về câu lệnh lặp
Ví dụ về câu lệnh lặp
:
:
Ví dụ 3: Chương trình in ra màn hình số lần lặp
Program Lap;
Uses crt;
Var i: integer;
Begin
for i:=1 to 10 do
writeln( Day la so lan lap thu ‘
,i);‘
Readln;
End.
Biến:=<GT đầu >
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
True
False
i:=1i:=2i:=3i:=4
i:=5
i:=7i:=8
i:=10
i:=9
2 <= 10
1 <= 10
3 <= 10
4 <= 10
i:=6
5 <= 10
6 <= 10
7 <= 10
8 <= 10
9 <= 10
10 <= 10
i:=11
11 <= 10
Day la so lan lap thu 1
Day la so lan lap thu 2
Day la so lan lap thu 3
Day la so lan lap thu 4
Day la so lan lap thu 5
Day la so lan lap thu 6
Day la so lan lap thu 7
Day la so lan lap thu 8
Day la so lan lap thu 9
Day la so lan lap thu 10
3
Ví dụ về câu lệnh lặp
Ví dụ về câu lệnh lặp
:
:
Uses crt;
Var i: integer;
Begin
clrscr;
for i:=1 to 20 do
Begin
writeln( o );‘ ‘
delay(100);
end;
Readln;
End.
Em hãy dự đoán kết quả
xuất ra trên màn hình
Sau khi dịch và chạy chương trình?
Ví dụ 4: Chương trình in ra màn hình chữ O
3
Ví dụ về câu lệnh lặp
Ví dụ về câu lệnh lặp
:
:
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
Em hãy viết chương trình tính tổng các số nguyên liên tiếp từ
n đến m với n,m là các số nguyên dương nhập vào từ bàn phím .
Gợi ý :
-
Tìm input,output ?
-
Khai báo các biến nào ? Kiểu dữ liệu gì ?
- Nhập vào từ bàn phím giá trị cho biến nào ?
-
Tìm thuật toán của chương trình ?
- Sử dụng các câu lệnh gì để viết chương trình ?
3
Ví dụ về câu lệnh lặp
Ví dụ về câu lệnh lặp
:
:
* Áp dụng:
Em hãy viết chương trình tính tổng các số nguyên liên tiếp từ
n đến m với n,m là các số nguyên dương nhập vào từ bàn phím .
3
Ví dụ về câu lệnh lặp
Ví dụ về câu lệnh lặp
:
:
* Áp dụng:
* Hướng dẫn:
- Input: n, m ; Output : Tổng S
- Nhập giá trị vào từ bàn phím cho biến n và m
- Thuật toán : Cho biến đếm i chạy từ n đến m
Nếu I <= m thì tổng S:= S +i
- Sử dụng câu lệnh Write, Readln, For to do
* Chương trình:
Program tinh_tong;
Var m, n, i: integer;
S: longint;
Begin
write (‘Nhap n = ‘); readln ( n);
write (‘Nhap m=‘); readln ( m);
S:=0;
For i:= n to m do S:= S + n;
Writeln (‘Tong cua S = ’,S);
Readln;
End.
1. Viết chương trình tính tổng các số nguyên liên tiếp:
S = 1+2+ +n với n nguyên dương nhập từ bàn phím.
2. Viết chương trình tính tổng các số chẵn, lẻ từ 1 đến n
với n nhập từ bàn phím.
HíngdÉnvÒn hµ
X
i
n
c
h
â
n
t
h
à
n
h
c
ả
m
ơ
n
c
á
c
t
h
ầ
y
c
ô
v
à
c
á
c
e
m
h
ọ
c
s
i
n
h