Bài 8. Lặp với số lần chưa biết trước

Chia sẻ bởi Đinh Tùng | Ngày 24/10/2018 | 46

Chia sẻ tài liệu: Bài 8. Lặp với số lần chưa biết trước thuộc Tin học 8

Nội dung tài liệu:

KIỂM TRA BÀI CŨ
Câu hỏi: Nêu cú pháp của câu lệnh lặp với số lần biết trước trong Pascal: for..to..do? Vòng lặp for..to..do hoạt động như thế nào?
Trả lời
Vòng lặp với số lần biết trước trong pascal có cú pháp
for := to do
Trong đó:
For, to, do: là các từ khóa
: là biến có kiểu dữ liệu nguyên
, : là các số nguyên
: có thể là lệnh đơn hoặc lệnh ghép.
Hoạt động
Khi thực hiện, ban đầu sẽ nhận , sau mỗi vòng lặp, biến đếm được tự động tăng thêm một đơn vị và cho đến khi bằng
Số lần lặp được tính: -+1
Tiết 41, Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Ví dụ 1: 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.
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Long chua bi?t dđu?c s? l?p l?i ho?t dđ?ng g?i dđi?n m?y l?n. Có thể 1, 2, hoặc nhiều hơn nữa và hoạt động chỉ kết thúc khi có� người nhấc máy.
Trong trường hợp thứ 2, Long có biết chính xác số lần mình phải thực hiện hay không?
Hoạt động gọi của Long kết thúc khi nào ?
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 ?
- Trong trường hợp này, việc thực hiện phép cộng với số tiếp theo hay dừng, trong từng bước phải kiểm tra tổng đã lớn hơn 1000 hay chưa.
1. 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 là tổng cần tìm.
Bước 1: S ? 0, n ? 0.
Bước 2: Nếu S ? 1000 thì n ? n+1; ngược lại, chuyển tới bước 4.
Bước 3: S ?S+n và quay lại bước 2.
Bước 4: In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S >1000.
Kết thúc thuật toán.
Thuật toán: Kí hiệu S là tổng cần tìm.
Bước 1: S ? 0, n ? 0.
Bước 2: Nếu S<6 thì n? n+1; ngược lại, chuyển tới bước 4.
Bước 3: S?S+n và quay lại bước 2.
Bước 4: In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S>6.
Kết thúc thuật toán.
Chúng ta mô phỏng quá trình thực hiện thuật toán trên việc tìm n để S nhỏ nhất lớn hơn 6 như sau.
Mô phỏng việc thực hiện thuật toán
- Việc lặp lại một nhóm hoạt động với số� lần chưa xác định trước phụ thuộc vào một điều kiện cụ thể có được thoả mãn hay không được mô tả như hình 39.SGK.
- Để viết chương trình chỉ dẫn cho máy tính thực hiện hoạt động lặp như trên, ta sử dụng cấu trúc lặp với số lần chưa biết trước.
- Mọi ngôn ngữ lập trình đều có câu lệnh lặp với số lần chưa biết trước để thể hiện cấu trúc lặp trên.
1. CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trong Pascal, cú pháp 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 ;
Trong đó:
<điều kiện> thường là một phép so sánh;
có thể là câu lệnh đơn hoặc 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, 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 và quay lại bước 1.
2. VÍ DỤ VỀ LỆNH LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Ví dụ 3: 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? 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
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(`n nho nhat de 1/n < `, sai_so:6:4, `la `,n);
Readln
End.
2. VÍ DỤ VỀ LỆNH LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Nếu chạy chương trình này, ta sẽ nhận KQ n=334. Thay sai_so lần lượt các giá trị 0.002 và 0.001 ta sẽ nhận các giá trị tương ứng của n là n=500 và n=1000
Dặn dò
Các em về đọc trước ví dụ 4, ví dụ 5, mục 3. Lặp vô hạn - Lỗi lập trình cần tránh và làm các bài tập 1, 2, 3 SGK trang 71
Củng cố
Qua tiết học này các em cần nhớ:
Ngoài cấu trúc lặp với số lần 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.
While.do là câu lệnh lặp với số lần chưa biết trước trong ngôn ngữ lập trình Pascal
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Đinh Tùng
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)