Bài toánMột người có 2000.000 đồng mang đi gửi tiết kiệm tại một ngân hàng.. Hỏi sau bao nhiêu tháng người đó có ít nhất 2500000 trong tài khoản?. Phân tích Làm thế nào để tính được tổng
Trang 1Giáo viên: Th.s Phạm Quang Trung
Tổ : LTCM
TRƯỜNG CĐCN VIỆT ĐỨC
Khoa: CÔNG NGHỆ THÔNG TIN
CẤU TRÚC LẶP REPEAT UNTIL
Trang 2Bài toán
Một người có 2000.000 đồng mang đi gửi tiết kiệm tại một ngân hàng Biết lãi suất ngân hàng là 0,65 % một tháng Hỏi sau bao nhiêu tháng người đó có ít nhất
2500000 trong tài khoản?
Phân tích
Làm thế nào để tính được tổng số tiền của người đó sau mỗi tháng?
Lãi tính bằng cách nào?
Trang 3CẤU TRÚC LẶP REPEAT UNTIL
Cú pháp:
REPEAT
<Công việc>;
UNTIL <BT Logic>;
Trong đó:
- REPEAT, UNTIL : là các từ khoá
- <Công việc>: là các câu lệnh của Pascal
- < BT Logic >: chỉ nhận một trong 2 giá trị Đúng (True) hoặc Sai (False)
Trang 4< Công việc >
<BT Logíc>
End Đúng Sai
Bước 1: Thực hiện
<Công việc>
Bước 2: Tính giá trị của
biểu thức Logíc
+ Nếu < BT Logíc > đúng
thì thoát khỏi vòng lặp
+ Nếu < BT Logíc > sai thì
quay lại thực hiện
<Công việc>
Trang 5Bài toán
Một người có 2000000 đồng mang đi gửi tiết kiệm tại một ngân hàng Biết lãi suất ngân hàng là 0,65 % một tháng Hỏi sau bao nhiêu tháng người đó có ít nhất 2500000 trong tài
khoản?
Phân tích
- Công việc lặp đi lặp lại là việc gì?
- Quá trình lặp sẽ dừng lại khi nào?
- Hãy thể hiện công việc dưới dạng các câu lệnh.
Trang 6uses crt;
var i:byte;
tt,tl,ls:real;
begin
tt:=2000000;
write('Moi ban nhap lai suat:'); {**** ls:=0.65; *****} readln(ls);
i:=0;
tl:=0;
repeat
i:=i+1;
tl:=(tt*ls)/100;
tt:=tt+tl;
until tt>=2500000 ;
writeln('So thang can gui la:',i);
readln;
end.
Trang 7i:=i+1;
tl:=(tt*ls)/100; tt:=tt+tl;
tt>=2500000
End Đúng Sai
Bước 1: Tính
i:=i+1;
tl:=(tt*ls)/100;
tt:=tt+tl;
Bước 2: Tính giá trị của biểu thức
Logíc
tt>=2500000
Kết quả
0
2000000
Trang 8Chú ý:
- Nếu <công việc> gồm nhiều lệnh ta không phải dùng câu lệnh ghép.
- Trong phần công việc phải có một
lệnh làm thay đổi biểu thức logíc Nếu không thì công việc sẽ lặp vô hạn.
Trang 9* Phân tích
- Quá trình tính có phải là một quá trình lặp không?
- Công việc lặp đi lặp lại là việc gì?
- Quá trình lặp sẽ dừng lại khi nào?
Bài tập:
Tính tổng
S=1+1/2+1/3+ +1/k+
Quá trình tính sẽ dừng lại khi 1/k < e, với e được nhập vào từ bàn phím
Trang 10uses crt;
var i:word;
s,e:real;
begin
Writeln('Chuong trinh tinh tong');
Write('Nhap gia tri dieu kien dung: e='); readln(e);
S:=0;
i:=0;
repeat
i:=i+1;
s:=s+1/i;
until 1/i<e;
Writeln('ket qua cua tong la:',s:6:4);
readln;
end.