Прокомментируйте пожалуйста что выполняется в каждой строке программы.
1.

program ryad;


uses crt;
function Fac(n: integer): LongInt;
begin
if n > 1 then
fac := n * Fac(n-1)
else
fac:= 1;
end;
function power(c,st:real):real;
begin
power:=exp(st*ln©);
end;
var sl,x,s,e:real;
k:integer;
begin
writeln('vvedite x');
readln(x);
writeln('e summa k');
s:=0;
k:=1;
e:=0.001;
sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3))) ;

while sl>e do begin
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3));
if k mod 2 = 0 then
s:=s+sl
else
s:=s-sl;
inc(k)

end;
writeln(e:6:6,' ',s,k);
s:=0;
k:=1;
e:=0.0001;
sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3));
while sl>e do begin
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3));
if k mod 2 = 0 then
s:=s+sl
else
s:=s-sl;
inc(k)
end;
writeln(e:6:6,' ',s,k);

s:=0;
k:=1;
e:=0.00001;
sl:=(1-power(x,4*k+3))/(fac(2*k+1)*(4*k+3));

while sl>e do begin
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3));
if k mod 2 = 0 then
s:=s+sl
else
s:=s-sl;
inc(k)

end;
writeln(e:6:6,' ',s,k);
s:=0;
k:=1;
e:=0.000001;
sl:=(1-power(x,4*k+3)/(fac(2*k+1)*(4*k+3)));

while sl>e do begin
sl:=power(x,4*k+3)/(fac(2*k+1)*(4*k+3));
if k mod 2 = 0 then
s:=s+sl
else
s:=s-sl;
inc(k)
end;
writeln(e:6:6,' ',s:6:7,' ',k);
readln;
end.


2.
uses crt;
var s, temp, min:string;
i:integer;
begin
clrscr;
writeln('введите строку...');
readln(s);
s:=s+' ';
temp:='';
i:=1;
repeat
if s[i]<>' ' then temp:=temp+s[i];
if ((s[i]=' ') or (i=length(s))) and (temp<>'') then
begin
if length(temp)>2 then
delete(s,i-length(temp),1);
dec(i);
temp:='';
end;
inc(i);
until
i>length(s);
writeln(s);
readln;
end.

3.
program example;
uses
crt;
const
n = 5;
var bRow: array [1..n] of 0..1;
aMatrix: array [1..n, 1..2*n] of Real;
x: Real;
i,j: 1..2*n;
begin
write('введите вещественное число х: ');
readln(x);
writeln('Матрица ', n, 'x', 2*n, 'целых чисел сформирована автоматически:');
randomize;
for i := 1 to n do
begin
for j := 1 to 2*n do
begin
aMatrix[i, j] := -2*x + random(Round(4*x));
write(aMatrix[i, j]:6:2)
end;
writeln('')
end;
for i := 1 to n do
for j := 1 to 2*n do
if aMatrix[i, j] <= x then
bRow[i] := 1
else
begin
bRow[i] := 0;
break
end;
writeln('Матрица обработана. Последовательность b[1]..b[',n,'] сформулирована');
for i := 1 to n do
write(bRow[i]:2);
readln;
end.