Показать сообщение отдельно
Старый 03.03.2014, 08:43   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Раджаб bro Посмотреть сообщение
Думаю что основная моя тупость заключается здесь.
Не тупость. Просто лень и полное нежелание учиться.
Прежде, чем браться за написание программы, соблаговолите постичь азы матричной алгебры, в частности, разобраться, что такое произведение матриц, как умножать вектор на матрицу и т.д. Вот, для начала ознакомьтесь.
А программа может выглядеть, например, так:
Код:
Type
 Vect=array[1..3] of real;
 Matr=Array[1..3,1..3] of real;

Const
 x:Vect=(-2.2,5,1);
 y:Vect=(-1,0,2);
 a:Matr=((1.3,5,1),(2,3.2,1),(6,7,8));

Function Prod(PV:Vect;PM:Matr):Vect;
var
 j,k:Byte;
 M:Vect;
begin
 for j:=1 to 3 do M[j]:=0;
 for j:=1 to 3 do
  for k:=1 to 3 do
   M[j]:=M[j]+PV[k]*PM[k,j];
 Prod:=M;
end;

Function Sums(V1,V2:Vect):Vect;
var
 i:Byte;
begin
 for i:=1 to 3 do Sums[i]:=V1[i]+V2[i];
end;

Var
 q:Byte;
 R:Vect;

Begin
 R:=Sums(Prod(x,a),Prod(y,a));
 for q:=1 to 3 do write(R[q]:0:3,'    ');
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070