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

Chia sẻ bởi Hoàng Thị Thảo Nguyên | Ngày 24/10/2018 | 45

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:


PHÒNG GIÁO HUYỆN TRIỆU PHONG
TRƯỜNG THCS TRIỆU TRUNG
GV:HOÀNG THỊ LƯƠNG NGUYÊN
CHÀO MỪNG QUÝ THẦY CÔ GIÁOCÙNG TẤT CẢ CÁC EM HỌC SINH
KIỂM TRA BÀI CŨ
1- Nhắc lại câu lệnh lặp với số lần biết trước:
FOR : = TO DO Câu lệnh trong vòng lặp ;
Phải thuộc kiểu
dữ liệu đếm được
( không là số thực )
Giá trị đầu < Giá trị cuối
Từ khoá
Câu lệnh trong vòng lặp có thể là lệnh đơn hay lệnh ghép
KIỂM TRA BÀI CŨ
2- Viết chương trình tính tổng 100 số tự nhiên
đầu tiên 1 + 2 + 3 + … + 99 + 100
Program Tinh;
Var i, s: Integer;
Begin
s:=0;
For i:=1 to 100 do s:=s+i;
Writeln(‘ Tong cac so tu 1 den 100 = ‘, s);
Readln;
End.
Hãy quan sát:
Bài 1:
S = 1 + 2 + 3 + . . .+100
Bài 2:
S = 1 + 2 + 3 + . . .
? Hóy cho bi?t b�i s? 1 cú s? vũng l?p l� bao nhiờu?
? Hãy cho biết bài số 2 có số vòng lặp là bao nhiêu?
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . … … . . .
L?p 100 l?n
Khụng bi?t tru?c
Lặp với số lần biết trước
Lặp với số lần chưa biết trước
Ti?t 55:
b�i 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Ví dụ 1(SGK)
M?t ng�y ch? nh?t, b?n Long g?i di?n cho Trang. Khụng cú ai nh?c mỏy. Long quy?t d?nh g?i thờm hai l?n n?a. N?u v?n khụng cú ai nh?c mỏy thỡ ch?c l� khụng cú ai ? nh�. Nhu v?y Long dó bi?t tru?c l� mỡnh s? l?p l?i ho?t d?ng g?i di?n thờm hai l?n.
Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy. Lần này Long sẽ lặp lại hoạt động gọi điện mấy lần?
Chưa thể biết trước được, có thể một lần, có thể hai hoặc nhiều hơn nữa. Điều kiện để kết thúc hoạt động lặp đó là: Có người nhấc máy.
1. Các hoạt động lặp với số lần chưa biết:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Nếu cộng lần lượt n số tự nhiên đầu tiên (n= 1, 2, 3, ....).
Ta sẽ được các kết quả:
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?
Trong trường hợp này, để quyết định thự�c hiện phép cộng với số tiếp theo hay dừng, trong từng bước phải kiểm tra tổng đã lớn hơn 1000 hay chưa.
Ví dụ 2
Kí hiệu S là tổng cần tìm ta có thuật toán như sau:
Bước 1:
S ? 0, n ? 0
Bước 2:
Nếu S ? 1000, n ? n+1; Ngược lại, chuyển tới bước 4
Bước 3:
S ? S+n; và quay lại bước 2
Bước 4:
In kết quả
Kết thúc thuật toán
Bắt đầu thuật toán
1. Các hoạt động lặp với số lần chưa biết:
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:
2. Ví dụ về lệnh lặp với số lần chưa biết trước:
Program chao_hoi;
Var Tieptuc: char; Ten: string;
Begin Tieptuc:=‘c’;
While Tieptuc=‘c’ do
Begin
Write(‘ Nhap ten cua ban:’); Readln(Ten);
Writeln(‘Chao ban’, Ten);
Write(‘ Tiep tuc ? c/k’); readln(Tieptuc);
End; Readln;
End.
Hóy quan sỏt chuong trỡnh sau
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 ;
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 giản hay câu lệnh ghép
Câu lệnh lặp này được thực hiện như sau:
Bước 1 : Kiểm tra điều kiện.
Điều kiện
Bước 2 :
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.
SAI
- Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1.
Cõu l?nh
ĐÚNG
SƠ ĐỒ HOẠT ĐỘNG CỦA VÒNG LẶP
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
? Hóy quan sỏt cõu l?nh sau v� cho bi?t ý nghia c?a cỏc th�nh ph?n trong cõu l?nh?
2. Ví dụ về lệnh 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:
While i<=100 do s:=s+i
+ Cỏc t? khoỏ:
While, do
+ Di?u ki?n:
i<=100
+ Cõu l?nh:
s:=s+i
Chỳ ý:
Sau do n?u nhi?u hon 1 l?nh thỡ ph?i n?m trong c?p t? khoỏ begin..end;
N?u vi?t chuong trỡnh thỡ di?u ki?n trong cõu l?nh While ph?i dỳng v� n?u dó cho di?u ki?n tru?c thỡ di?u ki?n trong cõu l?nh ph?i ngu?c v?i di?u ki?n dó cho
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Ví dụ 3
Chúng ta biết rằng, nếu n càng lớn thì 1/n càng nhỏ, nhưng luôn luôn lớn hơn 0. Vậy với giá trị nào của n thì 1/n < 0.005 hoặc 1/n < 0.003?
var x: real; n: integer;
const sai_so=0.003;
Begin
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:5:4, `la `,n);
Readln;
End.
Chương trình dưới đây tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước
Chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước
2. Ví dụ về lệnh 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:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Ví dụ 4
Chương trình Pascal sau đây thể hiện thuật toán tính số n trong ví dụ 2:
var S,n: integer;
begin
S:=0; n:=1;
while S<=1000 do
begin
n:=n+1;
S:=S+n;
end;
writeln(`So n nho nhat de tong > 1000 la `,n);
writeln(`Tong dau tien > 1000 la `,S);
end.
Trở lại Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiê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 đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
2. Ví dụ về lệnh 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:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
B�i 5: Hóy ch? ra cỏc l?i trong cỏc cõu sau dõ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
Thừa dấu hai chấm trong điều kiện
thiếu dấu 2 chấm trong câu lệnh
Thiếu từ khoá begin trước câu lệnh n:=n+1 và từ khoá end sau câu lệnh S:=S+n, do đó vòng lặp trở thành vô tận
Begin n:=n+1; S:=S+n; end;
n:=n+1; S:=S+n
Nếu S=10, i=0 Sau khi thực hiện câu lệnh
While S>5 do
begin i:=i+1; S:=S-i end;
writeln(S);
Thì giá trị của S là:
10
09
08
07
06
05
04
03
02
01
00
0
:
D. 6
A. 4
B. 5
C. 10
A. 4
B?n sai r?i!
B?n sai r?i!
B?n sai r?i!
Câu hỏi củng cố
Nếu S=0,i=1 Sau khi thực hiện câu lệnh
While i<=5 Do
Begin i:=i+1; S:=S+i; End;
Writeln(`Ket qua la :`,S);
Thì giá trị của S là:
10
09
08
07
06
05
04
03
02
01
00
0
:
D. 15
B. 14
A. 10
C.0
B. 14
B?n sai r?i!
B?n sai r?i!
B?n sai r?i!
Hu?ng d?n v? nh�
- Ôn lại về câu lệnh lặp với số lần không biết trước
- Làm bài tập 1, 2, 3,bài 4 SGK
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
QUÝ THẦY CÔ GIÁO SỨC KHỎE. CÁC EM HỌC SINH CHĂM NGOAN, HỌC GIỎI
* 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 Thị Thảo Nguyê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)