Переписал под паскаль себе: без uses crt и randomize, а так же без усложнений с размером матрицы; может кому пригодится
PHP код:
Program matrconv;
Const n=6;
Type
mass=array[1..n] of real;
matr=array[1..n] of mass;
proc=procedure(n:byte;b,c:mass;var t:mass);
Const A: matr = ( ( 1, 0.2, 0.3, 0.4, 0.5, 0.6 ),
( 0.4, 0.7, 0.1, 0.8, 0.9, 0.5 ),
( 0.2, 0.8, 0.4, 0.1, 0.3, 7 ),
( 0.4, 0.7, 1, 0.9, 0.5, 2 ),
( 0.8, 0.3, 0.7, 0.1, 0, 0.4 ),
( 2, 0.5, 0.6, 0.4, 3, 0.8 )
);
function f1(x:real):real;
begin
f1:=sin(x)
end;
function f2(x:real):real;
begin
f2:=cos(x)
end;
procedure newmas(n:byte;b,c:mass;var t:mass);
var m,i:byte;
begin
m:=0;
for i:=1 to n do
if (f1(b[i])>0)and(f2(c[i])>f1(b[i])) then
begin
m:=m+1;
t[m]:=b[i]+c[i]
end;
if m<n then
for i:=m+1 to n do
t[i]:=0;
end;
procedure newmtr(a:matr;n:byte;newmas:proc;var e:matr);
var i:byte;
begin
for i:=1 to n div 2 do
newmas(n,a[2*i-1],a[2*i],e[i])
end;
var e:matr;
i,j:byte;
begin
writeln('Матрица А:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:6:2);
writeln
end;
newmtr(a,n,newmas,e);
writeln('Матрица E:');
for i:=1 to n div 2 do
begin
for j:=1 to n do
write(e[i,j]:6:2);
writeln;
end;
end.