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

Chia sẻ bởi Bùi Thanh Trà | Ngày 24/10/2018 | 77

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:

Câu 1: Viết thuật toán tính tổng 100 số tự nhiên đầu tiên:
S=1+2+3+…+100

Câu 2: Soạn chương trình để giải quyết bài toán trên

KIỂM TRA BÀI CŨ
CÂU 1:
Bước 1: SUM  0; i  0.
Bước 2: i  i + 1.
Bước 3: Nếu i ≤ 100, thì SUM  SUM + i và quay lại bước 2.
Bước 4. Thông báo kết quả và kết thúc thuật toán.
CÂU 2:
program Tinh_tong;
var i: Integer;
S: longint;
begin
S:=0;
for i := 1 to N do S:=S+i;
writeln(`Tong S=‘, S);
end.
KẾT QUẢ
BÀI 8
1. Các hoạt động với số lần lặp chưa biết trước
Ví dụ 1. (SGK/67)
Long gọi điện cho Trang. Không có ai nhấc máy. Long 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.
Lần này Long sẽ lặp lại hoạt động gọi điện mấy lần?
Chưa thể biết trước được, có thể một lần, có thể hai hoặc nhiều hơn nữa.
Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
Ví dụ 2 : Tính tổng S = 1+2+3+…+n. Tìm n và S sao cho tổng nhỏ nhất lớn hơn 1000?
1. Các hoạt động với số lần lặp chưa biết trước
Gọi S là tổng cần tìm:
S= 1 + 2 + 3 + 4 +….+ n


Ta có:
T1 =1
T2 = T1 +2 = 3
T3 =T2 +3 = 3+3 =6
………….



B1. S  0, n  0.
B2. Nếu S ≤ 1000, n  n + 1; ngược lại chuyển tới bước 4.
B3. S  S + n và quay lại bước 2.
B4. 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
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
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à 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 câu lệnh 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
Trong ngôn ngữ Pascal, cú pháp câu lệnh lặp được thể hiện



Trong đó:
While <điều kiện> do ;
đ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 (như lệnh gán, lệnh tính toán, lệnh điều kiện, lệnh lặp, lệnh writeln, lệnh readln…)
hay câu lệnh ghép begin…end
Ý NGHĨA
ĐiỀU KiỆN
LỆNH
Đúng
Sai
SƠ ĐỒ KHỐI
Đầu tiên điều kiện được kiểm tra
Nếu điều kiện thỏa mãn (đúng) thì:
- Thực hiện câu lệnh lần 1
- Trở lại bước 1
Nều điều kiện vẫn thỏa (đúng) thì lệnh được thực hiện lần nữa. Quá trình được tiếp tục đến khi:
Điều kiện không thỏa (sai) thì câu lệnh sẽ bị bỏ qua và vòng lặp sẽ kết thúc

Quan sát câu lệnh sau và cho biết ý nghĩa của các thành phần trong câu lệnh?
While i<=100 do s:=s+i:

Các từ khóa: While, do
Điều kiện: i<= 100
Câu lệnh: s:=s+i
Ví du 3: Với giá trị nào của n (n>0) thi x=1/n<0,005 hoặc <0.003
Chương trình dưới đây tính số n nhỏ nhất để 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:5:4, `la `,n);
readln
end.
BÀI TẬP CỦNG CỐ
Trong các câu lệnh lặp Pascal sau đây, câu lệnh nào sai và sai ở đâu?

Kết quả
A. While i:=1 do t:=10;  thừa dấu :
B. While a<=b; do write (‘b khong nho hon a’)
 Thừa dấu ;
C. i:=1;
while i<=10 do sum:=sum+i; i:=i+1; do điều kiện luôn đúng nên vòng lặp vô hạn
D. i:=1; x:=5;
while i
DẶN DÒ
Làm các bài 1, 2, 3 SGK/71
Xem trước ví dụ 4 và ví dụ 5 SGK/69, 70
Kết thúc!
* 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ẻ: Bùi Thanh Trà
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)