Текст програми
(на алгоритмічній мові високого рівня Turbo Pascal)
до розрахункової роботи №1
з курсу^
«Методи і засоби комп’ютерних інформаційних технологій»
(частина 1)
Program mzktroz;
uses crt;
label 1, 2;
const E1=3; E2=2; tau1=2; tau2=1; tau3=3; T=7.0; C0=0; B0=0; A0=0;
n=20; Ut0=0;
var fajl : Text;
omega, dt, te : real;
C, B, A, fi, Ut, f : array[1..n] of real;
z1, z2, z3, z4, Wser : real;
i, k : integer;
Begin
clrscr;
writeln('************************************************');
writeln(' N.B.: PLEASE, create next directory: "D:\Docs"');
writeln('************************************************');
Assign(fajl, 'D:\Docs\mzktrozr.txt');
rewrite(fajl);
for i:=1 to n do f[i]:=i/T;
for k:=1 to n do
begin
z1:=6*pi*(1+cos(4*pi*k/7));
z2:=sqr(pi)-16*sqr(pi)*sqr(k)/49;
z3:=6*pi*cos(6*pi*k/7)+6*pi*cos(2*6*pi*k/7);
z4:=sqr(pi)-36*sqr(pi)*sqr(k)/49;
C[k]:=z1/z2-z3/z4
end;
for k:=1 to n do
begin
z1:=3*4*k*2*pi/7*sin(4*pi*k/7);
z2:=16*sqr(pi)*sqr(k)/49-sqr(pi);
z3:=6*pi*(sin(6*pi*k/7)+sin(12*pi*k/7));
z4:=36*sqr(pi)*sqr(k)/49-sqr(pi);
B[k]:=2.0/7.0*(z1/z2+z3/z4)
end;
for k:=1 to n do
begin
A[k]:=sqrt(sqr(C[k])+sqr(B[k]));
fi[k]:=arctan(B[k]/C[k])
end;
{Zapus rezyl6tativ y fajl}
writeln('MZKIT calculation work');
writeln(' Made by student Andrew P., gr.KN-313, SAP');
writeln('You can find results here: "D:\Docs\mzktrozr.txt"');
writeln(fajl,'************************************');
writeln(fajl,' This is calculation work in MZKIT,');
writeln(fajl,' made by AndrewP');
writeln(fajl,'************************************');
writeln(fajl,'');
writeln(fajl,' R E S U L T S:');
Wser:=0;
for k:=1 to n do Wser:=Wser+A[k];
Wser:=1.0/2.0*Wser;
writeln(fajl,'C0=0, B0=0, A0=0, fi0=arctan(0/0) U(t=0)=0');
writeln(fajl,'');
for i:=1 to n do writeln(fajl, i, 'f=',f[i]);
writeln(fajl, '');
for k:=1 to n do writeln(fajl,'C',k,'=',C[k]);
writeln(fajl,'');
for k:=1 to n do writeln(fajl,'B',k,'=',B[k]);
writeln(fajl,'');
for k:=1 to n do writeln(fajl, 'A',k,'=',A[k]);
writeln(fajl,'');
for k:=1 to n do writeln(fajl, 'fi',k,'=',fi[k]);
writeln(fajl,'');
writeln(fajl,' Wser=',Wser);
omega:=2*pi/T;
dt:=1.0*T/n;
te:=0;
k:=1;
1: te:=te+dt;
if te>T then goto 2;
Ut[k]:=0;
for i:=1 to n do Ut[k]:=Ut[k]+C[i]*cos(i*omega*te)+B[i]*sin(i*omega*te);
k:=k+1;
goto 1;
2: writeln(fajl,'');
te:=0;
for i:=1 to n do
begin
te:=te+dt;
writeln(fajl,'U(t=',te:4:2,')= ',Ut[i])
end;
writeln(fajl,'');
writeln(fajl,' END');
close(fajl)
end.
Результатти роботи програми.
вміст файлу (D:\Docs\mzktrozr.txt) із результатами
************************************
This is calculation work in MZKIT,
made by AndrewP
************************************
R E S U L T S:
C0=0, B0=0, A0=0, fi0=arctan(0/0) U(t=0)=0
1f= 1.4285714286E-01
2f= 2.8571428571E-01
3f= 4.2857142857E-01
4f= 5.7142857143E-01
5f= 7.1428571429E-01
6f= 8.5714285714E-01
7f= 1.0000000000E+00
8f= 1.1428571429E+00
9f= 1.2857142857E+00
10f= 1.4285714286E+00
11f= 1.5714285714E+00
12f= 1.7142857143E+00
13f= 1.8571428571E+00
14f= 2.0000000000E+00
15f= 2.1428571429E+00
16f= 2.2857142857E+00
17f= 2.4285714286E+00
18f= 2.5714285714E+00
19f= 2.7142857143E+00
20f= 2.8571428571E+00
C1= 4.2023040337E+00
C2=-2.2285418201E-01
C3=-1.9816020480E+00
C4=-9.3347324923E-01
C5= 1.7690368401E-02
C6=-1.5888630041E-01
C7=-1.4551309083E-01
C8=-8.6139975126E-02
C9= 5.6562654897E-03
C10=-1.2756541018E-01
C11=-1.0492603518E-01
C12= 3.1976618629E-03
C13=-3.1707277013E-02
C14=-3.3919135391E-02
C15=-2.3715052281E-02
C16= 1.8033661398E-03
C17=-4.3362526376E-02
C18=-3.8639443485E-02
C19= 1.2800342222E-03
C20=-1.3265736879E-02
B1= 2.6426111041E-01
B2=-1.3783458127E+00
B3=-3.2462118480E-01
B4= 2.0338043717E-01
B5= 1.4963041094E-01
B6=-1.6213100966E-01
B7= 0.0000000000E+00
B8= 1.1809626616E-01
B9=-6.4229242788E-02
B10=-7.2944175615E-02
B11= 6.6275810957E-02
B12= 4.4425108463E-02
B13=-7.1394546321E-02
B14= 0.0000000000E+00
B15= 6.1766717751E-02
B16=-3.1333127418E-02
B17=-4.2990619063E-02
B18= 4.0627743279E-02
B19= 2.5621382445E-02
B20=-4.6260244304E-02
A1= 4.2106048409E+00
A2= 1.3962453817E+00
A3= 2.0080153361E+00
A4= 9.5537213130E-01
A5= 1.5067252242E-01
A6= 2.2700511173E-01
A7= 1.4551309083E-01
A8= 1.4617394910E-01
A9= 6.4477817647E-02
A10= 1.4694824474E-01
A11= 1.2410461706E-01
A12= 4.4540041573E-02
A13= 7.8118708770E-02
A14= 3.3919135391E-02
A15= 6.6162913528E-02
A16= 3.1384980536E-02
A17= 6.1061461014E-02
A18= 5.6067995476E-02
A19= 2.5653337522E-02
A20= 4.8124733537E-02
fi1= 6.2802118145E-02
fi2= 1.4105011454E+00
fi3= 1.6237528583E-01
fi4=-2.1452245732E-01
fi5= 1.4531155059E+00
fi6= 7.9550540267E-01
fi7= 0.0000000000E+00
fi8=-9.4060700901E-01
fi9=-1.4829592132E+00
fi10= 5.1943950365E-01
fi11=-5.6336215265E-01
fi12= 1.4989415405E+00
fi13= 1.1528484434E+00
fi14= 0.0000000000E+00
fi15=-1.2042061980E+00
fi16=-1.5133051346E+00
fi17= 7.8109137166E-01
fi18=-8.1047642127E-01
fi19= 1.5208782225E+00
fi20= 1.2915271620E+00
Wser= 5.0100831755E+00
U(t=0,35)=
1,9771831779

U(t=0,7)=
3,3643501426

U(t=1,05)=
3,6662231796

U(t=1,4)=
2,1380289619

U(t=1,75)=
-0,039779074944

U(t=2,1)=
-0,14401851574

U(t=2,45)=
-0,22624600783

U(t=2,8)=
-0,22769842175

U(t=3,15)=
-1,5917399993

U(t=3,5)=
-2,0058470769

U(t=3,85)=
-2,3375668602

U(t=4,2)=
-2,4121064549

U(t=4,55)=
-2,7760083998

U(t=)=4,9
-2,0668985024

U(t=5,25)=
-0,85224784877

U(t=5,6)=
0,35304202883

U(t=5,95)=
0,64411611286

U(t=6,3)=
0,59745482783

U(t=6,65)=
0,35182315082

U(t=7)=
0,28636226754

END
Графіки, побудовані за результатами виконання програми.
C, В С=F(?)
?, Гц
B,В B=F(?)
?, Гц
A, B A=F(?) – АЧХ
?, Гц
?, В ?=F(?) – ФЧХ
?, Гц
Форма побудованого сигналу (з компонентами до 20-ої гармоніки включно)
U,B
t, сек