Tải bản đầy đủ (.ppt) (11 trang)

Bai 8 Lap voi so lan chua biet truoc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (382.52 KB, 11 trang )

BÀI 8:
LỆNH LẶP VỚI SỐ LẦN
CHƯA BIẾT TRƯỚC

1


1. Các hoạt động lặp với số lần cha biết trớc

HÃy kể tên những
hoạt động đợc thực
hiện lặp đi lặp lại với
số lần lặp không thể
xác định trớc?

Học cho đến khi thuộc bài
Nhặt từng cọng rau cho đến khi hết rau
Bài toán: Viết chơng trình nhập vào
một dÃy số cho đến khi gặp 0 thì dừng
lại, tính tổng c¸c sè võa nhËp


2. Ví dụ về lệnh lặp với số lần cha xác định

Bài toán 1:

Tính tổng

S 1 2 3 4 ... N
Bài toán 2: Tính tổng


S 1  2  3  4  ...  N
Cho ®Õn khi S>1000. Cho biÕt N


Cùng tìm thuật toán

Xuất phát

Lần 1

Lần 2

S 0

1

2

Lần N

+

N

Sau
lầnlần
thực
hiện
giá giá
trị tổng

S tăng
thêmthêm
i đơnbao
vị với
i= 1;2;3;.N
? mỗiMỗi
thực
hiện
trị tổng
S tăng
nhiêu?


tìm sự khác biệt

Bài toán 1:

S 1 2 3 ... N

Bài toán 2:

S 1 2  3  ...  N
Cho ®Õn khi S>1000

 ViƯc tăng giá trị cho
tổng S đợc lặp đi
lặp lại N lần.

Số lần lặp xác định


Việc tăng giá trị cho
tổng S đợc lặp đi lặp
lại cho đến khi
S>1000
Số lần lặp cha xác định.


3. Lệnh lặp với số lần cha xác định
Câu lệnh lặp với số lần lặp cha xác định trong Pascal:
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

Sai

Điều kiện

Ví dụ: While S<100 do S:= S+1;
Đúng

Câu lệnh: là câu lệnh đơn hay
câu lệnh ghép

Câu lệnh


VÝ dơ 1 : TÝnh tỉng


cho ®Õn khi S>1000. Cho biÕt N

S 1  2  3  4  ... N
Chơng trình

Thuật toán
B1: Khởi tạo S=0; N:=0;
B2: Nếu S<= 1000 thì thực hiện
tăng N thêm 1 đơn vị,

S:=0; N:=0;
WHILE S<=1000 DO
Begin

ngợc lại chuyển tới B4

N:=N+1;

B3: Cộng N vào S => sang B2

S:=S+N;
END;

B4: In kết quả: N là số tự nhiên
nhỏ nhất sao cho S>1000,
Tổng S và kết thúc

Writeln(Số N nhỏ nhất để S>1000, N)
Writeln( Tổng đầu tiên >1000,S);



Program Bai_toan;
Uses Crt;
HÃy hoàn thiện
Var N:Integer;
chơng trình giải
S:Real;
bài toán trên?
BEGIN
Clrscr;
S:=0;N:=0;
WHILE s< = 1000 DO
BEGIN
N:=N+1;
S:=S+N;
END;
Writeln(‘So N nho nhat de tong >1000 la’,N);
Writeln(‘Gia tri cua tong S =',S);
Readln;
END.


VÝ dơ 2 :

TÝnh tỉng

1 1 1
1
S 1     ... 
2 3 4

100
Dïng lÖnh FOR ...DO

Dïng lÖnh Whie...Do

S:=0;

S:=0; i:=1;

For i:=1 to 100 do S:=S + 1/i;

While i<=100 do
begin
S:=S + 1/i;
i:=i+1;
end;
Writeln(‘ S = ’,
S:7:2);

Writeln(‘ S = ’, S:7:2);

 Cã thĨ sư dơng lƯnh While ... do
thay cho c©u lÖnh For...Do


4. Lặp vô hạn -Lỗi lập trình cần tránh
Ví dụ :
Var
a:integer;
Begin

a:=5;
While a<6 do
Write(' Chuong trinh chay mai khong thoat duoc');
End.

Lu ý: Khi viết chơng trình với câu lệnh lặp, điều kiện phải đ
ợc thay đổi để chơng trình không gặp lỗi lặp vô hạn.


Ghi nhớ!
Ngoài cấu trúc lặp với số lần lặp xác
định 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 cha biết
trớc.

While. . . do là câu lệnh lặp với số lần
cha biết trớc trong Pascal



×