CHƯƠNG IIIthùng BÀI TOÁN ĐỔ NƯƠC Đổ nước vào thùng cho đến khi thùng đầy Lặp lại 3 lần đổ nước Chưa biết trước số lần đ Đổ 3 ca nước vào trong thùng... Lặp với số lần biết trước II.. L
Trang 1Bµi 10
cÊu tróc lÆp
Gi¸o ¸n ®iÖn tö tin häc líp 11
( tiÕt 1)
Trang 2CHƯƠNG III
thùng
BÀI TOÁN ĐỔ NƯƠC
Đổ nước vào thùng cho đến khi thùng
đầy
Lặp lại 3 lần đổ nước Chưa biết trước số lần đ
Đổ 3 ca nước vào
trong thùng
Trang 3CHƯƠNG III
1 Lặp
Bài toán 1:
Có bao nhiêu lần đổ nước
vào thùng?
100 lần
Mỗi lần đổ một lượng là bao nhiêu?
Mỗi lần đổ 1/(a+i)
với
i chạy từ 1 100
100
1
2
1 1
1
1
a a
a a
S
Trang 4CHƯƠNG III
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần
Lặp với số lần biết trước
Sau mỗi lần thực hiện tổng S tăng lên
1/(a + i) với = 1, 2,…,100
1 Lặp
a
S 1
1
1
1
1
a
Trang 5CHƯƠNG III
Cho đến khi
1 Lặp
Bài toán 2:
Lặp với số lần lặp chưa biết trước
1
2
1 1
1
1
N a
a a
a S
0001
0
1
N a
a
1
1
1
1
a
Xuất phát
Trang 6CHƯƠNG III
I Lặp với số lần biết trước
II Lặp với số lần không biết trước
Trang 71 Bài toán đặt vấn đề
- output: Xuất S
Viết chương trình tính tổng sau:
- input: Nhập a
Hãy xác định input và output của bài toán
CHƯƠNG III
100
1
2
1 1
1
1
a a
a a
S
Trang 8CHƯƠNG III
Nhận xét
S1 = 1/a S2 = S1 + 1/a+1 S3 = S2 + 1/a+2 S4 = S3 + 1/a+3 S101 = S100 + 1/a+100
a
1
S
Bắt đầu từ S2 việc tính S được lặp đi lặp lại theo quy luật
Ssau = Strước+ 1/a+N Với N chạy từ 1 100
1
1
1
1
a
100
1
a
Trang 9§ S
NhËp a
S:= 1/a ; N:= 0
N>10 0
S:= S + 1/i
§ a ra S råi kÕt thóc
B1: NhËp a;
B2: S:=1/a; N:=0;
B4: NÕu N >100th× ® a ra gi¸
trÞ S => KÕt thóc;
B5 : S:= S + 1/(a+N);r i ồi quay l i b ại bước 2 ước 2 c 2
B6: Đư a ® a ra gi¸ trÞ S => KÕt thóc
i:= i+1
N:=N+1
B3: N:=N+1
S CHƯƠNG III
Trang 10CHƯƠNG III
- Cú pháp:
ForFor <biến đếm> biến đếm := <Gt đầu> Gt đầu ToTo <Gt cuối> Gt cuối DoDo <CL> CL ;
- Trong đó:
: Từ khóa
, ,
: là biến đơn,thường có kiểu nguyên : là các biểu thức,cùng kiểu với biến đếm.(gt đầu<
gt cuối)
,
: là câu lệnh hoặc khối lệnh Chú ý Câu lệnh sauDo không được thay đổi giá trị biến đếm
2 Lặp với số lần biết trước và câu lệnh For Do
a Dạng lặp tiến
Trang 11CHƯƠNG III
Biến đếm lần lượt nhận các giá trị từ Gt đầu đến Gt cuối, mỗi lần như thế thì câu lệnh được thực hiện một lần
- Ví dụ S:= 1/a;
For i:= 1 To 100 Do S:= S + 1/(a + i);
- Cú pháp:
For <biến đếm> := <Gt đầu> To <Gt cuối> Do <CL> ;
2 Lặp với số lần biết trước và câu lệnh for do
a Dạng lặp tiến
- Ý nghĩa:
Trang 12CHƯƠNG III
- Cú pháp
For <biến đếm> := <GT cuối> Downto <GT đầu> Do <CL> ;
2 Lặp với số lần biết trước và câu lệnh for do
b Dạng lặp lùi
Biến đếm lần lượt nhận các giá trị từ GT cuối xuống đến GT đầu , mỗi lần như thế câu lệnh được thực hiện một lần
- ý nghĩa:
- Ví dụ: S:= 1/a;
For i:= 100 Downto 1 Do S:= S + 1/(a + i);
Trang 13Uses crt;
Var i,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1;
FOR i:=2 to N do S := S+1/i;
Writeln(‘ Tong S =’,S:8:3);
Write(‘ Nhap vao gia tri cua N :’);readln(N);
lệnh lặp dạng tiến để viết ch
ơng trình giải bài
toán sau:
N
4
1 3
1 2
1
1
CHƯƠNG III
Viết chương trinh tớnh tổng
Trang 14S := 1 ; i := 2;
S := S +1/ i ;
i := i +1;
2.08 1.83
1.5
1
4 3
2
Lượ t i
5 NhËp N
S := 1 ; i := 2;
2>5 ?
S
S := 1 +1/2 ;
i := 2 +1;
3>5 ?
S := 1.5+1/3 ;
i := 3 +1;
4>5 ?
S := 1.83+1/4 ;
i := 4 +1;
5>5 ?
S := 2.08+1/5;
i := 5 +1;
6
S 6>5 ? Tæng S=2.28 In Tæng S
Víi N = 5
2.28
§ CHƯƠNG III
Trang 15Tính tổng S (với a là số nguyên nhập vào từ bàn phím và a>2).
100
1
2
1 1
1
1
a a
a a
S
?
• Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp
• Viết ch ơng trình để giải bài toán trên.
- S:=1/a;
- S:= S + 1/(a+i);
- i chạy từ 1 đến 100 => Số lần lặp là 100 lần.
CHƯƠNG III
Trang 16\pascal\pascal chon cai' TPX\TONG.EXE
CHƯƠNG III
Trang 17GHI NHỚ
1.Câu lệnh lặp dạng tiến
For biến đếm := <GT đầu> To <GT cuối> Do <câu lệnh>;
2 Câu lệnh lặp dạng lùi
<câu lệnh>;
CHƯƠNG III