Các công việc phải thực hiện nhiều lần Em hãy liệt kê các hoạt động mà hằng ngày em phảI thực hiện lặp đI lặp lại nhiều lần?. Khi viết ch ơng trỡnh cho máy tính, ta cũng phải viết lặ
Trang 2Bµi cò
IF < iÒu đ kiện> Then
<câu lệnh>;
IF <đi ều kiện> Then
<câu lệnh1>
Else
<Câu lệnh2>;
Trang 31 Các công việc phải thực hiện nhiều lần
Em hãy liệt kê các hoạt
động mà hằng ngày em phảI thực hiện lặp đI lặp lại
nhiều lần?
Khi viết ch ơng trỡnh cho máy tính,
ta cũng 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.
Lặp với số lần biết trước:
đỏnh răng ngày hai lần, tắm một lần, ăn ba bữa…
Lặp với số lần chưa biết trước:
Học cho tới khi thuộc bài, Nhặt rau cho tới khi xong…
Trang 4B1: k ← 0 ( là số đoạn thẳng vẽ được).
B2: k ← k +1 (Vẽ đoạn thẳng một đơn vị độ dài và quay thước 90.
B3: N ếu K <4 quay lại B2 Ngược lại, kết thỳc thuật toỏn.
Vd1: Vẽ một hỡnh vuụng
0
2 Câu lệnh lặp – Một lệnh thay đổi nhiều lệnh
Trang 507/14/14 Nguyễn Thị Kim Sinh1 5
B1: Vẽ hình vuông (vẽ liên tiếp 4 cạnh ròi trở về đỉnh ban đầu.
B2: Số hình vuông ít hơn 3 thì thì dịch nét vẽ về hai đơn vị và quay lại b1.
Vd1: Vẽ 3 hình vuông
Trang 6B1: S:=0; i:=0;
B2: i:=i+1;
B3: S:=s+i;
B4: i<=100, quay lại B2 B4: Thông báo kết quả và kết thúc thuật toán
Vd2: T ính tổng của 100 số tự nhiên đầu tiên
S=1+2+3+4+ +100
Ta đã xét bài toán này ở bài 5: từ bài toán đến chương trình
Cách mô tả các hoạt động lặp trong thuật toán trên được gọi là cấu trúc lặp.
-NNLT chØ thị cho máy tính thực hiện cấu trúc lặp bằng một câu lệnh lặp.
-Đó là các câu lệnh lặp
Trang 707/14/14 Nguyễn Thị Kim Sinh 7
3 Ví dụ về câu lệnh lặp
Câu lệnh lặp th ờng gặp trong Pascal có
dạng
For <biến đếm> := <giỏ trị đầu> to to <giỏ trị cuối> do <cõu lệnh>;
For , to , do là các từ khóa
Biến đếm: kiểu số nguyên
Giá trị đầu, giá trị cuối: là các giá trị nguyên.
- Biết tr ớc số lần lặp: giá trị cuối - giá trị đầu +1
Trang 8Biến:=<GT đầu >
Biến <= GT cuối Câu lệnh Biến tự động tăng 1 ĐVị
True
False
Trang 9Vd: 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:=1
i:=5 i:=7 i:=10 i:=9
2 <= 10
i:=6
5 <= 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
Trang 1007/14/14 Nguyễn Thị Kim Sinh 10
Uses crt;
Var i: integer;
Begin
clrscr;
for i:=1 to 20 do
Begin
writeln( o ); ‘ ‘
delay(100);
end;
Readln;
End.
O o O O O O O O O O O O O O O O O O O
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?
Vd: Ch ¬ng tr×nh in ch÷ 0 ra mµn h×nh.
Trang 1107/14/14 Nguyễn Thị Kim Sinh 11
- Các lệnh đặt trong trong hai từ
khoá Begin và end để tạo thành
một câu lệnh ghép trong Pascal.
- Câu lệnh lặp giúp ta giảm nhẹ
công sức viết ch ơng trình.
Trang 124 Tính tổng và tích bằng câu lệnh lặp
Ví dụ 1: Viết chương trình tính tổng S=1+2+3+4+5
Trả lời:
Program Tinh_tong;
Var i: integer;
S: longint;
Begin S:=0;
For i:= 1 to 5 do S:= S + 1;
Writeln (‘Tong cua S = ’,S);
Readln;
end
Trang 1307/14/14 Nguyễn Thị Kim Sinh 13
4 Tính tổng và tích bằng câu lệnh lặp
Ví dụ 2: 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
Program Tính_Giai_thua;
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
Trang 14Bài tập
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 ?
Trang 1507/14/14 Nguyễn Thị Kim Sinh 15
- Input: n, m ; Output : Tổng S
- Khai báo biến : n, m, S, i kiểu Integer
- 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
Trả lời:
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
Hướng dẫn:
Trang 16- Input: n, m ; Output : Tổng S
- Khai báo biến : n, m, S, i kiểu Integer
- 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
Trả lời:
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;
Hướng dẫn:
Trang 1707/14/14 Nguyễn Thị Kim Sinh 17
- Input: n, m ; Output : Tổng S
- Khai báo biến : n, m, S, i kiểu Integer
- 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
Trả lời:
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
Hướng dẫn:
Trang 18-CÊu tróc lÆp: For to do
-BTVN: 1, 2, 3, 4, 5, 6 (sgk)
Trang 19Goo d Lu
u!
u!