Lệnh lặp với ựiều kiện trước

Một phần của tài liệu giáo trình tin học đại cương (Trang 128 - 130)

- Mô hình Internet Mail: Là mô hình liên kết cách ộp thư lưu trên Internet, mỗi hộp thư

a. Lệnh lặp với ựiều kiện trước

Ớ Dạng lệnh:

WHILE <ựiều kiện> DO <Lệnh>;

ý nghĩa:

Khi gặp câu lệnh này, trước tiên máy sẽ kiểm tra <ựiều kiện>. Nếu <ựiều kiện> có giá trị ựúng (TRUE) thì <Lệnh> ựược thực hiện. Thực hiện xong lệnh này máy sẽ quay lại kiểm tra <ựiều kiện> ựể thực hiện <Lệnh>... quá trình tiếp diễn ựến khi <ựiều kiện> sai thì dừng. Sơựồ

Ớ Vắ dụ:

VD1: Một người gửi tiết kiệm không kì hạn với số tiền ban ựầu là A ựồng Hỏi sau bao nhiêu

tháng người ựó thu ựược số tiền là B ựồng, biết rằng lãi suất là 1.8%? <Lỷnh>

<ậiÒu kiỷn> Sai

Phân tắch bài toán: Ta biết rằng gửi tiết kiệm không kì hạn thì số tiền thu ựược sau mỗi tháng

sẽ bằng số tiền tháng trước cộng với lãi của tháng ựó. Nếu gọi S là số tiền thu ựược sau mỗi

tháng, t là số tháng gửi, ls là lãi suất thì ta có: nếu t=0 --> S0=A (gửi 0 tháng) nếu t=1 --> S1=S0 +S0*ls (gửi 1 tháng) nếu t=2 --> S2= S1 +S1*ls (gửi 2 tháng) ...

đây chắnh là quy luật ựể thực hiện vòng lặp tắnh số tiền thu ựược. Như vậy ta phải so sánh số

tiền thu ựược S sau mỗi tháng với số tiền cần ựạt B: nếu S ựạt hoặc vượt B thì ta có kết luận

của bài toán. đây cũng là ựiều kiện dừng vòng lặp. Ta sẽ sử dụng một biến ựếm t ựể ựếm số

lần thực hiện lặp, cũng chắnh là số tháng gửi. Chương trình ựược viết như sau:

Program Gui_tiet_kiem; Const ls=0.018; Var A,B,S:real; t:integer; Begin Clrscr;

Write('Cho biet so tien gui ban dau:'); Readln(A);

Write('Cho biet so tien can dat :'); Readln(B); S:=A; t:=0; WHILE S<B DO begin S:=S+S*ls; t:=t+1; end;

Writeln(' Ban can gui it nhat la ', t, ' thang'); Readln;

End.

VD2: Ta có thể viết lại chương trình tắnh tổng S=1+2+...+n sử dụng lệnh lặp WHILE... DO... như sau:

Program Tinh_tong1; Var i,n:integer;

S:real; Begin

Write('Cho biet gia tri cua n:'); Readln(n); S:=0; i:=1; While i<= n do begin S:=S+i; i:=i+1; end;

Writeln(' Tong tinh duoc la S:',S:10:2); End.

Như vậy ta có thể dùng lệnh lặp có số bước lặp không xác ựịnh ựể thay cho lệnh lặp có số

bước lặp xác ựịnh. Tuy nhiên khi ựó biến ựiều khiển vòng lặp không tự ựộng thay ựổi mà ta

phải ựưa nó vào thân vòng lặp (biến i trong VD trên).

Một phần của tài liệu giáo trình tin học đại cương (Trang 128 - 130)

Tải bản đầy đủ (PDF)

(182 trang)