Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Bùi Thị Thúy |
Ngày 24/10/2018 |
45
Chia sẻ tài liệu: Bài 8. Lặp với số lần chưa biết trước thuộc Tin học 8
Nội dung tài liệu:
Chào mừng các em đến với môn tin học 8
KIỂM TRA BÀI CŨ
Cú pháp:
For:= to do
;
VD: For i:= 1 To 4 Do
Writeln(‘Day la so lan lap thu: ‘ ,i);
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 99 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.
Chua 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
Bài 8:
Baøi 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Nam làm bài tập cho đến khi làm xong.
Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
Các em hãy cho thêm những ví dụ về hoạt động 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:
Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
Baøi 8:
VD1(Sgk):
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. Các hoạt động lặp với số lần chưa biết trước:
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.
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.
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
T1 = 1
T2 = 1 + 2
T3 = 1 + 2 + 3
....
Cần cộng bao nhiêu số tự nhiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
VD2(Sgk):
1. Các hoạt động lặp với số lần chưa biết trước:
Đ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
tăng dần
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
1. Các hoạt động lặp với số lần chưa biết trước:
1
T1 = 1
Đúng
2
T2 = 1 + 2
Đúng
Đúng
…
…
…
?
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
3
T3 = 1 + 2 + 3
Phân tích bài toán:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
Bước 1:
Bước 2:
Bước 3:
Bước 4:
S 0, n 1.
Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước 4.
S S + n và quay lại bước 2.
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.
1. Các hoạt động 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 như sau:
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ơ đồ như sau:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD1: While a<=b do a:=a+1;
Trong đó : While, do là các từ khóa.
Điều kiện là a<=b (chứa phép so sánh).
Câu lệnh là a:=a+1 (câu lệnh đơn).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD2: While a>b do
Begin
write(‘a>b’);
a:=a-1;
End;
Trong đó : While, do là các từ khóa.
Điều kiện là a>b (chứa phép so sánh).
Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? 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
Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng như thế nào?
Baøi 8:
2. Ví d? v? 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
Cú pháp:
While <Điều kiện> Do;
Trong đó:
Điều kiện: Thường là một phép so sánh;
Câu lệnh: Có thể là câu lệnh đơn hoặc là câu lệnh ghép.
Baøi 8:
2. Ví d? v? 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
Câu lệnh lặp While … Do được thực hiện như sau:
B1: Kiểm tra Đk;
B2: Nếu Đk sai câu lệnh sẽ bị bỏ qua và kết thúc vòng lặp.
B3: Ngược lại, nếu Đk đúng thì thực hiện câu lệnh và quay lại bước 1.
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD1: While a<=b do a:=a+1;
Trong đó : While, do là các từ khóa.
Điều kiện là a<=b (chứa phép so sánh).
Câu lệnh là a:=a+1 (câu lệnh đơn).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD2: While a>b do
Begin
write(‘a>b’);
a:=a-1;
End;
Trong đó : While, do là các từ khóa.
Điều kiện là a>b (chứa phép so sánh).
Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
VD: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk)
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
var S,n: integer;
Begin
S:=0; n:=1;
while S<=1000 do
begin
S:=S+n ; n:=n+1;
end;
write(‘So n nho nhat de tong >1000 la ’, n);
Writeln(‘Tong dau tien >1000 la ‘, s);
Readln;
End.
So n nho nhat de tong >1000 la 46
Tong dau tien >1000 la 1035
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
CỦNG CỐ
Học sinh thảo luận theo nhóm (1 dãy bàn là 1 nhóm)
Có 4 câu hỏi. Mỗi nhóm chỉ được phép chọn 1 câu hỏi, nhóm chọn câu hỏi, cử đại diện đứng lên đọc đề. Sau đó tất cả các nhóm cùng thảo luận.
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ó quyền trả lời.
+ 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
Baøi 8:
- Xem trước VD3, VD4, VD5, Lặp vô hạn lần-Lỗi lập trình cần tránh.
DẶN DÒ
- 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.
- Về nhà học bài. Làm bài tập 2 Sgk trang 71.
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Cảm ơn quý thấy, cô
Các em học sinh
&
KIỂM TRA BÀI CŨ
Cú pháp:
For
VD: For i:= 1 To 4 Do
Writeln(‘Day la so lan lap thu: ‘ ,i);
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 99 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.
Chua 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
Bài 8:
Baøi 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Nam làm bài tập cho đến khi làm xong.
Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
Các em hãy cho thêm những ví dụ về hoạt động 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:
Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
Baøi 8:
VD1(Sgk):
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. Các hoạt động lặp với số lần chưa biết trước:
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.
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.
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
T1 = 1
T2 = 1 + 2
T3 = 1 + 2 + 3
....
Cần cộng bao nhiêu số tự nhiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
VD2(Sgk):
1. Các hoạt động lặp với số lần chưa biết trước:
Đ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
tăng dần
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
1. Các hoạt động lặp với số lần chưa biết trước:
1
T1 = 1
Đúng
2
T2 = 1 + 2
Đúng
Đúng
…
…
…
?
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
3
T3 = 1 + 2 + 3
Phân tích bài toán:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
Bước 1:
Bước 2:
Bước 3:
Bước 4:
S 0, n 1.
Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước 4.
S S + n và quay lại bước 2.
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.
1. Các hoạt động 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 như sau:
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ơ đồ như sau:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD1: While a<=b do a:=a+1;
Trong đó : While, do là các từ khóa.
Điều kiện là a<=b (chứa phép so sánh).
Câu lệnh là a:=a+1 (câu lệnh đơn).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD2: While a>b do
Begin
write(‘a>b’);
a:=a-1;
End;
Trong đó : While, do là các từ khóa.
Điều kiện là a>b (chứa phép so sánh).
Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? 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
Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng như thế nào?
Baøi 8:
2. Ví d? v? 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
Cú pháp:
While <Điều kiện> Do
Trong đó:
Điều kiện: Thường là một phép so sánh;
Câu lệnh: Có thể là câu lệnh đơn hoặc là câu lệnh ghép.
Baøi 8:
2. Ví d? v? 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
Câu lệnh lặp While … Do được thực hiện như sau:
B1: Kiểm tra Đk;
B2: Nếu Đk sai câu lệnh sẽ bị bỏ qua và kết thúc vòng lặp.
B3: Ngược lại, nếu Đk đúng thì thực hiện câu lệnh và quay lại bước 1.
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD1: While a<=b do a:=a+1;
Trong đó : While, do là các từ khóa.
Điều kiện là a<=b (chứa phép so sánh).
Câu lệnh là a:=a+1 (câu lệnh đơn).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
VD2: While a>b do
Begin
write(‘a>b’);
a:=a-1;
End;
Trong đó : While, do là các từ khóa.
Điều kiện là a>b (chứa phép so sánh).
Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
VD: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk)
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
var S,n: integer;
Begin
S:=0; n:=1;
while S<=1000 do
begin
S:=S+n ; n:=n+1;
end;
write(‘So n nho nhat de tong >1000 la ’, n);
Writeln(‘Tong dau tien >1000 la ‘, s);
Readln;
End.
So n nho nhat de tong >1000 la 46
Tong dau tien >1000 la 1035
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
CỦNG CỐ
Học sinh thảo luận theo nhóm (1 dãy bàn là 1 nhóm)
Có 4 câu hỏi. Mỗi nhóm chỉ được phép chọn 1 câu hỏi, nhóm chọn câu hỏi, cử đại diện đứng lên đọc đề. Sau đó tất cả các nhóm cùng thảo luận.
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ó quyền trả lời.
+ 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
Baøi 8:
- Xem trước VD3, VD4, VD5, Lặp vô hạn lần-Lỗi lập trình cần tránh.
DẶN DÒ
- 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.
- Về nhà học bài. Làm bài tập 2 Sgk trang 71.
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Cảm ơn quý thấy, cô
Các em học sinh
&
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Bùi Thị Thúy
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)