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

Chia sẻ bởi Nguyễn Hữu Học | Ngày 09/05/2019 | 230

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:

LỚP: 8/G
GV: NGUYỄN HỮU HỌC
CHÀO MỪNG QUÝ THẦY, CÔ DỰ GIỜ THĂM LỚP
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 tính tổng các số tự nhiên đầu tiên.
S = 1 + 2 + 3 + …. Cho đến khi S>1000
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?
Bài 8:
LẶP VỚI SỐ LẦN
CHƯA BIẾT TRƯỚC
4
NỘI DUNG
1. Các hoạt động 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
3. Lặp vô hạn lần – Lỗi lập trình cần tránh
Bà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à.
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.
Hoạt động nào được lặp lại?
Hoạt động sẽ kết thúc khi nào?
6
1. Các hoạt động lặp với số lần chưa biết
Các bạn học sinh nhặt rác ở
công viên.
Nam học từ vựng tiếng anh bằng cách
viết lại nhiều lần cho đến khi thuộc.
Con quạ nhặt đá bỏ vào bình cho
đến khi nước tràn ra.
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?
T1 = 1
T2 = 1 + 2
T3 = 1 + 2 + 3
....
C?n c?ng bao nhiờu s? t? nhiờn d?u tiờn d? ta nh?n du?c t?ng Tn nh? nh?t l?n hon 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
tăng dần
1. Các hoạt động lặp với số lần chưa biết
Ví dụ 2: 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ả
8
1. Các hoạt động lặp với số lần chưa biết
THUẬT TOÁN:
Kí hiệu S là tổng cần tìm, ta có thuật toán sau:
Bước 1: S ? 0; n? 1;
Bước 2: Nếu S<= 1000,
S ? S+n;
ngược lại, chuyển tới bước 4;
Bước 3: n? n+1 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;
Em hãy viết thuật toán
cho ví dụ trên?
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:
10
S<=1000
S ← S + n;
n ← n +1;
Đúng
Sai
Việc thực hiện lặp lại các phép cộng trên với số lần chưa biết trước phụ thuộc vào điều kiện gì? Phép cộng chỉ dừng khi nào?
While a<=b do
a:=a+1;
While a>b do
Begin
a:=a-1;
b:=b+2;
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: câu lệnh đơn hoặc câu lệnh ghé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
VD1: Trong khi a bé hơn hoặc bằng b thì a tăng lên 1 đơn vị
VD2: Trong khi a lớn hơn b thì a giảm xuống 1 đơn vị, b tăng lên 2 đơn vị.
Begin
begin
end;
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?
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
2. Ví dụ về lệnh lặp với số lần chưa biết trước
13
Chú ý : Trong trường hợp câu lệnh ghép:
While <điều kiện> do
Begin
câu lệnh 1;
câu lệnh 2;

End;
WHILE <điều kiện> DO ;
Cú pháp:
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)
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1; S:=S+n ;
end;
write(‘Ket qua la: ’, S);
Readln;
End.
Tong S= 1035 va 45 la so tu nhien nho nha sao cho S>1000
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
Lưu ý:

Mỗi một câu hỏi sẽ có 30 giây để suy nghĩ.
Sau 30 giây giáo viên sẽ gọi 1 học sinh bất kì để
trả lời. Nếu trả lời đúng sẽ được 1 điểm cộng.
- Học sinh khác có thể bổ sung ý kiến nếu học sinh
trước đó trả lời sai.
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 với số lần chưa biết trước?
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: Câu 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. 5 vòng lặp, S=2
B. 4 vòng lặp, S=4
A. 2 vòng lặp, S=8
C. 3 vòng lặp, S=6
SAI RỒI!
SAI RỒI!
Sai r?i
35
Câu 4: Thuật toán sau khi thực hiện vòng lặp? Khi kết
thúc giải thuật của S bằng bao nhiêu?

- Bước 1: S  10, x  2.
- Bước 2: Nếu S  5 chuyển tới bước 4.
- Bướ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
- 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 ;
Bài 8:
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
- 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 66.
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ẻ: Nguyễn Hữu Học
Dung lượng: | Lượt tài: 3
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)