Tìm kiếm theo tiêu đề

Tin tức cộng đồng

[MỜI HỢP TÁC] Các kỳ thi Olympic Quốc tế 2026 (IMO - IEO - ISO)

Kính gửi Quý Lãnh đạo, Ban Giám hiệu và Quý Thầy/Cô, FermatTech (Đối tác Google tại VN) phối hợp cùng SCO Ấn Độ trân trọng kính mời tham gia 3 kỳ thi uy tín dành cho HS từ lớp 1 - 12: - IMO: Olympic Toán Quốc tế. - IEO: Olympic Tiếng Anh Quốc tế. - ISO: Olympic Khoa học...
Xem tiếp

Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 0919 124 899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

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

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Tham khảo cùng nội dung: Bài giảng, Giáo án, E-learning, Bài mẫu, Sách giáo khoa, ...
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Dương Quang Tùng (trang riêng)
Ngày gửi: 21h:48' 21-02-2009
Dung lượng: 4.1 MB
Số lượt tải: 201
Số lượt thích: 0 người

PHÒNG GIÁO DỤC HUYỆN CẨM MỸ
TRƯỜNG THCS TRẦN PHÚ
GV: Dương Quang Tùng
TIẾT 51 :
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
TIN HỌC 8
Viết chương trình tính tổng 100 số tự nhiên
đầu tiên 1+2+3+…+99+100
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.
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
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.
Sơ đồ khối
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.
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. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bướ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. 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
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?
var T,i: integer;
begin
T:=0;
for i:=1 to 100 do T:=T+1/i;
writeln(T);
end.
Hãy sử dụng lệnh lặp với số lần lặp biết trước for…do để viết chương trình tính tổng
Viết chương trình tính tổng
Nếu sử dụng lệnh lặp while…do, đoạn chương trình dưới đây cũng cho cùng một kết quả:
Viết chương trình tính tổng
var T,i: integer;
begin
T:=0; i:=1;
while i<=100 do
begin
T:=T+1/i; i:=i+1;
end;
writeln(T);
end.
Nhận xét : Qua ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do.
Học sinh thảo luận theo nhóm
(2 bàn 1 nhóm)
-Thời gian thảo luận trong 3 phút
Các nhóm thảo luận và viết kết quả vào giấy sau đó lên bảng trình bày.
Sữ dụng vòng lặp While…do
để tính tổng các số chẵn
từ 1 đến 10?
Var S, i:Integer;
Begin
S:=0; I:=1;
While i<=10 do
If (I mod 2)=0 then
begin
S:=S+I; I:=I+1;
End;
writeln(‘ Tổng các so chan = ’, S
End.
GHI NHỚ
- Ngoài cấu trúc lặp với số lần lặp biết trước, các ngôn ngữ
lập trình còn có các câu lệnh lặp với số lần chưa biết trước.
- While…do là câu lệnh lặp với số lần chưa biết trước trong
Pascal.
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!
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!
Hướ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, 3a,bài 5 SGK
QUÝ THẦY CÔ GIÁO SỨC KHỎE. CÁC EM HỌC SINH CHĂM NGOAN, HỌC GIỎI
 
Gửi ý kiến