Bài giảng Đại số 8 - Tiết 50, bài 8: Lặp với số lần chưa biết trướ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 <đ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 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 )

 

ppt14 trang | Chia sẻ: tuandn | Lượt xem: 1498 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng Đại số 8 - Tiết 50, bài 8: Lặp với số lần chưa biết trước, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Giáo viên: Đinh thị ngọc ánh 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 ) Tiết 50 – 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.003 Tiết 50 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT(t2) 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. Chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước: Tiết 50 – 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 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 Tiết 50 – 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 với số lần biết trước Chương trình sử dụng câu lệnh lặp với số lần chưa biết trước: Program vidu5_1; Var i: integer; T: real; Begin T:=0; For i:=1 to 100 do T:=T+1/i; Writeln (T); Readln; End. Program vidu5_2; Var i: integer; T: real; Begin T:=0; i:=1; while i<=100 do begin T:=T+1/i; i:=i+1; end; Writeln(T); Readln; end. Kết quả hai chương trình như nhau. * 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. Tiết 50 – 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. Tiết 50 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(t2) ?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 Tiết 50 – 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. Để 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 Cách sử lý khi chương trình bị rơi vào vòng lặp vô hạn Tiết 50 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(t2) 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. 2. While…do... là câu lệnh lặp với số lần chưa biết trước trong pascal. Tiết 50 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(t2) 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; 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 Tiết 50 – Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC

File đính kèm:

  • pptbai8 lap voi so lan chua biet truoctiet 2.ppt