Ví dụ về lệnh lặp với số lần chưa biết trước: 1... 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.[r]
(1)PHÒNG GIÁO HUYỆN TRIỆU PHONG TRƯỜNG THCS TRIỆU TRUNG
PHÒNG GIÁO HUYỆN TRIỆU PHONG TRƯỜNG THCS TRIỆU TRUNG
CHÀO MỪNG QUÝ THẦY CÔ GIÁOCÙNG TẤT CẢ CÁC EM HỌC SINH
(2)1- Nhắc lại câu lệnh lặp với số lần biết trước: 1- Nhắc lại câu lệnh lặp với số lần biết trước: FOR
FOR < <Biến đếmBiến đếm> : = <> : = <Giá trị đầuGiá trị đầu> TO> TO < <Giá trị cuốiGiá trị cuối> DO> DO
Câu lệnh vòng lặp
Câu lệnh vòng lặp ; ;
Phải thuộc kiểu dữ liệu đếm
( không số thực )
Giá trị đầu < Giá trị cuối Từ khoá
Từ khoá
(3)2- Viết chương trình tính tổng 100 số tự nhiên đầu tiên + + + … + 99 + 100
Program Tinh; Program Tinh;
Var i, s: Integer; Var i, s: Integer;
Begin Begin
s:=0; s:=0;
For i:=1 to 100 s:=s+i; For i:=1 to 100 s:=s+i;
(4)Hãy quan sát:
Bài 1:
S = + + + +100 Bài 2:
S = + + +
? Hãy cho biết bài số có số
vịng lặp bao nhiêu?
? Hãy cho biết bài số có số
vịng lặp bao nhiêu?
… …
Lặp 100 lần Không biết trước
(5)(6)
Một ngày chủ nhật, bạn Long gọi điện cho Trang Khơng
có nhấc máy Long định gọi thêm hai lần Nếu khơng có nhấc máy khơng có nhà Như Long biết trước lặp lại hoạt động gọi điện thêm hai lần.
Một ngày khác, Long định 10 phút gọi điện
lần cho Trang có người nhấc máy Lần Long lặp lại hoạt động gọi điện lần?
Chưa thể biết trước được, lần, hai
nhiều Điều kiện để kết thúc hoạt động lặp là:
Có người nhấc máy.
(7)(8)1 Các hoạt động lặp với số lần chưa biết:
2 Ví dụ lệnh lặp với số lần chưa biết trước:
Program
Program chao_hoi;chao_hoi; Var
Var Tieptuc: char; Ten: string;Tieptuc: char; Ten: string; Begin
Begin Tieptuc:=‘c’;Tieptuc:=‘c’; While
While Tieptuc=‘c’Tieptuc=‘c’ do Begin
Begin
Write
Write(‘ Nhap ten cua ban:’); Readln(Ten);(‘ Nhap ten cua ban:’); Readln(Ten); Writeln
Writeln(‘Chao ban’, Ten);(‘Chao ban’, Ten); Write
Write(‘ Tiep tuc ? c/k’); readln(Tieptuc);(‘ Tiep tuc ? c/k’); readln(Tieptuc); End; Readln;
End; Readln;
End.
End.
Hãy quan sát chương 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 <câu lệnh>;
Trong đó: Điều kiện: thường phép so sánh;
Câu lệnh: câu lệnh đơn giản hay câu lệnh ghép
Câu lệnh lặp thực sau: Bước : Kiểm tra điều kiện.
Điều kiện
Bước :
- Nếu điều kiện Sai, câu
lệnh bị bỏ qua việc
thực lệnh lặp kết thúc
SAI
- Nếu điều kiện đúng, thực câu lệnh quay lại bước
Câu lệnh
ĐÚNG
(9)? Hãy quan sát câu lệnh sau cho biết ý nghĩa thành phần câu lệnh?
2 Ví dụ 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
+ Điều kiện: i<=100 + Câu lệnh: s:=s+i Chú ý:
- Sau nhiều lệnh phải nằm cặp từ khoá begin….end;
(10)Chúng ta biết rằng, n lớn 1/n nhỏ, luôn lớn Vậy với giá trị n 1/n < 0.005 1/n < 0.003?
var
var x: real; n: integer;x: real; n: integer; const
const sai_so=0.003;sai_so=0.003; Begin
Begin
x:=1; n:=1;
x:=1; n:=1;
while
while x>=sai_sox>=sai_so do
begin begin
n:=n+1;n:=n+1;
x:=1/n ;x:=1/n ;
end;end; writeln
writeln('So n nho nhat de 1/n <‘,sai_so:5:4, 'la ',n);('So n nho nhat de 1/n <‘,sai_so:5:4, 'la ',n); Readln;
Readln;
End
End
Chương trình tính số n nhỏ để 1/n nhỏ sai số cho trước
Chương trình tính số n nhỏ để 1/n nhỏ sai số cho trước
(11)Chương trình Pascal sau thể thuật tốn tính số n ví dụ 2:
var S,n: integer;
var S,n: integer;
begin
begin
S:=0; n:=1;
S:=0; n:=1;
while S<=1000 do
while S<=1000 do
begin begin n:=n+1; n:=n+1; S:=S+n; S:=S+n; end; end;
Trở lại Ví dụ 2: Nếu cộng n số tự nhiên (n = 1,
2, 3, ), ta kết T1 =1, T2 =1 + 2, T3 =1 + + 3, tăng dần Cần cộng số tự nhiên để ta nhận tổng Tn nhỏ lớn 1000?
(12)Bài 5: Hãy lỗi câu sau đây:
a) X:=10; While X:= 10 X:=X+5;
b) X:=10; While X=10 X = X+5;
c) S:=0; n:=0; While S<=10
Thừa dấu hai chấm điều kiện
thiếu dấu chấm câu lệnh
Thiếu từ khoá begin trước câu lệnh n:=n+1 từ khố end sau câu lệnh S:=S+n, vịng
lặp trở thành vô tận
Begin n:=n+1; S:=S+n;
end;
(13)Nếu S=10, i=0 Sau thực câu lệnh While S>5 do
begin i:=i+1; S:=S-i end; writeln(S);
Thì giá trị S là:
D A 4
B 5
C 10
A 4
(14)Nếu S=0,i=1 Sau thực câu lệnh
While i<=5 Do
Begini:=i+1; S:=S+i; End;
Writeln('Ket qua la :',S); Thì giá trị S là:
10 09 08 07 06 05 04 03 02 01 00 0: D 15 B 14
A 10 C.0
B 14
(15)H
Hướng dẫn nhàướng dẫn nhà
- Ôn lại câu lệnh lặp với số lần khơng biết trước
- Ơn lại câu lệnh lặp với số lần trước
- Làm tập 1, 2, 3,bài SGK
(16)QUÝ THẦY CÔ GIÁO SỨC KHỎE CÁC EM HỌC SINH CHĂM