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

Bài giảng Tin học lớp 8 bài 8: Lặp với số 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.78 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
Hoạạt đ
t độộng s
ng nào đ


ẽ kết thúc 
ược 
lkhi nào?
ặp lại?


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 
Con quạ nhặt đá bỏ vào bình cho
 về hotràn
ạt đra.
ộng lặp với 
đếnví d
khiụnước
số lần chưa biết trước?
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 ki
u kiệ
ện nh
n: Khi t
Đi
ư thổếng Tn nh
 nào thì  ỏ 
ất lớn hơ
knh
ết thúc ho
ạn  1000 thì k
t động lặp?ết 

thúc hoạt độ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ó thuật 
Em hãy viết thuật tốn 
toán sau:
cho ví dụ trên?
u
Bước 1: S  0; n 1;
u
Bước 2: Nếu S<= 1000, 
 S  S+n; 
   ngược lại, chuyển tới bước 4;
u
Bước 3: n n+1 và quay lại bước 2;
u
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;
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
1

2
3

?

Tổng Tn
T1 = 1
T2 = 1 + 2  
T3 = 1 + 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ị.

Trong đó :    While, do: là các từ khóa.

While a>b do

Begin
a:=a1;
b:=b+2;
End;

           Đ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 ghe
̣
́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ú  P h á p  c â u  l ện h  
l ặp  v ới s ố l ần  c h ưa  b i ết  
Be g in
t r ước ?
b e g in
e nd;

En d .


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

WHILE <đi
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)
v a r  S , n : 
in tge g e r;
Be
in S := 0 ; 
nw:=h 0ile;  
S in n := n + 1 ; 
e nS := S + n   ;
w rit
d ;e ( ‘Ke t  q u a  la : ’,   S ) ;
Re a d l

Enn ;
Tong
d . S= 1035 va 45 la so tu nhien nho nha sao cho


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
24
25
12
13
14
15
16
17
18
19
20

21
22
10
11
7654321098


Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây? 30
23
29
28
26
27
12
13
14
15
16
17
18
19
20
21
22
24
25
10
11
7654321098
X:= 10;

      While X:= 10 do 
             X:= X + 5;
a)

b) X:= 10; 
     While X = 10 do 
                X = X + 5;

Thừa 
dấu :

c) S:= 0; n:=0; 
     While S <= 10 do 
                 n:= n + 1; 
                 S:= S + n ;

Thiếu dấu 


Thiếu Begin

Thiếu End;


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 ra các số từ 1 đến 9

B

In ra các số từ 1 đến 10

C

In ra các số 1

D

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

23
30
29
28
26
27
24
25
12
13
14
15

16
17
18
19
20
21
22
10
11
7654321098


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

C. 3 vịng lặp, S=6

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

D. 5 vịng lặp, S=2

SAI

RỒI!
Sai r
ồi
SAI
RỒI!

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



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.