Исходный
код программы:
Файл
NZLAB_6A.pas
program NZL_LAB6A;
{$I GLB.pas}
{$I INM.pas}
{$I PRC.pas}
{$I TBL.pas}
begin
inmas(a,n);
outmas(a,n);
root(n,arctg,a,b);
root(n,arctang,a,c);
tabl(n,b,c);
readln;
end.
Файл GLB.pas
const
n=5;
type
mas=array[1..n] of real;
functype=function(a:real):real;
var
a,b,c:mas;
Файл INM.pas
procedure inmas(var a:mas; n:integer);
var
i:integer;
begin
writeln ('ENTER ',n,' ELEMENTS ARRAY');
for i:=1 to n do
begin
write(i,': ');
readln(a[i]);
end;
end;
procedure outmas(a:mas; n:integer);
var
i:integer;
begin
for i:=1 to n do
write(a[i]:8:4);
end;
Файл
PRC.pas
{$F+}
function
arctang(x:real):real;
begin
arctang:=arctan(x);
end;
function
arctg(x:real):real;
const
eps=1e-5;
var
i,t,mn,at:real;
begin
at:=pi/2;
mn:=1/x;
t:=x*x;
i:=1;
repeat
at:=at-mn;
i:=i+2;
mn:=-mn*(i-2)/(i*t);
until abs(mn)<=eps;
arctg:=at;
end;
{$F-}
procedure
work(n:integer;f:functype;var a,b:mas);
var
i:integer;
begin
for i:=1 to n
do
b[i]:=f(a[i]);
end;
Файл
TBL.pas
procedure
tabl(n:integer;b,c:mas);
var
i:integer;
begin
writeln('╔═══╤═══════╤═══════════╤════════════╗');
writeln('║
N │ x
│
arctg(x) │
arcctan(x) ║');
writeln('╟───┼───────┼───────────┼────────────╢');
for i:=1 to n
do
writeln('║',i:2,' │
',a[i]:5:2,' │
',b[i]:10:7,' │
',c[i]:10:7,' ║');
writeln('╚═══╧═══════╧═══════════╧════════════╝');
end.
Результаты
работы программы:
ENTER 5 ELEMENTS ARRAY
1: 1.28
2: 1.36
3: 1.3
4: 1.25
5: 1.1
ENTERED ARRAY
1.28 1.36 1.3 1.25 1.1
╔═══╤═══════╤═══════════╤════════════╗
║ N │
x │
arctg(x) │
arcctan(x) ║
╟───┼───────┼───────────┼────────────╢
║ 1
│
1.28
│
0.9075989
│
0.9075933
║
║ 2
│
1.36
│
0.9367675
│
0.9367736
║
║ 3
│
1.30
│
0.9150946
│
0.9151007
║
║ 4
│
1.25
│
0.8960598
│
0.8960554
║
║ 5
│
1.10
│
0.8329859
│
0.8329813
║
╚═══╧═══════╧═══════════╧════════════╝
|