Tải bản đầy đủ (.ppt) (26 trang)

TỰ HỌC TIN HỌC 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 (355.14 KB, 26 trang )

(1)

KIẾN THỨC BÀI CŨ



Trong đó:


- For, to, do là các từ khóa.


- Biến đếm có kiểu dữ liệu nguyên.


- Giá trị đầu nhỏ hơn giá trị cuối và là các giá
trị nguyên.


For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do



(2)

QUAN SÁT



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


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.


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



(3)

BÀI 8




(4)

1. Lệnh lặp với số lần chưa biết trước


2. Lặp vô hạn lần – Lỗi lập trình cần tránh
NỘI DUNG BÀI HỌC



(5)

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


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


Các hoạt động lặp với số lần chưa biết trước


Các em hãy cho thêm ví dụ
về hoạt động lặp với số lần



(6)

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


Bạn Long gọi điện hẹn Trang tới
thăm nhà cô giáo cũ vào chủ nhật tới. Long quyết
định cứ 10 phút gọi điện 1 lần cho Trang cho đến


khi có người thưa máy.


Long sẽ lặp lại hoạt động
gọi điện mấy lần?


Các hoạt động lặp với số lần chưa biết trước


Ví dụ (SGK)


Chưa thể biết trước được số lần
Long gọi điện. Điều kiện để



(7)

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


Nếu cộng lần lượt n số tự nhiên (n = 1, 2, 3, …).
Ta sẽ đượ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 để ta nhận được tổng Tn
nhỏ nhất lớn hơn 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.



(8)

1. Các hoạt động 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 Tổng Tn Điều kiện Tn ≤ 1000


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.



(9)

BÀI 8. 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 tốn như sau:



Bước 1: S  0, n  0.


Bước 2: Nếu S≤ 1000, thì chuyển tới Bước 3; Ngược lại chuyển
tới bước 4.


Bước 3: n n+1; S S + n 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.


S1000? Sai


n n+1;


S S+n;


Đúng


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?
Sơ đồ



(10)

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



(11)

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


While <điều kiện> do <câu lệnh>;
Trong đó:


While, do là các từ khóa.


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



(12)

BTVD 1: While a <= b do a:= a+1;
Trong đó:  While, do các từ khóa.


Điều kiện là a<=b


Câu lệnh là a:=a+1 (câu lệnh đơn).


1. Lệnh lặp với số lần chưa biết trước



(13)

While a > b do


begin


write (‘a>b’);
a:= a - 1;


end;



Trong đó:  While, do các từ khóa.
Điều kiện là a > b


Câu lệnh là write (‘a>b’); a:=a-1
(câu lệnh ghép).


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



(14)

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


B1: Kiểm tra điều kiện;


B2: 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.
Nếu điều kiện đúng,


thực hiện câu lệnh và quay


lại bước 1. Lưu đồ


Hoạt động: Sai Điều kiện


Câu lệnh



Đúng



(15)

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


1. Lệnh lặp với số lần chưa biết trước


BTVD 3: S:=0; while S<=5 do S:= S + 2;


S Điều kiện


S<=5 Câu lệnhS:=S + 2


Vậy S = 6


0
2
4
6


0 <=5 (Đ)
2 <=5 (Đ)
4 <=5 (Đ)
6 <=5 (S)



(16)

CỦNG CỐ



Câu 1: Trong các hoạt động dưới đây, hoạt
động nào lặp 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. Mỗi ngày học bài 2 lần.


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



(17)

CỦNG CỐ



Câu 2: Đâu là cú pháp của câu lệnh lặp với số
lần chưa biết trước?



(18)

CỦNG CỐ



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. while a<=b; do write (‘b khong nho hon a’);
Thừa dấu :


Thiếu dấu :



(19)

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


Ví dụ 2 (SGK): Chúng ta biết rằng, nếu n (n>0)
càng lớn thì 1/n càng nhỏ, nhưng ln ln lớn
hơn 0.




(20)

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


Phân tích bài tốn:


x=1/n


1 X1=1/1 Đúng


2 X2=1/2 Đúng


….. ……… ……….


m Xm=1/m


( Đk 1/m<0.003)


Sai, kết thúc quá
trình lặp



(21)

Uses crt;


Var x: Real;
n: Integer;


Const Sai_So=0.003;
Begin



Clrscr;


x:=1; n:=1;


While x >= Sai_So do


Begin n:=n+1; x:=1/n; End;


Writeln(‘So n nho nhat de 1/n < ‘, Sai_So:6:4, ‘ la ‘,n);
Readln;


End.


Uses crt;


Var x: Real;
n: Integer;


Const Sai_So=0.003;
Begin


Clrscr;


x:=1; n:=1;


While x >= Sai_So do


Begin n:=n+1; x:=1/n; End;


Writeln(‘So n nho nhat de 1/n < ‘, Sai_So:6:4, ‘ la ‘,n);


Readln;


End.


Chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho
trước:


1. Lệnh lặp với số lần chưa biết trước



(22)

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



(23)

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


VD 4: Để viết chương trình tính tổng:


1 1 1


1 ...


2 3 100



(24)

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


sử dụng for…do sử dụng while…do



T:=0;


for i:=1 to 100 do


T:=T+1/i;
writeln(T);


T:=0;
i:=1;


while i<=100 do


begin T:=T+1/i; i:=i+1 end;



(25)

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



(26)

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


Biến đếm là i;





×