1. Trang chủ
  2. » Giáo án - Bài giảng

Vong lap While do

15 552 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 3,56 MB

Nội dung

TIẾT 51 : LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC TIN HỌC 8 Nhắc lại câu lệnh lặp với số lần biết trước Nhắc lại câu lệnh lặp với số lần biết trước FOR <biến đếm> : = <giá trị đầu> TO <giá trị cuối> 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 điện cho Trang. Không có ai nhấc máy. Long quyết đị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à. Như vậy Long đã biết trước là mình sẽ lặp lại hoạt động gọi điệ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 <câu lệnh>; 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; var x: real; n: integer; const sai_so=0.003; const sai_so=0.003; Begin Begin x:=1; n:=1; x:=1; n:=1; while x>=sai_so do while x>=sai_so do begin begin n:=n+1; n:=n+1; x:=1/n ; x:=1/n ; end; end; writeln('So n nho nhat de 1/n <‘,sai_so:5:4, 'la ',n); writeln('So n nho nhat de 1/n <‘,sai_so:5:4, 'la ',n); Readln; Readln; End. 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; 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; writeln('So n nho nhat de tong > 1000 la ',n); writeln('So n nho nhat de tong > 1000 la ',n); writeln('Tong dau tien > 1000 la ',S); writeln('Tong dau tien > 1000 la ',S); end. 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; var T,i: integer; begin begin T:=0; T:=0; for i:=1 to 100 do T:=T+1/i; for i:=1 to 100 do T:=T+1/i; writeln(T); writeln(T); end. 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; var T,i: integer; begin begin T:=0; i:=1; T:=0; i:=1; while i<=100 do while i<=100 do begin begin T:=T+1/i; i:=i+1; T:=T+1/i; i:=i+1; end; end; writeln(T); writeln(T); end. 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 Học sinh thảo luận theo nhóm (2 bàn 1 nhóm) (2 bàn 1 nhóm) -Thời gian thảo luận trong 3 phút -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ả 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. vào giấy sau đó lên bảng trình bày. Sữ dụng vòng lặp While…do Sữ dụng vòng lặp While…do để tính tổng các số chẵn để tính tổng các số chẵn từ 1 đến 10? từ 1 đến 10? Sữ dụng vòng lặp While…do Sữ dụng vòng lặp While…do để tính tổng các số chẵn để tính tổng các số chẵn từ 1 đến 10? 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. [...]... 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à: A 4 C 10 B 5 D 6 BAÏN SAI ROÀI! 0:05 02 00 01 03 04 06 07 08 09 10 Nếu S=0,i=1 Sau khi thực hiện câu lệnh While i . lặp While do Sữ dụng vòng lặp While do để tính tổng các số chẵn để tính tổng các số chẵn từ 1 đến 10? từ 1 đến 10? Sữ dụng vòng lặp While do. 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;

Ngày đăng: 31/10/2013, 20:11

Xem thêm

HÌNH ẢNH LIÊN QUAN

vào giấy sau đú lờn bảng trỡnh bày. - Vong lap While do
v ào giấy sau đú lờn bảng trỡnh bày (Trang 10)

TỪ KHÓA LIÊN QUAN

w