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

Chia sẻ bởi Hoàng Thị An | Ngày 10/05/2019 | 78

Chia sẻ tài liệu: Bài 10. Cấu trúc lặp thuộc Tin học 11

Nội dung tài liệu:

9.2.
Cấu trúc lặp
1
For
Cú pháp 1
For biến := giá_trị_đầu to giá_trị_cuối do ;
Ý nghĩa:
Đầu tiên biến nhận giá_trị_đầu và thực hiện việc sau do.
Biến còn <= giá_trị_cuối thì thực hiện ;
sau mỗi lần thực hiện biến được tăng thêm 1 đơn vị.

Cú pháp 2:
For biến:=giá_trị_cuối DownTo giá_trị_đầu do ;
Ý nghĩa:
Biến nhận giá_trị_cuối và kiểm tra điều kiện: giá trị cuối lớn hơn hoặc bằng giá_trị_đầu, thực hiện ;
sau mỗi lần thực hiện biến được giảm 1 đơn vị.

2
Chú ý:
Không thay đổi giá trị của biến điều khiển bằng một lệnh trong vòng lặp.
Giá trị của biến điều khiển là không xác định khi thoát khỏi vòng lặp.
Các , được ước lượng trước khi vào vòng lặp
 số vòng lặp không bị thay đổi.
3
Ví dụ 1.
Viết chương trình tính tổng các số lẻ của N số tự nhiên đầu tiên với N được nhập từ bàn phím
Var i,s,n: integer;
Begin
write(‘Nhap n = ’); readln(n);
for i:=1 to n do
if odd(i) then s:=s+i;
writeln(‘s = ’, s:4); readln;
End.
4
Ví dụ 2.
Viết chương trình tính

Program vidu2;
Var i,n: byte;
s: real;
Begin
write(‘cho so n = ’); readln(n);
For i :=n downto 1 do
s:= sqrt(5*i +s);
writeln(‘Dap so: ’, s:2:3);
readln;
End.
5
6
Program vidu2_b;
Var i,n: byte;
s: real;
Begin
write(‘cho so n = ’); readln(n);
For i :=1 to n do
s:= sqrt(5*(n –i+1) +s);
writeln(‘Dap so: ’, s:2:3);
readln;
End.
In bảng cửu chương dưới dạng sau:
7
var i,j: byte;
begin
writeln(‘Bang cuu chuong: ’)
For i:=2 to 9 do
begin
For j:=1 to 9 do
write(‘‘:2,i,’x’,j,’= ‘,i*j:2);
writeln;
end;
readln;
end.
Cho số thực a.
Tìm cố nguyên dương N nhỏ nhất thỏa mãn:
8
Câu lệnh while
Cú pháp
while do
begin
;
end;
Ý nghĩa
Máy tính sẽ lặp đi lặp lại nếu còn có giá trị True.
Thoát khỏi vòng lặp while khi có giá trị False.
9
Chú ý
Máy kiểm tra trước:
Nếu True  thực hiện .
Nếu False  thoát vòng lặp while.
 có thể vòng lặp không được thực hiện lần nào.
Khi điều kiện còn đúng thì còn được thực hiện.
Nếu có từ 2 lệnh trở lên thì phải đặt trong begin… end;
Trong phải có lệnh thay đổi giá trị  thoát khỏi vòng lặp.
Có thể biết trước số bước lặp nếu lệnh thay đổi giá trị được gán mỗi lần tăng hoặc giảm 1 giá trị xác định.
10
Cho số thực a.
Tìm cố nguyên dương N nhỏ nhất thỏa mãn:
11
program vd;
uses crt;
var n: byte; s,a: real;
begin
writeln(‘Cho a= ’);readln(a);
n:=1; s:=1;
while s<=a do
begin
inc(n);
s:= s + 1/n;
end;
write(‘ so nguyen duong n = ’, n:4);
readln;
end.
12
program UCLN;
uses crt;
var m,n: byte;
begin
writeln(‘Cho 2 so nguyen duong’);
readln(m,n);
while m<> n do
if m>n then m:=m – n
else n:=n – m;
write(‘Uoc chung lon nhat la: ’, m:4);
readln;
end.
13
Program Dan_so;
Uses crt;
var ds: Real;
i: Integer;
Begin
Clrscr;
ds:=0.75e8; i:=0;
while ds <= 10e8 do
Begin
ds:=0.022*ds+ds;
i:=i+1;
end;
writeln(`Nam `,1996 + i,` dan so VN dat 100 trieu`); Readln;
end.
14
Câu lệnh Repeat
Cú pháp
while do
begin
;
end;


Ý nghĩa
Máy tính sẽ lặp đi lặp lại nếu còn có giá trị True.
Thoát khỏi vòng lặp while khi có giá trị False.

15

Repeat
Until
False
True
Repeat
Chú ý
được thực hiện trước, kiểm tra điều kiện sau.
được thực hiện ít nhất 1 lần.
Khi điều kiện còn sai  còn được thực hiện.
Khi điều kiện đúng  thoát khỏi vòng lặp.
Các lệnh không cần đặt giữa begin… end;
Trong phải có lệnh thay đổi giá trị  thoát khỏi vòng lặp.
Có thể biết trước số bước lặp nếu lệnh thay đổi giá trị được gán mỗi lần tăng hoặc giảm 1 giá trị xác định.
16
17
Program Dan_so;
Uses crt;
var ds: Real;
i: Integer;
Begin
Clrscr;
ds:=0.75e8; i:=0;
while do
Begin
ds:=0.022*ds+ds;
i:=i+1;
end;
writeln(`Nam `,1996 + i,` dan so VN dat 100 trieu`); Readln;
end.
ds <= 10e8
Repeat
Until
Giả sử ông Hùng có số tiền A đồng. Lãi xuất hàng tháng gửi tiết kiệm không kì hạn là 0,75%. Ông Hùng gửi số tiền A đồng vào ngân hàng.
Sau 1 năm số tiền ông Hùng nhận được bao nhiêu?
Giả sử ông Hùng muốn mua xe máy giá B đồng. Hỏi sau bao nhiêu tháng ông có số tiền không nhỏ hơn B đồng để mua xe máy?
18
program xe_may;
uses crt;
const k := 0.75%;
var
A,B: real;
t: byte;
begin
clrscr;
t :=0;
writeln(‘Cho A = ’);readln(A);
writeln(‘Cho B = ’); readln(B);
while A < B do
A:= A + A*k;
t:= t+1;
write(‘Can phai gui ’,t,’ thang se thu duoc ’,B:0:3,’ dong’);readln;
end.
17
program xe_may;
uses crt;
const k = 0.0075;
var A,B: real; t: byte;
begin
clrscr;t :=0;
writeln(‘Cho A = ’);readln(A);
writeln(‘Cho B = ’); readln(B);
while A < B do
begin
A:= A + A*k;
t:= t+1;
end;
write(‘Can phai gui ’,t,’ thang se thu duoc ’,B:0:3,’ dong’);readln;
end.
20
* 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ẻ: Hoàng Thị An
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)