Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2015, 22:33   #1
МАРИЯ27
 
Аватар для МАРИЯ27
 
Регистрация: 29.03.2015
Сообщений: 3
По умолчанию найти площадь треугольника ( с векторами)

помогите ,пожалуйста,написать программу которая вычисляет площадь треугольника образованного двумя векторами произвольной размерности,заранее всем спасибо)
МАРИЯ27 вне форума Ответить с цитированием
Старый 29.03.2015, 23:26   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Вам что именно непонятно ?
Если математика непонятна - то вам на форум любителей математики.
Если Паскаль непонятен - то напишите нам решение в виде математических формул, а как в Паскаль перевести - подскажем.
А если вообще ничего непонятно, и вообще нехочецца учицца, то вам - во фриланс, там сделают , но небезвозмедно.
type_Oleg вне форума Ответить с цитированием
Старый 29.03.2015, 23:41   #3
МАРИЯ27
 
Аватар для МАРИЯ27
 
Регистрация: 29.03.2015
Сообщений: 3
По умолчанию

нет,с математической точки зрения мне все понятно ,площадь треугольника находится по формуле :S=1/2 |axb|,где ахb-векторное произведение векторов.а вот с точки зрения Паскаля не очень,вернее написать программу по нахождению площади треугольника со сторонами а и б я смогла ,а вот как туда впихнуть произвольные вектора что-то не соображу

ой,извиняюсь,там не был нужен знак модуля и находится векторное произведение по формуле :axb=|i j k|
|x1y1z1|-это все один определитель)
|x2y2z2|

Последний раз редактировалось Stilet; 30.03.2015 в 06:42.
МАРИЯ27 вне форума Ответить с цитированием
Старый 30.03.2015, 00:04   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от МАРИЯ27 Посмотреть сообщение
ой,извиняюсь,там не был нужен знак модуля и находится векторное произведение по формуле :axb=|i j k|
|x1y1z1|-это все один определитель)
|x2y2z2|
И в первой строке этой матрицы ещё i j k
Вадим Мошев вне форума Ответить с цитированием
Старый 30.03.2015, 01:13   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Вот так, например можно. Трехмерно. Если на плоскости, то просто вводить z=0
Код:
program STrian;

{$APPTYPE CONSOLE}     //  это выбросить, если не Delphi
type tVector = record
 x,y,z:Double;
end;

function ProVectVec(v1,v2:tVector):tVector;
begin
 ProVectVec.x:=v1.y*v2.z-v1.z*v2.y;
 ProVectVec.y:=v1.z*v2.x-v1.x*v2.z;
 ProVectVec.z:=v1.x*v2.y-v1.y*v2.x;
end;

function ModVect(v:tVector):Double;
begin
 ModVect:=Sqrt(v.x*v.x+v.y*v.y+v.z*v.z);  
end;

var vect1,vect2:tVector;
begin
 vect1.x:=1;
 vect1.y:=2;
 vect1.z:=3;
 vect2.x:=4;
 vect2.y:=5;
 vect2.z:=6;  // * это для примера, здесь сами пишите, как вводить
 WriteLn('S = ',0.5*ModVect(ProVectVec(vect1,vect2)));
 ReadLn;
end.
Работает, проверил
type_Oleg вне форума Ответить с цитированием
Старый 30.03.2015, 01:31   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Если на плоскости, то просто вводить z=0
Насколько я знаю, векторное произведение неопределено для плоскости.
Результирующий вектор при векторном произведении перпендикулярен множителям-векторам
Вадим Мошев вне форума Ответить с цитированием
Старый 30.03.2015, 02:09   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Вадим Мошев, я имел в виду, что в задании сказано .. двумя векторами произвольной размерности
Я так понял, либо 2D (координаты только X,Y), либо 3D (координаты X,Y,Z) .
То есть не надо программу переделывать .
Главное, что тип tVector - трехмерный.

А то, что векторное произведение - вектор, торчащий к плоскости сомножителей - это понятно. Но он просто как промежуточное звено в вычислениях.

PS Я еще подумал - может вообще 4-х, и 5- и вообще n- мерное пространство ей надо?
Надеюсь, что нет.
type_Oleg вне форума Ответить с цитированием
Старый 30.03.2015, 09:29   #8
МАРИЯ27
 
Аватар для МАРИЯ27
 
Регистрация: 29.03.2015
Сообщений: 3
По умолчанию

Спасибо большое, очень выручили))
МАРИЯ27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача: Даны вершины треугольника A(3;-1;4), B(2;4;5), C(4;4;5). Найти его площадь oksi-xd Паскаль, Turbo Pascal, PascalABC.NET 4 14.11.2014 09:28
Дано 3 точки своими координатами х,у. Будет ли они вершинами треугольника. Если да - найти периметр и площадь треугольника Arhi555 Паскаль, Turbo Pascal, PascalABC.NET 2 11.09.2012 17:46
Найти площадь, периметр и угол треугольника по длинам трёх его сторон ( Delphi 7 ) CONDOR* Помощь студентам 1 15.05.2012 18:26
найти площадь треугольника, используя функцию ele29 Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2012 16:51
Найти площадь треугольника (по разным исходным данным) [на Delphi] gylayko Помощь студентам 17 14.09.2011 16:41