Автор Тема: Транспонирование матрицы  (Прочитано 2713 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Rex

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Транспонирование матрицы
« : 23 Ноября 2011, 15:27:36 »
Народ помогите пожалуйста транспонировать матрицу.Получилось расчитать весь пример а вот с транспонированием беда.Сам пример (A^T-B^2\2)-C
Вот текст:
const
 maxn=10;
var
 matrA,matrB,matrC,matrX:array[1..maxn,1..maxn] of shortint;
 matrP,tempmatrP:array[1..maxn,1..maxn] of shortint;
 i,j,k,n,m,p,f:integer;
 s:shortint;
 baseA,baseB,baseC,baseP:integer;
begin
 write('Vvedite kolichestvo strok matrici A:');
 readln(n);
 write('Vvedite kolichestvo stolbcov matrici A:');
 readln (m);
 writeln('Vvedite elementi matrici A:');
 for i:=1 to n do
  for j:=1 to  m do
   begin
   write('matrA[',i,',',j,']=');
   readln(matrA[i,j]);
 end;

begin
 write('Vvedite kolichestvo strok matrici B:');
 readln(m);
 write('Vvedite kolichestvo stolbcov matrici B:');
 readln(p);
 writeln('Vvedite elementi matrici B:');
 for i:=1 to m do
  for j:=1 to p do
   begin
   write('matrB[',i,',',j,']=');
   readln(matrB[i,j]);
 end;
 begin
 write('Vvedite kolichestvo strok matrici C:');
 readln(m);
 write('Vvedite kolichestvo stolbcov matrici C:');
 readln(p);
 writeln('Vvedite elementi matrici C:');
 for i:=1 to m do
  for j:=1 to p do
   begin
   write('matrC[',i,',',j,']=');
   readln(matrC[i,j]);
 end;
 END;

asm
mov i,0
mov baseC,0
@@cicls:

mov j,0
@@ciclr:

mov f,0
mov bx,j
mov si,baseC
mov al,byte ptr matrA[bx+si]

inc j
add baseC,maxn
mov ax,n
cmp j,ax
jl @@ciclr

inc i
mov ax,m
cmp i,ax
jl @@cicls

mov i,0
mov baseP,0
@@cicli:

mov j,0
@@ciclj:

mov s,0
mov dl,2
mov bx,baseP
mov si,j
mov al,byte ptr matrB[bx+si]
mov ah,0
imul byte ptr matrB[bx+si]
div dl
add al,byte ptr matrA[bx+si]
sub al,byte ptr matrC[bx+si]

add s,al
add al,byte ptr matrB[bx+si]

mov bx,baseP
mov si,j
mov al,s
mov byte ptr matrP[bx+si],al

inc j
mov ax,p
cmp j,ax
jl @@ciclj

inc i
add baseP,maxn
mov ax, m
cmp i,ax
jl @@cicli

inc j
add baseC,maxn
mov ax,n
cmp j,ax
jl @@ciclr

inc i
mov ax,m
cmp i,ax
jl @@cicls

end;

writeln('ASM result Matrica (A^T+B^2\2)-C:');
for i:=1 to  m do
 begin
 for j:=1 to p do
  write(matrP[i,j],' ');
  writeln;
 end;
writeln('ASM result Matrica A^T:');
for i:=1 to m do
 begin
 for j:=1 to n do
  write( matrA[j,i],' ');
  writeln;
 end;

end;
end.

Оффлайн wital1984

  • Постоялец
  • ***
  • Сообщений: 189
    • Просмотр профиля
Re: Транспонирование матрицы
« Ответ #1 : 24 Ноября 2011, 00:29:03 »
Народ помогите пожалуйста транспонировать матрицу.Получилось расчитать весь пример а вот с транспонированием беда.Сам пример (A^T-B^2\2)-C
Транспонированная матрица - матрица, полученная из исходной матрицы A заменой строк на столбцы.
Пробежаться по матрице A  и поменять местами a[i,j] и a[j,i]. Только организовать проход не по всей матрице, а по элементам ниже главной диагонали, а то получится двойная замена.

 

Помогите решить задачу. Для матрицы создать следующие функции.

Автор алина 11

Ответов: 1
Просмотров: 4804
Последний ответ 24 Января 2010, 17:54:21
от InfStudent
С++ и матрица. Для каждого столбца матрицы определить сумму элементов

Автор Sven

Ответов: 2
Просмотров: 7211
Последний ответ 30 Января 2011, 18:29:15
от Данила
Помогите решить задачи на СИ, про матрицы и символьные строки.

Автор katerinka777

Ответов: 4
Просмотров: 6680
Последний ответ 25 Апреля 2010, 12:56:01
от InfStudent
Вычисление по формуле, согласно норме матрицы

Автор drongoo

Ответов: 5
Просмотров: 5720
Последний ответ 09 Мая 2010, 06:36:20
от drongoo
Вывод матрицы в файл и на консоль С++

Автор sir. Andrey

Ответов: 1
Просмотров: 4978
Последний ответ 21 Октября 2010, 14:48:36
от sir. Andrey