Страница 1 из 1
Матрицы
Добавлено: 13 окт 2009, 10:57
xxYurikxx
Помогите кто-нить с задачой
|6 25 11| (A)
|3 5 7 9|
|1 4 6 -2| (B) (<<== ето одна матрица)
|2 -1 2 1|
Нужно: А*В
Напишыте логаритм плиз для Pascal
зарание спасибо
Re: Матрицы
Добавлено: 14 окт 2009, 12:11
atavin-ta
В чём хранишь? В массивах? В объектах? Давай декларацию типа с комментариями. И определись с выбором порядка индексов. Первый индекс - строка, а второй - столбец. или наоьорот? Где размеры матриц? И что за паскаль? Turbo, или что-то другое? Алгоритм знаю. Как только ответишь на эти вопросы, сразу же дам функцию умножения. Хотя, удивляет, что с алгоритмом умножения матриц (в чистом виде высшая математика) ты обращаешься к прогрмерам.
Re: Матрицы
Добавлено: 15 окт 2009, 22:16
xxYurikxx
atavin-ta писал(а):В чём хранишь? В массивах? В объектах? Давай декларацию типа с комментариями. И определись с выбором порядка индексов. Первый индекс - строка, а второй - столбец. или наоьорот? Где размеры матриц? И что за паскаль? Turbo, или что-то другое? Алгоритм знаю. Как только ответишь на эти вопросы, сразу же дам функцию умножения. Хотя, удивляет, что с алгоритмом умножения матриц (в чистом виде высшая математика) ты обращаешься к прогрмерам.
В масивах.
Что за индексы?
незнаю где размеры, написал как в задаче написато, тупо 2-ве матрицы их нуно умножыть все.
Турбо паскаль
Re: Матрицы
Добавлено: 16 окт 2009, 06:00
atavin-ta
Каждый массив имеет индексы, а каждый элемент идентифицируется сочетанием их значений. У линейного массива один индекс, у двумерного - два и т.д. Порядок индексов важен. Например, A[1,2] и A[2,1] (в квадратных скобках - индексы, сначала первый и через запятую - второй) - разные элементы массива A.
" писал(а):незнаю где размеры,
Как не знаешь? Ты должен решить, где у тебя будут размеры (их у каждой матрицы два: число строк и число столбцов). Если в массивах, то, наверное,
Код: Выделить всё
type TMatrix=array[1..N,1..N] of real;{Первый индекс - строка, второй - столбец}
?
Или у тебя что-то другое?
Если так, то
Код: Выделить всё
type TMatrix=array[1..N,1..N] of real;{Первый индекс - строка, второй - столбец}
function Mul(a,b:TMatrix, ARows,ACols,BRows,BCols:integer):TMatrix;
var r,c,i:Integer;
Res:TMatrix;
begin
if (ACols=BRows) and (ACols>0) and (ACols<=N) and (ARows>0) and (ARows<=N) and (BCols>0) and (BCols<=N) then
begin
for r:=1 to ARows do
for c:=1 to BCols do
begin
Res[r,c]:=0;
for i:=1 to ACols do
Res[r,c]:=Res[r,c]+A[r,i]*B[i,c];
end;
end;
Mul:=Res;
end;