TiÕt 14 - Bµi
10
Quan sát 2 hình sau
- Hình 1: Người thứ nhất
dùng một chiếc xô dung
tích 1 lít đổ đầy nước
vào một chiếc thùng có
dung tích 30 lít. Hỏi bao
lâu thì xong?
Dung tích
30 Lít
1 Lít
Sau
30 lần
đổ
- Hình 2: Người thứ 2
dùng một chiếc xô
không rõ dung tích để
đổ đầy nước vào một
chiếc thùng có dung
tích 30 lít . Hỏi bao lâu
thì xong?
Quá
trình
như vậy
được
gọi là
lặp
Dung tích
30 Lít
Lít
Chừng
Nào đầy
thùng
1/ LẶP
Lặp là điều khiển thực hiện công việc lặp đi lặp
lại khi chưa đủ số lần lặp hoặc khi có một điều
kiện nào đó còn đúng.
TÝnh tæng S, víi a lµ sè nguyªn vµ a>2
bµi to¸n 1:
1
1
1
1
S= +
+
+ ... +
a a +1 a + 2
a + 100
bµi to¸n 2:
1
1
1
1
S= +
+
+ ... +
+ ...
a a +1 a + 2
a+N
cho ®Õn khi
1
< 0.0001
a+N
Cùng tìm thuật toán
Xuất phát
Lần 1
Lần 2
1
1 + 1
S =
+
a a +1 a + 2
Lần N
+
1
1
+
a+N
thêm bao nhiêu?
lầnthực
thực
tổng
S tăng
SauMỗi
mỗi lần
hiệnhiện
giá trịgiá
tổngtrị
S tăng
thêm
( với N=1; 2; 3 ; ...)
a+N
tìm sự khác biệt
Bài toán 1:
1
1
1
1
S= +
+
+ ... +
a a +1 a + 2
a + 100
Bài toán 2:
S=
1
1
1
1
+
+
+ ... +
+ ...
a a +1 a + 2
a+N
Cho đến khi
Việc tăng giá trị cho
tổng S đợc lặp đi lặp
lại 100 lần.
1
< 0.0001
a+N
Việc tăng giá trị cho tổng
S đợc lặp đi lặp lại cho
đến khi
1
< 0.0001
a+N
Số lần lặp biết trớc.
Số lần lặp cha biết trớc.
1/ LẶP
Lặp là điều khiển thực hiện công việc lặp đi lặp
lại khi chưa đủ số lần lặp hoặc khi có một điều
kiện nào đó còn đúng.
Các loại cấu trúc lặp:
+ Lặp với số lần biết trước.
+ Lặp với số lần chưa biết trước .
C©u hái: Trong c¸c ho¹t ®éng díi ®©y,
ho¹t ®éng nµo lµ ho¹t ®éng lÆp víi sè
lÇn biÕt tríc?
A
Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng.
B
Nhập vào các số nguyên cho đến khi nhấn phím Enter thì dừng.
C
Học bài cho đến khi thuộc bài.
D
Tính tổng các số tự nhiên từ 1 đến 20.
23
30
29
26
28
19
15
16
17
13
10
27
24
25
20
21
22
18
14
12
11
6
7
9
5
3
0
1
8
4
2
2/ LÆp víi sè lÇn biÕt tríc vµ c©u lÖnh For - do
Bµi to¸n: Với a >2, a là số nguyên. Lập chương trình
tính tổng sau:
1
1
1
1
S = +
+
+ ... +
a a +1 a + 2
a + 100
- D÷ liÖu vµo (Input) :
a (a nguyªn, a>2)
- D÷ liÖu ra (Output) :
Tæng S
Phân tích bài toán (ý tởng)
1
1
1
1
1
+
+
+ ... +
S= +
a + 100
a a +1 a + 2 a + 3
Từ ý tởng trên em hãy viết
toán cho bài toán
. . . . . . . . . . . . . . . . . . thuật
..
Ban đầu :
S := 1/a
Cộng lần 1: S1: = S + 1/(a+1)
Cộng lần 2: S2: = S1 + 1/(a+2)
Cộng lần 3: S3: = S2 + 1/(a+3)
.....
Cộng lần 100: S100: = S99 + 1/(a+100)
Nhận xét:
Bắt đầu từ lần cộng 1 việc
tính S đợc lặp đi lặp lại
100 lần theo quy luật
Ssau := Strớc+ 1/(a+N)
với N chạy từ 1 100
Xây dựng thuật toán 1a
Lit kờ
B1: S1/a; N0;
1
1
1
1
S= +
+
+ ... +
a a +1 a + 2
a + 100
B2: N N +1;
B3: Nếu N >100 thì chuyển đến bớc 5;
B4: S S + 1/(a+N) rồi quay lại bớc 2;
B5: Đa S ra màn hình, rồi kết thúc;
Nhận xét:
Thuật toán trên, giá trị N bắt đầu tham gia vòng lặp là 1 sau mỗi lần lặp
vo
thut
em(N=
hóy
chothìbit
trlặp
N bt
uhiện 100
N tăngDa
lên 1
cho
đến toỏn
khi Ntrờn,
> 100
101)
kếtgiỏ
thúc
(thực
tham gia vũng lp l bao nhiờu v kt thỳc khi no?
lần).
X©y dùng thuËt to¸n 1b
Liệt kê
1
1
1
1
S= +
+
+ ... +
a a +1 a + 2
a + 100
B1: S1/a; N101;
B2: N N -1;
B3: NÕu N < 1 th× ®a ra gi¸ trÞ S råi KÕt thóc;
B4: S S + 1/(a+N) råi quay l¹i bíc 2;
B5: §a S ra mµn h×nh, råi kÕt thóc;
2/ Lặp với số lần biết trớc và câu lệnh For - do
Dạng 1 (dạng tiến)
FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>;
Ví dụ: S:=1/a;
FOR N:=1 TO 100 DO S:=S+1/(a+N);
Dạng 2 (dạng lùi)
FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh >;
Ví dụ: S:=1/a;
FOR i:=100 DOWNTO 1 DO S:=S+1/(a+N);
for, to, downto, do: Là từ khóa trong Pascal;
Biến đếm: Là biến đơn, thường có kiểu nguyên
Giá trị đầu, giá trị cuối: Là các biểu thức cùng kiểu
với biến đếm (Giá trị đầu nhỏ hơn hoặc bằng giá trị cuối)
Câu lệnh sau đây cho kết là gì?
s:=1; for i:=1 to 9 do
writeln(s);
A
In
Inra
ra99ssốố11
B
In
Inra
racácáccssốốttừừ11đế
đếnn10
10
C
In
Inra
racácáccssốốttừừ11đế
đếnn99
D
Không
Khôngph
phươ
ương
ngánánnànàoođđúnúngg
23
30
29
28
26
19
15
16
17
13
10
27
25
20
21
18
14
12
24
22
11
6
7
9
5
3
0
1
8
4
2
vÝ dô 1: ViÕt ch¬ng tr×nh in ra màn hình 20 câu: chao cac
ban.
Program vidu1;
Uses crt;
Var i: integer;
Begin
clrscr;
For i:= 1 to 20 do
writeln(‘chao cac ban LOP 11A4’);
Readln;
End.
vÝ dô 2: Cµi ®Æt thuËt to¸n Tong_1a
CỦNG CỐ
1. Khái niệm lặp
2.Lặp với số lần biết trước và câu lệnh for …do
Dạng lặp tiến:
Tăng 1 đơn vị
Cú pháp :
Dạng lặp lùi:
Giảm 1 đơn vị
Cú pháp :
For<biến đếm>:=<giá trị đầu> to For<biến đếm>:=<giá trị cuối>
<giá trị cuối> do <câu lệnh>;
downto<giá trị đầu> do <câu lệnh>;