Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
вычисление квадратной матрицы
Имеется задание:
составить подпрограмму-функцию для нахождения суммы элементов квадратной матрицы находящихся выше главной диагонали и определить максимальную из указанных сумм для матриц \(X=A^{2}+B^{3}, Y=AA^{T}+BB^{T}\)
где А,В - исходные произвольно заданные матрицы размером 5х5

Program kyrs;
const
Nmax=5;
type
Matrics=array[1..nmax, 1..nmax] of integer;
Masiv=array[1..nmax] of integer;
var
a,b,a2,b2,b3,at,bt,ata,btb,x,y:matrics;
m,n:masiv;
i,j,t:integer;
sx,sy:real;

Procedure input (var a:matrics);
var i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
write ('[',i,',',j,']=');
read(a[i,j]);
end;
for i:=1 to 5 do
begin
for j:=1 to t do
write(a[i,j]);
writeln
end;
end;
Procedure umn (a,b:matrics; var a2:matrics);
var
i,j,k,s:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
begin
s:=0;
b:=a;
for k:=1 to 5 do
s:=s+a[k,i]*b[j,k];
a2[i,j]:=s;
end;
end;
Procedure summa (a,b:matrics; var x:matrics);
var
i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
x[i,j]:= a[i,j]+b[i,j];
end;

Procedure over (x:matrics; Var s:real);
var
z:real;
Begin
z:=0;
for i:= 1 to 4 do
for j:= 2 to 5 do
s:=z+x[i,j];
Writeln('summa elementov vishe glavnoi diagonali=', s:5);
end;
Procedure transp(a:matrics; var at:matrics);
var
i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
at[i,j]:=a[i,j]
end;
begin
writeln('vvedite elementi matricy a');
input(a);
writeln('vvedite elementy matricy b');
input(b);

а вот дальше не пойму как присвоить значение полученное с помошью процедуры к переменной(

a2:=umn[a,a];
b2:=umn(b,b);
b3:=umn(b2,b);
at:=trans(a);
bt:=trans(b);
ata:=umn(a,at);
btb:=umn(b,bt);
x:=summa(a2,b3);
y:=summa(ata,btb);
sx:=over(x);
sy:=over(y);
if sx>sy
then
writeln('max=',sx);
else writeln('max=', sy);
if sx=sy;
then writeln('oni ravni!');
readln;
end.
end.
1 | Автор: Vogelfrei | 2011-12-11, 20:58 | Изменено: Vogelfrei - Вс, 2011-12-11, 21:23   |  Репутация: [ + 0 ]
  • Страница 1 из 1
  • 1
Поиск: