Bài tập turbo pascal



tải về 0.6 Mb.
trang16/42
Chuyển đổi dữ liệu27.02.2022
Kích0.6 Mb.
#51050
1   ...   12   13   14   15   16   17   18   19   ...   42
100 bài tập pascal
13234
c. Nhận xét:

- Với thuật toán trên ta không cần xét n là chẵn hay lẻ.


Bài tập 4.4:

Viết chương trình cho phép tính tổng của nhiều số (Chưa biết bao nhiêu số). Nhập số 0 để kết thúc quá trình nhập.

a. Hướng dẫn:

b. Mã chương trình:



Var f,g: text;

i: byte;


so, tong: real;

begin


assign(f,’bai4_4.inp’);reset(f);

assign(g,’bai4_4.out’);rewrite(g);

repaet

readln(f,so);



tong:=tong+so;

i:=i+1;


until so=0;

write(g,'Tong la: ',tong:6:1);

close(f);close(g);

end.



Bài tập 4.5

Viết chương trình tìm ước chung lớn nhất (UCLN) của hai số với yêu cầu sử dụng thuật toán Euclid.

Thuật toán Euclid: Nếu a chia hết cho b (a chia b dư 0) thì UCLN(a,b) bằng b

Nếu a chia b dư r thì UCLN(a,b) = UCLN(b,r)



a.Hướng dẫn:

- Nhập a, b và gán r = a mod b.

- Lặp với điều kiện r <> 0: b = r, a = b, r = a mod b.

b.Mã chương trình:



var a,b,r:byte;

f,g:text;

begin

assign(f,’bai4_5.inp’); reset(f);



assign(g,’bai4_5.out’); rewrite(g);

readln(f,a);

readln(f,b);

r:=a mod b;

while r<> 0 do

begin


b:=r;

a:=b;


r:=a mod b;

end;


write(g,'UCLN cua hai so la: ',b);

close(f); close(g);

end.


Bài tập 4.6

Dãy Fibonacy có hai phần tử đầu là 1, 1. Các phần tử sau bằng tổng hai phần tử đứng ngay trước nó: 1, 1, 2, 3, 5, 8, 13, 21, ...

Viết chương trình in ra dãy Fibonacy có phần tử lớn nhất nhỏ hơn n?

a.Hướng dẫn:

- Cần hai biến F_1 và F có giá trị đầu là 1, 1.

- Thực hiện lặp cho đến khi F >= n.

- Do yêu cầu chỉ in các số bé hơn n nên khi in cần thêm một lệnh kiểm tra.



b.Mã chương trình:

Var f,g: text;

n,F_2,F_1,F: Longint;

Begin

assign(f,’bai4_6.inp’); reset(f);



assign(g,’bai4_6.out’); rewrite(g);

Readln(f,n);

F_1:=1; F_2:=1;

Write(g,F_2,';',F_1,';');

repeat

F:=F_2+F_1;



if F< n then Write(g,F,';');

F_2:=F_1; F_1:=F;

Until F>n;

Close(f); close(g);

End.


Nhận xét: Giữa Repeat ... until có thể chứa nhiều lệnh mà không cần ghép.

Hãy phát triển bài tập theo hướng chỉ in một phần tử trong dãy lớn nhất nhưng bé hơn n hoặc theo hướng phần tử thứ k của dãy.




tải về 0.6 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   12   13   14   15   16   17   18   19   ...   42




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương