Giáo án Tin học 8 - Tiết 46, Bài 8: Lặp với số lần chưa biết trước
Bạn đang xem tài liệu "Giáo án Tin học 8 - Tiết 46, Bài 8: Lặp với số lần chưa biết trước", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
Tóm tắt nội dung tài liệu: Giáo án Tin học 8 - Tiết 46, Bài 8: Lặp với số lần chưa biết trước

BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I. TÓM LƯỢT LÝ THUYẾT 1. Lệnh lặp với số lần chưa biết trước. * Ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa xác định để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp mà chưa xác định trước số lần lặp. * Cú pháp câu lệnh lặp với số lần chưa biết trước: WHILE DO ; Trong đó: + WHILE, DO: là từ khóa. + Điều kiện: thường là phép so sánh. + Câu lệnh: có thể là câu lệnh đơn hay câu lệnh ghép. * Câu lệnh 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à kết thúc vòng lặp. Nếu điều kiện đúng, câu lệnh được thực hiện và tiếp tục quay lại bước 1. * Ta có sơ đồ khối thể hiện hai bước thực hiện của câu lệnh While ... do như sau: 2. Lặp vô hạn lần – Lỗi lặp trình cần tránh. (Các em tự học, tự tìm hiểu vì được tinh giản) II. CÁC VÍ DỤ 1) Ví dụ 1: Với n là số tự nhiên bằng bao nhiêu để ta nhận được tổng của n số tự nhiên đầu tiên T nhỏ nhất lớn hơn 1000? * Hướng dẫn: Với bài toán này ta không thể biết trước được ta sẽ cộng bao nhiêu số tự nhiên để tổng T nhỏ nhất lớn hơn 1000 nên không biết trước được n bằng bao nhiêu. Vậy để giải bài toán này ta phải kiểm tra điều kiện giá trị tổng T của các số tự nhiên, nếu tổng T này nhỏ hơn 1000 thì ta mới tăng số tự nhiên n này lên 1 đơn vị và tiếp tục thực hiện phép tính cộng số tự nhiên n vào tổng T. Quá trình thực hiện cho đến khi giá trị tổng T đầu tiên > 1000 thì dừng lại. Lúc này ta mới biết được n bằng bao nhiêu. Vì thế chúng ta không thể xác định được số lần thực hiện phép tính tổng các số tự nhiên cho đến khi thực hiện xong bài toán. readln end. * Chú ý: Với câu lệnh: while (Thuong >= 0.005) or (Thuong >= 0.003) do begin n:=n+1; Thuong:=1/n; end; Chương trình sẽ thực hiện các bước như trên thuật toán: Đầu tiên kiểm tra đk: Thuong >= 0.005 hoặc Thuong >= 0.003 Nếu đk thỏa mãn thì thực hiện câu lệnh ghép (2 lệnh trong begin và end;) sau: begin n:=n+1; { tăng n lên 1 đơn vị} Thuong:=1/n; { Tính 1/n và lưu vào biến Thuong} end; Ngược lại kết thúc vòng lặp. Như vậy câu lệnh n:=n+1; và Thuong:=1/n; được thực hiện trong khi đk Thuong >= 0.005 hoặc Thuong >= 0.003 được thỏa mãn. Sau khi kết thúc vòng lặp (Thuong < 0.005 hoặc Thuong < 0.003) thì ta mới xác định được giá trị của n (n được tăng lên bao nhiêu). 3) Ví dụ 3: Sử dụng câu lệnh While do để viết chương trình tìm số n trong ví dụ 1 var T, n: integer; { khai báo biến T và n } begin T:=0; n:=1; {gán giá trị ban đầu cho biến} while T<1000 do begin n:=n+1; T:= T+n; end; writeln('So n nho nhat de tong > 1000 la ', n); writeln('Tong dau tien > 1000 la ', T); Readln end. * Nếu chạy chương trình này ta sẽ nhận được n = 45 và tổng T đầu tiên lớn hơn 1000 là 1035. * Chú ý: Hãy mô tả cách thực hiện câu lệnh: while T<1000 do begin
File đính kèm:
giao_an_tin_hoc_lop_8_tiet_46_bai_8_lap_voi_so_lan_chua_biet.docx