Bài 10. Cấu trúc lặp

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Trieu Truong Tho
Ngày gửi: 22h:10' 02-08-2016
Dung lượng: 305.5 KB
Số lượt tải: 343
Nguồn:
Người gửi: Trieu Truong Tho
Ngày gửi: 22h:10' 02-08-2016
Dung lượng: 305.5 KB
Số lượt tải: 343
Số lượt thích:
0 người
CẤU TRÚC LẶP
LẶP VỚI SỐ LẦN BIẾT TRƯỚC
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
LẶP VỚI SỐ LẦN LẶP CHƯA BIẾT TRƯỚC
1. Bài toán
Dữ liệu ra (Output) : Tổng S
Dữ liệu vào (Input) : Nhập a
Cho đến khi
Tính và đưa kết quả ra màn hình tổng S với a là số nguyên a>2.
thì dừng lại.
- Bước 2:
S:=1/a; N:=0;
{Khởi tạo S và N}
- Bước 3:
Nếu 1/(a+N) < 0.0001
- Bước 4:
S:=S+1/(a+N);
N:=N+1;
=> quay lại bước 3
- Bước 1: Nhập a.
Đưa ra S
=> Kết thúc
Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
S
Đ
- Bước 5: In S => Kết thúc.
=> Bước 5
THUẬT TOÁN
WHILE <Điều kiện> DO;
Điều kiện
Đúng
Câu lệnh
Điều kiện: Là biểu thức
quan hệ hoặc lôgic.
Câu lệnh: Là một câu lệnh của Pascal.
Sai
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trong đó:
Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
WHILE (1/(a+N) >= 0.0001) DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
a
Bài toán đặt vấn đề:
Nhận xét:
Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị của tổng S thêm 1/(a+N).
+ Tăng N thêm 1 đơn vị.
thì dừng lại.
Cho đến khi
Tính và đưa kết quả ra màn hình tổng S với a là số nguyên a>2.
CHƯƠNG TRÌNH
Program Bai_toan;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(‘Nhap gia tri cua a= ‘);Readln(a);
S:=1/a;N:=0;
WHILE 1/(a+N)>=0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(‘Gia tri cua tong S = ‘,S:8:3);
Readln;
END.
Ví dụ:
Bài toán đếm chữ số chẵn
Nhập số nguyên dương n < 109. Đếm số lượng chữ số chẵn của số n.
- Bước 2:
dem; {Khởi tạo dem}
- Bước 3:
Khi N > 0
- Bước 4:
X:=N mod 10;
- Bước 1: Nhập N.
Đưa ra dem
=> Kết thúc
* Vòng lặp chỉ dừng khi N <=0
S
Đ
- Bước 6: In dem => Kết thúc.
=> Bước 6
THUẬT TOÁN
- Bước 5 :
Nếu X chia hết cho 2
dem:=dem + 1;
N:=N div 10;
=> Bước 3
CHƯƠNG TRÌNH
Var n,dem,x:integer;
begin
readln(n);
dem:=0;
while n>0 do
Begin
x:=n mod 10;
if x mod 2=0 then
dem:=dem + 1;
n:=n div 10;
end;
write(dem);
Readln;
end.
LẶP VỚI SỐ LẦN BIẾT TRƯỚC
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
LẶP VỚI SỐ LẦN LẶP CHƯA BIẾT TRƯỚC
1. Bài toán
Dữ liệu ra (Output) : Tổng S
Dữ liệu vào (Input) : Nhập a
Cho đến khi
Tính và đưa kết quả ra màn hình tổng S với a là số nguyên a>2.
thì dừng lại.
- Bước 2:
S:=1/a; N:=0;
{Khởi tạo S và N}
- Bước 3:
Nếu 1/(a+N) < 0.0001
- Bước 4:
S:=S+1/(a+N);
N:=N+1;
=> quay lại bước 3
- Bước 1: Nhập a.
Đưa ra S
=> Kết thúc
Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
S
Đ
- Bước 5: In S => Kết thúc.
=> Bước 5
THUẬT TOÁN
WHILE <Điều kiện> DO
Điều kiện
Đúng
Câu lệnh
Điều kiện: Là biểu thức
quan hệ hoặc lôgic.
Câu lệnh: Là một câu lệnh của Pascal.
Sai
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trong đó:
Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
WHILE (1/(a+N) >= 0.0001) DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
a
Bài toán đặt vấn đề:
Nhận xét:
Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị của tổng S thêm 1/(a+N).
+ Tăng N thêm 1 đơn vị.
thì dừng lại.
Cho đến khi
Tính và đưa kết quả ra màn hình tổng S với a là số nguyên a>2.
CHƯƠNG TRÌNH
Program Bai_toan;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(‘Nhap gia tri cua a= ‘);Readln(a);
S:=1/a;N:=0;
WHILE 1/(a+N)>=0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(‘Gia tri cua tong S = ‘,S:8:3);
Readln;
END.
Ví dụ:
Bài toán đếm chữ số chẵn
Nhập số nguyên dương n < 109. Đếm số lượng chữ số chẵn của số n.
- Bước 2:
dem; {Khởi tạo dem}
- Bước 3:
Khi N > 0
- Bước 4:
X:=N mod 10;
- Bước 1: Nhập N.
Đưa ra dem
=> Kết thúc
* Vòng lặp chỉ dừng khi N <=0
S
Đ
- Bước 6: In dem => Kết thúc.
=> Bước 6
THUẬT TOÁN
- Bước 5 :
Nếu X chia hết cho 2
dem:=dem + 1;
N:=N div 10;
=> Bước 3
CHƯƠNG TRÌNH
Var n,dem,x:integer;
begin
readln(n);
dem:=0;
while n>0 do
Begin
x:=n mod 10;
if x mod 2=0 then
dem:=dem + 1;
n:=n div 10;
end;
write(dem);
Readln;
end.
 








Các ý kiến mới nhất