Lặp với số lần chưa biết trước

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Lê Bá Khánh Toàn (trang riêng)
Ngày gửi: 20h:08' 19-01-2016
Dung lượng: 10.4 MB
Số lượt tải: 13
Nguồn:
Người gửi: Lê Bá Khánh Toàn (trang riêng)
Ngày gửi: 20h:08' 19-01-2016
Dung lượng: 10.4 MB
Số lượt tải: 13
Số lượt thích:
0 người
CHÀO MỪNG QUÝ THẦY CÔ GIÁO VÀ TẤT CẢ CÁC EM HỌC SINH
LỚP 8D
KIỂM TRA BÀI CŨ
Cú pháp:
For:= to do
;
VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100
S = 1 + 2 + 3 + . . .+100
Lặp 100 lần
Hãy quan sát
VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại. Tính tổng các số vừa nhập.
Chưa biết lặp mấy lần
Lặp với số lần biết trước, sử dụng câu lệnh lặp For…Do để viết chương trình
Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình?
LẶP VỚI SỐ LẦN CHƯA BiẾT trước
Tiết 41
Các ho?t d?ng l?p v?i s? l?n chua bi?t tru?c
Ví dụ về câu lệnh lặp với số lần chưa biết trước
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Bài 8:
1/ Các hoạt động lặp với số lần chưa biết trước
♦ Lan nhặt từng cọng rau giúp mẹ cho đến khi nhặt xong.
♦ Nam học bài thơ cho đến khi thuộc lòng.
♦ Nhập một đoạn văn bản vào máy tính cho đến khi nhập xong.
Tìm thêm những ví dụ về hoạt động lặp với số lần chưa biết trước
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Bài 8:
1/ Các hoạt động lặp với số lần chưa biết trước
Ví dụ 1 (Sgk/67):
Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy.
Long sẽ lặp lại hoạt động gọi điện mấy lần?
Chưa thể biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
1/ Các hoạt động lặp với số lần chưa biết trước
Ví dụ 2 (Sgk/67):
Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1, 2, 3,…), ta được các kết quả:
T1=1,
T2=1+2,
T3=1+2+3,…Tăng dần.
Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng T nhỏ nhất lớn hơn 1000?
Điều kiện như thế nào thì kết thúc hoạt động lặp?
Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
* Phân tích bài toán:
1
T1 = 1
Đúng
Đúng
Đúng
2
T2 = 1+2
3
T3 = 1+2+3
…
…
…
?
Tn = 1+2+3+…+?
(sao cho Tn nhỏ nhất lớn hơn 1000)
Sai, kết thúc việc tính tổng
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Ký hiệu S là tổng cần tìm và ta có thuật toán sau:
Bước 1: S ← 0, n ← 0.
Bước 2: Nếu S ≤ 1000, n ← n+1; ngược lại chuyển tới bước 4.
Bước 3: S ← S + n và quay lại bước 2.
Bước 4: In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán.
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
Có thể diễn tả bài toán trên bằng sơ đồ sau:
S1000?
Sai
n ? n+1;
S ? S+n;
Đúng
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
While<điều kiện>do[câu lệnh];
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Trong đó:
-While, do là từ khóa
-Điều kiện là biểu thức logic có giá trị đúng hoặc sai;
-Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép. Nếu là câu lệnh ghép thì câu lệnh phải đặt trong cặp từ khóa begin…end;
Cú pháp:
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
While x>5 do x:=x-1;
Câu lệnh đơn
While S<=10 do
Begin n:=n-1;
S:=S+1/n
End;
Câu lệnh ghép
;
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Nguyên lý hoạt động:
1/ Kiểm tra điều kiện.
2/ Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1
Kết thúc vòng lặp
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
‡ Một số chú ý trong lệnh lặp while…do
Nếu ngay lần kiểm tra điều kiện mà kết quả là sai thì các câu lệnh trong vòng lặp sẽ không được thực hiện lần nào.
Số lần kiểm tra chính là số lần lặp.
Tùy theo điều kiện mà viết các câu lệnh trong vòng lặp cho phù hợp.
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
GHI NHỚ:
1/ Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào điều kiện cụ thể và chỉ dừng lại khi điều kiện sai.
2/ while…do là câu lệnh lặp với số lần chưa biết trước trong Pascal.
BÀI TẬP CỦNG CỐ
Câu 1: 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 chưa biết trước?
A
B
C
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SAI
SAI
ĐÚNG
BÀI TẬP CỦNG CỐ
A
B
C
20
19
18
17
16
15
14
13
12
11
Câu 1: Đoạn lệnh nào sau đây viết đúng?
10
9
8
7
6
5
4
3
2
1
0
SAI
SAI
ĐÚNG
Học sinh thảo luận theo nhóm (chia 4 nhóm)
Có 4 câu hỏi. Caùc nhoùm cuøng suy nghó veà caâu hoûi trong thôøi gian 30 giaây, heát thôøi gian cöû daïi dieän giô caâu traû lôøi cuûa nhoùm mình.
Cách thức trả lời:
+ Nếu câu hỏi trắc nghiệm: tất cả các nhóm cùng giơ đáp án lên.
+ Nếu câu hỏi tự luận: nhóm chọn câu hỏi cử đại diện đứng lên trả lời. Các nhóm khác nhận xét.
BÀI TẬP
Câu 1
Câu 2
Câu 3
Câu 4
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Câu 1: 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 chưa biết trước?
a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n ;
Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
In ra các số từ 1 đến 9
In ra các số từ 1 đến 10
In ra các số 1
Không phương án nào đúng.
Câu 3: Đoạn lệnh sau đây cho kết quả là gì?
S:=1; While s < 10 do
Begin writeln(s); s:=s+1; end;
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
B. 10 vòng lặp, S=5
D. 12 vòng lặp, S=4
B. 10 vòng lặp, S=5
A. 9 vòng lặp, S=5.5
C. 11 vòng lặp, S=4.5
SAI RỒI!
SAI RỒI!
SAI RỒI!
35
Câu 4: Thuật toán sau thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu?
- Bước 1: S ? 10, x ? 0.5.
- Bước 2: Nếu S ? 5.2 chuy?n t?i bu?c 4.
- Bu?c 3: S ? S -x và quay lại bước 2.
- Bước 4: Thông báo S và kết thúc thuật toán.
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DẶN DÒ
Về nhà học bài. Làm bài tập SGK
Tìm thêm một vài ví dụ về hoạt động lặp với số lần chưa biết trước.
LỚP 8D
KIỂM TRA BÀI CŨ
Cú pháp:
For
VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100
S = 1 + 2 + 3 + . . .+100
Lặp 100 lần
Hãy quan sát
VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại. Tính tổng các số vừa nhập.
Chưa biết lặp mấy lần
Lặp với số lần biết trước, sử dụng câu lệnh lặp For…Do để viết chương trình
Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình?
LẶP VỚI SỐ LẦN CHƯA BiẾT trước
Tiết 41
Các ho?t d?ng l?p v?i s? l?n chua bi?t tru?c
Ví dụ về câu lệnh lặp với số lần chưa biết trước
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Bài 8:
1/ Các hoạt động lặp với số lần chưa biết trước
♦ Lan nhặt từng cọng rau giúp mẹ cho đến khi nhặt xong.
♦ Nam học bài thơ cho đến khi thuộc lòng.
♦ Nhập một đoạn văn bản vào máy tính cho đến khi nhập xong.
Tìm thêm những ví dụ về hoạt động lặp với số lần chưa biết trước
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Bài 8:
1/ Các hoạt động lặp với số lần chưa biết trước
Ví dụ 1 (Sgk/67):
Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy.
Long sẽ lặp lại hoạt động gọi điện mấy lần?
Chưa thể biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
1/ Các hoạt động lặp với số lần chưa biết trước
Ví dụ 2 (Sgk/67):
Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1, 2, 3,…), ta được các kết quả:
T1=1,
T2=1+2,
T3=1+2+3,…Tăng dần.
Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng T nhỏ nhất lớn hơn 1000?
Điều kiện như thế nào thì kết thúc hoạt động lặp?
Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
* Phân tích bài toán:
1
T1 = 1
Đúng
Đúng
Đúng
2
T2 = 1+2
3
T3 = 1+2+3
…
…
…
?
Tn = 1+2+3+…+?
(sao cho Tn nhỏ nhất lớn hơn 1000)
Sai, kết thúc việc tính tổng
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Ký hiệu S là tổng cần tìm và ta có thuật toán sau:
Bước 1: S ← 0, n ← 0.
Bước 2: Nếu S ≤ 1000, n ← n+1; ngược lại chuyển tới bước 4.
Bước 3: S ← S + n và quay lại bước 2.
Bước 4: In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán.
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
Có thể diễn tả bài toán trên bằng sơ đồ sau:
S1000?
Sai
n ? n+1;
S ? S+n;
Đúng
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
While<điều kiện>do[câu lệnh];
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
Trong đó:
-While, do là từ khóa
-Điều kiện là biểu thức logic có giá trị đúng hoặc sai;
-Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép. Nếu là câu lệnh ghép thì câu lệnh phải đặt trong cặp từ khóa begin…end;
Cú pháp:
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
2/ Ví dụ về lệnh lặp với số lần chưa biết trước
While x>5 do x:=x-1;
Câu lệnh đơn
While S<=10 do
Begin n:=n-1;
S:=S+1/n
End;
Câu lệnh ghép
;
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
Nguyên lý hoạt động:
1/ Kiểm tra điều kiện.
2/ Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1
Kết thúc vòng lặp
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
‡ Một số chú ý trong lệnh lặp while…do
Nếu ngay lần kiểm tra điều kiện mà kết quả là sai thì các câu lệnh trong vòng lặp sẽ không được thực hiện lần nào.
Số lần kiểm tra chính là số lần lặp.
Tùy theo điều kiện mà viết các câu lệnh trong vòng lặp cho phù hợp.
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
GHI NHỚ:
1/ Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào điều kiện cụ thể và chỉ dừng lại khi điều kiện sai.
2/ while…do là câu lệnh lặp với số lần chưa biết trước trong Pascal.
BÀI TẬP CỦNG CỐ
Câu 1: 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 chưa biết trước?
A
B
C
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SAI
SAI
ĐÚNG
BÀI TẬP CỦNG CỐ
A
B
C
20
19
18
17
16
15
14
13
12
11
Câu 1: Đoạn lệnh nào sau đây viết đúng?
10
9
8
7
6
5
4
3
2
1
0
SAI
SAI
ĐÚNG
Học sinh thảo luận theo nhóm (chia 4 nhóm)
Có 4 câu hỏi. Caùc nhoùm cuøng suy nghó veà caâu hoûi trong thôøi gian 30 giaây, heát thôøi gian cöû daïi dieän giô caâu traû lôøi cuûa nhoùm mình.
Cách thức trả lời:
+ Nếu câu hỏi trắc nghiệm: tất cả các nhóm cùng giơ đáp án lên.
+ Nếu câu hỏi tự luận: nhóm chọn câu hỏi cử đại diện đứng lên trả lời. Các nhóm khác nhận xét.
BÀI TẬP
Câu 1
Câu 2
Câu 3
Câu 4
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Câu 1: 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 chưa biết trước?
a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n ;
Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
In ra các số từ 1 đến 9
In ra các số từ 1 đến 10
In ra các số 1
Không phương án nào đúng.
Câu 3: Đoạn lệnh sau đây cho kết quả là gì?
S:=1; While s < 10 do
Begin writeln(s); s:=s+1; end;
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
B. 10 vòng lặp, S=5
D. 12 vòng lặp, S=4
B. 10 vòng lặp, S=5
A. 9 vòng lặp, S=5.5
C. 11 vòng lặp, S=4.5
SAI RỒI!
SAI RỒI!
SAI RỒI!
35
Câu 4: Thuật toán sau thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu?
- Bước 1: S ? 10, x ? 0.5.
- Bước 2: Nếu S ? 5.2 chuy?n t?i bu?c 4.
- Bu?c 3: S ? S -x và quay lại bước 2.
- Bước 4: Thông báo S và kết thúc thuật toán.
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DẶN DÒ
Về nhà học bài. Làm bài tập SGK
Tìm thêm một vài ví dụ về hoạt động lặp với số lần chưa biết trước.
 






