Показать сообщение отдельно
Старый 05.05.2014, 00:30   #3 (permalink)
Madara
Member
 
Регистрация: 29.11.2013
Сообщений: 50
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Спасибо огромное!

Переписал под паскаль себе: без uses crt и randomize, а так же без усложнений с размером матрицы; может кому пригодится

PHP код:
Program matrconv;

Const 
n=6;

Type
   mass
=array[1..nof real;
   
matr=array[1..nof mass;
   
proc=procedure(n:byte;b,c:mass;var t:mass);

Const  
Amatr =     ( (  1,  0.20.30.40.50.6 ),  
                       ( 
0.40.70.10.80.90.5 ),  
                       ( 
0.20.80.40.10.3,  7  ),
                       ( 
0.40.7,  1,  0.90.5,  2  ),
                       ( 
0.80.30.70.1,  0,  0.4 ),
                       (  
2,  0.50.60.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
Madara вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070