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

Chia sẻ bởi Hoàng Vân | Ngày 24/10/2018 | 41

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:

Nhiệt liệt chào mừng
quý thầy, cô giáo và các em
về dự giờ hôm nay!
TRƯỜNG THCS NGUYỄN TẤT THÀNH
KIỂM TRA BÀI CŨ
Cú pháp:
Cấu trúc dạng lặp tiến:
For := to do
;
Cấu trúc dạng lặp lùi:
For := dowto 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.
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 - Tiết 45:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
 Nam sẽ học bài cho đến khi thuộc.
 Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
Về nhà caùc em haõy cho theâm nhöõng ví duï veà hoaït ñoäng laëp vôùi soá laàn chöa bieá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:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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.
Moät ngaøy chuû nhaät, Long quyeát ñònh cöù 10 phuùt goïi ñieän moät laàn cho Trang, cho ñeán khi coù ngöôøi nhaác maùy.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Bước 1:
Bước 2:
Bước 3:
Bước 4:
S  0, n  0.
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:
Nói chung, hoạt động lặp với số lần chưa biết trước có thể được mô tả như sau:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁ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:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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 hay là câu lệnh ghép.
2. Ví d? v? l?nh l?p với số lần chưa biết trước:


Câu lệnh lặp này được thực hiện như sau:

1) Kiểm tra điều kiện.

2) + Nếu điều kiện ĐÚNG, thực hiện câu lệnh và quay lại bước 1.
+ 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.

Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p với số lần chưa biết trước:
Sơ đồ
hoạt động

điều kiện
C�U LệNh
SAI
ĐÚNG
Lưu Đồ miêu tả quá trình hoạt động của vòng lặp WHILE...DO
Kiểm tra
điều kiện
Thực hiện lệnh

Thoát khỏi
vòng lặp
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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;
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à a:=a+1 (câu lệnh đơn).
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).

Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
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 := 0;
while S <= 1000 do
begin
n := n+1; S := S+n ;
end;
writeln(‘So can tim la:’,n);
Writeln(‘ Tong tim duoc la:’,S);
Readln;
End.
Hãy nêu Cú Pháp câu lệnh lặp với số lần chưa biết trước?
Tong S= 1035 va 45 la so tu nhien nho nhat sao cho S>1000
While <điều kiện> do ;

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
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể và chỉ dừng lại khi điều kiện đó sai.
GHI NHỚ
- Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
While <điều kiện> do ;
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- 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.
tRÂN TRỌNG Cảm ơn qúy Thầy Cô
&
Các em học sinh
CHúC Quý THầY CÔ CùNG ToàN THể CáC EM LUÔN LUÔN MạNH KHỏE!
* 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ẻ: Hoàng Vân
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)