Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
1,72 MB
Nội dung
CHUYÊN ĐỀ: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC KIỂM TRA BÀI CŨ Câu 1: Hãy ghi cú pháp câu lệnh lặp For…do ? For := to ; Câu 2: Hãy viết chương tình tính tổng số ? Var i, Tong: integer; Begin Tong:=0; For i: = to Tong:= Tong + i; Write(‘Tong= ’,Tong); Readln; End VD1: Viết chương trình tính tổng số tự nhiên từ đến 100 S = + + + +100 Laëp 99 laà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 VD2: Viết chương trình nhập vào số gặp dừng lại Tính tổng số vừa nhập Chưa biết lặp lần Lặp với số lần chưa biết trước, sử dụng câu lệnh để viết chương trình? Tiết: 49 - 50 BÀI : TiÕt: 49-50 Các hoạt động lặp với số lần chưa biết trước 2.Ví dụ lệnh lặp với số lần chưa biết trước Lặp vơ hạn lần-Lỗi lập trình cần tránh 1.Các hoạt động lặp với số lần chưa biết - Các bạn học sinh nhặt rác công viên - Nam học từ vựng tiếng anh cách viết lại nhiều lần thuộc - Con quạ nhặt đá bỏ vào bình nước tràn Các em cho thêm ví dụ hoạt động lặp với số lần chưa biết Các hoạt động lặp với số lần chưa biết trước Ví Dụ 1:SGK/67 Xảy tình huống: * Tình 1: Long biết trước lặp lại hoạt động gọi điện thêm hai lần *Tình 2: Cứ 10 phút gọi điện lần có người nhấc máy 1 Các hoạt động lặp với số lần chưa biết trước Ví dụ 2: Nếu cộng n số tự nhiên (n=1,2,3,4…), ta kết T1 = T2 = 1+2 T3 = 1+2+3 …………… Cần cộng lần số tự nhiên để nhận Tn nhỏ > 1000? Các hoạt động lặp với số lần chưa biết trước THUẬT TOÁN: Kí hiệu S tổng cần tìm, ta có thuật toán sau: Bước 1: S 0; n 0; Bước 2: Nếu S= Sai_So Begin n:=n+1; x:=1/n; End; Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n); Readln; End 2.Ví dụ lệnh lặp với số lần chưa biết trước Ví dụ 4: Viết chương tình tính tổng n số ví dụ Var S,n:Integer; Begin S:=0; n:=1; While S 1000 la ‘,n); Writeln(‘Tong dau tien lon hon n la ‘,S); Readln; End 2.Ví dụ lệnh lặp với số lần chưa biết trước Ví dụ 5: Viết chương tình tính tổng T=1+1/2+1/3+…+1/n T:=0; For i:=1 to 100 T:=T+1/i; Writeln(T); For…do T:=0; i:=1; While i