Консультация № 160022
09.02.2009, 17:05
0.00 руб.
0 1 1
Здравствуйте! Решите пожалуйста задачу.
а) Разработать программу для выполнения указанных операций с матрицами;
б) Разработать программу для вычисления следующих матриц;

а) транспонирование, умножение матриц, сложение матриц; б) (B*B*B) - (A транспонированная);

Обсуждение

Неизвестный
09.02.2009, 19:21
общий
это ответ
Здравствуйте, Gorelkovmisha!
Программа выполняющая пункт (а) в приложении.
В условии пункта (б) по-моему ошибка. Матрица А в условии не фигурирует.


Приложение:
program m;
uses CRT;
type matr=array[1..10,1..10] of real;
var i,j,k,z,n:integer;
t:real;
x:char;
a,b,c:matr;
procedure vvod_matrix(var n:integer; var matrix1:matr);
var ii,jj:integer;
begin
writeln('Vvedite poryadok matrixi:');
write('n=');
readln(n);
writeln('Vvedite elementi matrixi:');
for ii:=1 to n do
begin
for jj:=1 to n do
begin
write('[',ii,',',jj,']=');
readln(matrix1[ii,jj]);
end;
end;
end;{vvod matrixi}

procedure vivod_matrix(n:integer; matrix1:matr);
var jj,ii:integer;
begin
ii:=0;
while ii<n do
begin
ii:=ii+1;
jj:=0;
while jj<n-1 do
begin
jj:=jj+1;
write(matrix1[ii,jj]:3:0);
end;
jj:=jj+1;
writeln(matrix1[ii,jj]:3:0);
end;

end;{vivod matrixi}
begin
ClrScr;
repeat
writeln('Viberite nomer operacii:');
writeln(' 0-transponirovanie');
writeln(' 1-slojenie matrix');
writeln(' 2-umnojenie matrix');
readln(z);
case z of
0:
begin
vvod_matrix(n,A);
vivod_matrix(n,A);
for i:=1 to n do
begin
for j:=1 to n do
begin
b[i,j]:=a[j,i];
end;
end;
writeln;
writeln('Rezultat:');
vivod_matrix(n,B);
end;
1:
begin
vvod_matrix(n,A);
vivod_matrix(n,A);
vvod_matrix(n,B);
vivod_matrix(n,B);
for i:=1 to n do
begin
for j:=1 to n do
begin
c[i,j]:=a[i,j]+b[i,j];

end;
end;
writeln;
writeln('Rezultat:');
vivod_matrix(n,c);
end;
2:
begin
vvod_matrix(n,A);
vivod_matrix(n,A);
vvod_matrix(n,B);
vivod_matrix(n,B);
for i:=1 to n do
begin
for j:=1 to n do
begin
t:=0;
for k:=1 to n do
begin
t:=t+a[i,k]*b[k,j];
end;
c[i,j]:=t;
end;
end;
writeln;
writeln('Rezultat:');
vivod_matrix(n,c);

end;
end;
writeln('Povtor? (y/n)');

x:=readkey;
until x=char(ord('n'));
end.
Форма ответа