Помощь - Поиск - Пользователи - Календарь
Полная версия: Векторное произведение
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Ivon
Не хотел забивать вам голову таким пустяшным заданием, но обстаятельства повернулись чем-то другим...

Даны три вектора... найти их векторные произведения. т.е. a*b b*c a*c.

Написать задание смогу, но только с большим кол-ом переменных... помогите или хотя бы намекните
klem4
const n=3;
var a,b,c,ab,ac,bc:array[1..n] of integer;
i:integer;

Begin
{ввод векторов}
for i:=1 to n do
begin
ab[i]:=a[i]*b[i];
ac[i]:=a[i]*c[i];
bc[i]:=b[i]*c[i];
end;
readln
end.
VDmV
Код

ab[i]:=a[i]*b[i];
ac[i]:=a[i]*c[i];
bc[i]:=b[i]*c[i];

А это не векторное произведение а просто перемножение компонентов двух вектров. Вы бы хоть математику посмотрели. Векторным произведением 2-х векторов является вектор, перпендикулярный 2-м перемножаемым, т.е. [a,b]=с - это правая или левая тройка векторов (в зависимости от знака). А находиться векторное произведение так:
Пусть a(a1,a2,a3) и b(b1,b2,b3);
c= определитель матрицы ((i, j, k,),(a1,a2,a3),(b1,b2,b3)), где i,j,k -единичные орты вектора. Т.е. мы получим вектор c=c1*i+c2*j+c3*k - это и будет векторное произведение. ;)
klem4
Цитата(VDmV @ 5.06.05 13:36)
Код

ab[i]:=a[i]*b[i];
ac[i]:=a[i]*c[i];
bc[i]:=b[i]*c[i];

А это не векторное произведение а просто перемножение компонентов двух вектров. Вы бы хоть математику посмотрели. Векторным произведением 2-х векторов является вектор, перпендикулярный 2-м перемножаемым, т.е. [a,b]=с - это правая или левая тройка векторов (в зависимости от знака). А находиться векторное произведение так:
Пусть a(a1,a2,a3) и b(b1,b2,b3);
c= определитель матрицы ((i, j, k,),(a1,a2,a3),(b1,b2,b3)), где i,j,k -единичные орты вектора.  Т.е. мы получим вектор c=c1*i+c2*j+c3*k - это и будет векторное произведение.  ;)


ну видишь, какой ты умный, вот сам и сделай, это же элементарное задание.
а математику я читал, как ты выразился, и что что я не так понял задание, еще не означает, что надо здесь пытаться меня унизить тем, что якобы я не знаю как перемножать векторы. angry.gif
klem4
uses crt;
const
n=2;
m=3;

var
coeffs:array[1..n,1..m] of integer;
i,j:integer;

begin
clrscr;
for i:=1 to n do
for j:=1 to m do
readln(coeffs[i,j]);

write('Vect p = ');

write('i*(',coeffs[1,2]*coeffs[2,3]-coeffs[1,3]*coeffs[2,2],')+');
write('j*(',coeffs[1,1]*coeffs[2,3]-coeffs[1,3]*coeffs[2,1],')+');
write('k*(',coeffs[1,1]*coeffs[2,2]-coeffs[2,1]*coeffs[1,2],')');

readln;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.