IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> ВЫЧЕСЛИТЬ МАТРИЦУ АВ-ВА, pascal почти не знаю нужна помощь!!!
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Даны квадратные матрицы А и В порядка n. Получить матрицу АВ-ВА.
Перемножение матриц я видел, а тут заглох. Нужна помощь.
Или ссылка. unsure.gif А может я туплююю mad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Сорри, но если ты видел перемножение матриц, то рядом же было и их сложение. Что мешает сделать так:

...
matrixMult(T1, A, B);
matrixMult(T2, B, A);
matrixSub(res, T1, T2);
...


Процедуру matrixMult смотреть здесь: Массивы. Матрицы. Типичные задачи.
matrixSub делается совершенно аналогично matrixAdd, но со знаком минус...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


PROGRAM allan_28102006_1325;
{RAZNOST' PROIZVEDENi QvADRATNIx MATRIc AB - BA}
USES crt;
const size = 5;
const cell = 5;
const genM = 5;
TYPE DArray = Array[1..size,1..size]of integer;
var A,B,AB,BA,SubtArr : DArray;
var i,j,k : integer;

procedure multiple (in_arr01, in_arr02 : DArray; var RESULT : Darray);
var i,j,k : integer;
begin
for i:= 1 to high(in_arr02) do
for j:= 1 to high(in_arr01[1]) do begin
RESULT[i,j]:= 0;
for k:= 1 to high(in_arr02[1]) do
RESULT[i,j]:= RESULT[i,j] + in_arr01[i,k]*in_arr02[k,j];
end;
end;

procedure viewing (in_arr : DArray; X,Y : integer; Comment : String);
var i,j : integer;
begin
GotoXY (X,Y); Writeln (Comment);
for i:= 1 to high (in_arr) do begin
for j:= 1 to high (in_arr[1]) do begin
GotoXY (X+j*cell,Y+i); write(in_arr[i,j]);
end;
end;
end;

procedure generate (var in_arr : DArray);
var i,j : integer;
begin
for i:=1 to high (in_arr) do
for j:=1 to high (in_arr[1]) do
in_arr[i,j]:= random(GenM);
end;

procedure subtract (in_arr01, in_arr02: DArray; var RESULT : Darray);
var i,j : integer;
begin
for i:=1 to high (in_arr01) do
for j:=1 to high (in_arr01[1]) do
RESULT[i,j]:=in_arr01[i,j]-in_arr02[i,j];
end;
BEGIN
clrscr;
generate (A);
generate (B);


viewing (A,1,1,'First Array A:');
viewing (B,cell*(size+2),1,'Second Array B:');

multiple (A,B,AB);
viewing (AB,1,size+3,'First Multiple:');

multiple (B,A,BA);
viewing (BA,cell*(size+2),size+3,'Second Multiple:');

subtract (AB,BA,SubtArr);
viewing (SubtArr,1,(size+3)*2,'RESULT AB - BA:');

readln;

end.



Можно сделать более простую ?????

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Во-первых, чего тегами не пользуешься?

Во-вторых, выводить матрицы можно и покрасивее:
procedure viewing (in_arr : DArray; X,Y : integer; Comment : String);
var i,j : integer;
begin
GotoXY (X,Y); Writeln (Comment);
for i:= 1 to high (in_arr) do begin
gotoxy(X, Y + i);
for j:= 1 to high (in_arr[1]) do write(in_arr[i,j]:cell);
end;
end;
(теперь по правому краю выравниваются как положительные, так и отрицательные числа)

Ну, и наконец, объясни, зачем тебе вся эта игра с high(in_arr02) и high (in_arr[1])? Не проще было бы использовать Size? blink.gif
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.09.2020 16:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name