Tải bản đầy đủ (.pptx) (19 trang)

Bài giảng tin học Bài 8 Lặp với lần chưa biết trước

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 19 trang )

Bài 8:

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
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

2


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
 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à.
 Tơi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.

Hoạt
Hoạtđộng
độngsẽ
nào
kếtđược
thúc lặp
khi lại?


nào?


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.

Các em hãy cho thêm những ví dụ về hoạt động
lặp- với
sốquạ
lầnnhặt
chưađábiết
trước?
Con
bỏ vào
bình cho
đến khi nước tràn ra.
4


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ả
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 Tn
nhỏ nhất lớn hơn 1000 ?

Điều
Khinào
tổng
n nhỏ
Điều
kiệnkiện:
như thế
thì T
kết
thúc nhất
hoạt
lớn hơn 1000
kết thúc hoạt
độngthì
lặp?
động lặp


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ó
Emtoán

hãy viết
thuật tốn
thuật
sau:
ví n
dụ 1;
trên?
Bước 1: cho
S  0;
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 > 6


1. Các hoạt động lặp với số lần chưa biết trước:
Phân tích bài tốn:
n

Tổng Tn

1

T1 = 1
T2 = 1 + 2
T3 = 1 + 2 + 3



2
3

?

Tn = 1 + 2 + 3 + … +?
(Sao cho Tn nhỏ nhất
lớn hơn 1000)

Điều kiện Tn ≤ 1000
Đúng
Đúng
Đúng

Sai, kết thúc việc tính
tổng


S<=1000

Sai

Đúng
S ← S + n;
n ← n +1;

• 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ì?

8
Phép cộng chỉ dừng khi nào?


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ị
While a<=b do
a:=a+1;

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ị.
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
Hãy nêu Cú Pháp câu lệnh lặp với số lần chưa
biết trước?
Begin

begin
end;

End.


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
Cú pháp:
WHILE <điều kiện> DO <câu lệnh>;
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;

11



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
VD: Dùng câu lệnh lặp While … Do để viết chương trình thể
hiện thuật tố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 tập
Câu 1

Câu 2

Câu 3

Câu 4


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.


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?
A

Tính tổng các số tự nhiên từ 1 đến 20.

B

Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số.

C

Mỗi ngày học bài 2 lần.

D

Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng.

23
30

29
28
26
27
25
22
24
12
13
14
15
16
17
18
19
20
21
10
11
6
7
8
5
2
3
9
4
0
1



Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
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 ;
Thiếu Begin

Thừa dấu :

Thiếu dấu :

Thiếu End;

23
30
29
28
26
27
25
22
24
20

21
15
16
17
18
12
13
19
14
10
11
6
7
8
5
2
3
9
4
0
1


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;


A

In
Inra
racác
cácsố
sốtừ
từ11đến
đến99

B

In
Inra
racác
cácsố
sốtừ
từ11đến
đến10
10

C

In
Inra
racác
cácsố
số11


D

Khơng
Khơngphương
phươngán
ánnào
nàođúng
đúng

23
30
29
28
26
27
25
22
24
20
21
15
16
17
18
12
13
19
14
10
11

6
7
8
5
2
3
9
4
0
1


Câu 4: Thuật tố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 tốn.

A. 2 vịng lặp, S=8

B. 4vòng
vịng lặp,
S=4 S=5
B. 10
lặp,

SAISai
RỒI!
rồi


C. 3 vịng lặp, S=6
D. 5 vòng lặp, S=2

23
30
29
28
26
27
25
22
24
20
21
15
16
17
18
12
13
19
14
10
11
6
7
8
5
2

3
9
4
0
1


Bài 8:

LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC

Ghi nhớ
- 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.
- 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 <câu lệnh>;


Bài 8:

LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC

Dặn dị
- Về nhà học bài. Làm bài
tập 2 Sgk trang 66.
- 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.
- Xem trước VD3, VD4, VD5, Lặp
vô hạn lần–Lỗi lập trình cần
tránh.



×