Текст програми.
Program mzkt;
uses crt;
label 1, 2;
const E=5; tau1=2; tau2=2; T=6.0; n=20; Ut0=E;
var fajl : Text;
omega, dt, te : real;
C, B, A, fi, Ut, f : array[1..n] of real;
Wser : real;
i, k : integer;
Begin
clrscr;
Assign(fajl, 'D:\Docs\mzjakem.txt');
rewrite(fajl);
omega:=2*pi/T;
for i:=1 to n do f[i]:=i/T;
for k:=1 to n do
begin
C[k]:=(15.0/(2.0*sqr(k)*sqr(pi)))*(cos(2*k*pi/3.0)-cos(4*k*pi/3.0))
end;
for k:=1 to n do
begin
B[k]:=(15.0/(2*sqr(k)*sqr(pi)))*(2*sqr(k)*sqr(pi)/3.0+sin(2*k*pi/3)-sin(4*k*pi/3))
end;
for k:=1 to n do
begin
A[k]:=sqrt(sqr(C[k])+sqr(B[k]));
if C[k]=0 then fi[k]:=arctan(B[k]/0.000001)
else fi[k]:=arctan(B[k]/C[k])
end;
Wser:=0;
for k:=1 to n do Wser:=Wser+sqr(A[k]);
Wser:=1.0/2.0*Wser;
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);
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.
Графіки.