Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước (Tiết 2) - Nguyễn Thị Phương Uyên

ppt 15 trang Hải Phong 20/07/2023 1990
Bạn đang xem tài liệu "Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước (Tiết 2) - Nguyễn Thị Phương Uyên", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_tin_hoc_lop_8_bai_8_lap_voi_so_lan_chua_biet_truoc.ppt

Nội dung text: Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước (Tiết 2) - Nguyễn Thị Phương Uyên

  1. Giáo viên thực hiện: Nguyễn Thị Phương Uyên
  2. I. KIỂM TRA BÀI CŨ Câu 1: Em hãy trình bày cú pháp của câu lệnh lặp với số lần chưa biết trước? Trả lời: Cú pháp: while 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 2: nêu các bước thực hiện câu lệnh Trả lời: Bước1:Kiểm tra điều kiện: Bước2: Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và 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 )
  3. TIẾT 51 – BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(T2) II. Nội dung 1. Các hoạt động lặp với số lần chưa biết trước 2. Ví dụ về lệnh lặp với số lần chưa biết trước Ví dụ 3: chúng ta biết rằng, nếu n(n>0) càng lớn thì 1/n càng nhỏ,nhưng luôn luôn lớn hơn 0. Với giá trị nào của n thì 1/n < 0.005 hoặc 1/n<0.003?
  4. TIẾT 51 – BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(T2) 2. Ví dụ về lệnh lặp với số lần chưa biết trước ➢Phân tích bài toán: n x=1/n Điều kiện x>0.003 1 X1=1/1 Đúng 2 X2=1/2 Đúng . Xm=1/m ( Đk 1/m<0.003) Sai,kết thúc quá trình lặp m
  5. TIẾT 51 – BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT (T2) Chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước: Uses crt; Var x: Real; n: Integer; Const Sai_So=0.003; Begin Clrscr; 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:6:4, ‘ la ‘,n); Readln; End.
  6. TIẾT 51 – BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(T2) 2. Ví dụ về lệnh lặp với số lần chưa biết trước Ví dụ 5: Viết chương trình tính tổng 111 T =++++1 23100 Bài toán này lặp với số lần biết trước hay chưa biết trước? ➔ Bài toán lặp với số lần biết trước •Tìm input và output của bài toán: Input: 1+1/2+1/3+ +1/100 Output: Tổng T
  7. TIẾT 51 – BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(T2) •Chương trình sử dụng lệnh lặp •Chương trình sử dụng câu lệnh lặp với số lần biết trước với số lần chưa biết trước: Program vidu5_1; Program vidu5_2; Var i: integer; Var i: integer; T: real; T: real; Begin Begin T:=0; T:=0; For i:=1 to 100 do T:=T+1/i; i:=1; Writeln (T); while i<=100 do Readln; begin End. T:=T+1/i; i:=i+1; end; Writeln(T); Readln; end. Kết quả hai chương trình như nhau.
  8. Tiết 51 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(t2) * Lưu ý: - Chúng ta có thể sử dụng câu lệnh while do thay cho câu lệnh for to do. - Tùy trường hợp mà chúng ta sử dụng câu lệnh while do thay cho câu lệnh for to do Vì lệnh lặp while do phù hợp cho bài toán với số lần lặp chưa biết trước còn câu lệnh for to do phù hợp với bài toán có số lần lặp biết trước.
  9. TIẾT 51 – BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(T2) 3. Lặp vô hạn lần – lỗi lập trình cần tránh Var a:Integer; Begin a:=5; While a < 6 do Writeln(‘A’); End. ?Tại sao chương trình này lại rơi vào vòng lặp vô tận? Trả lời: giá trị ban đầu của a được gán bằng 5. điều kiện đặt ra là: nếu a<6 thì thực hiện: in ra màn hình số a ,điều kiện này luôn đúng (5<6) nên câu lệnh được thực hiện lặp đi lặp lại không ngừng
  10. TIẾT 51– BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(T2) Do vậy,khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện được chuyển từ đúng sang sai. Chỉ như thế chương trình mới không “rơi” vào những “vòng lặp vô tận” ?vậy với chương trình trên ta thay đổi điều kiện như thế nào để chương trình không là chương trình với vòng lặp vô tận nữa? Chương trình sau khi thay đổi điều kiện: Var a:integer; Begin a:=5; While a<6 do Begin Writeln(‘A’); A:=a+1; End; End.
  11. Tiết 51 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (T2) •Cách sử lý khi chương trình bị rơi vào vòng lặp vô hạn 1.Để thoát khỏi vòng lặp vô hạn ta dùng tổ hợp phím ctrl+break sau đó gõ phím F9 2.Để ngắt chương trình pascal đang chạy ta thực hiện: nhấn tổ hợp phím Ctrl+Alt+Delete
  12. Tiết 51 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (T2) GHI NHỚ: 1. 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. 2. While do là câu lệnh lặp với số lần chưa biết trước trong pascal.
  13. BÀI TẬP(SGK-71) Bài 5: hãy chỉ ra lỗi trong các câu lệnh sau đây a, X:=10; while X:=10 do X:=X+5; Đáp án: điều kiện thường là phép so sánh không thể là phép gán b, X:=10;while X=10 do X=X+5; Đáp án:câu lệnh không thể là phép so sánh mà phải là phép gán c, S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n; Đáp án: câu lệnh ghép phải được đặt trong cặp từ khoá begin end;
  14. TIẾT 51 – BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC III. Dặn dò - Trả lời các câu hỏi và bài tập còn lại trang 71 SGK. - Chú ý cú pháp và các bài tập về câu lệnh lặp với số lần chưa biết trước để tiết sau thực hành