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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2012, 21:55   #1
ОленькаФуркад
 
Регистрация: 20.12.2012
Сообщений: 3
Восклицание программирование в Pascale

Здравствуйте)тут задали написать программу в паскале, но я не могу понять с чего начинать и вообще как это делать??люди добрые,очень вас прошу, помогите пожалуйста...задача такая: даны четыре точки: A(x1,y1,z1), B(x2,y2,z2), C(x3,y3,z3), D(x4,y4,z4). Выяснить принадлежит ли точка D плоскости ABC. если Вам не составит труда, помогите пожалуйстааа!!!
ОленькаФуркад вне форума Ответить с цитированием
Старый 20.12.2012, 22:09   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Сначала составляете уравнение плоскости (см вложение).
Подставляете координаты точки D в этот определитель и считаете - если 0, то принадлежит, иначе не принадлежит.
Вы можете сразу расписать определитель и проверять его на равенство 0 (лучше проверять, чтобы модуль был меньше некоторой малой величины eps = 0,0001).
Изображения
Тип файла: jpg 3.jpg (46.9 Кб, 92 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.12.2012, 22:34   #3
ОленькаФуркад
 
Регистрация: 20.12.2012
Сообщений: 3
По умолчанию

а в программе как это все записать?
ОленькаФуркад вне форума Ответить с цитированием
Старый 20.12.2012, 22:42   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
if abs((x4-x1) * (y2-y1) * (z3-z1)
     + (x3-x1) * (y4-y1) * (z2-z1)
     + (x2-x1) * (y3-y1) * (z4-z1)
     - (x3-x1) * (y2-y1) * (z4-z1)
     - (x4-x1) * (y3-y1) * (z2-z1)
     - (x2-x1) * (y4-y1) * (z3-z1)) < eps then
  writeln('Prinadlezit')
else
  writeln('Ne prinadlezit');
Ввод и объявление переменных допишите сами.
(eps объявите в const)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.12.2012, 23:08   #5
ОленькаФуркад
 
Регистрация: 20.12.2012
Сообщений: 3
По умолчанию

буду пробывать.просто я понятия не имею как тут и что вводить
ОленькаФуркад вне форума Ответить с цитированием
Старый 20.12.2012, 23:17   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Вам нужны координаты 4 точек.
Можете их считывать в те переменные, что использовал я (которые даны), либо создать массивы x, y, z на 4 элемента каждый и заменить в моем коде x1 на x[1] и т.д., либо создать массив 4 на 3 (4 строки с координатами), но тогда будет сложнее заменить значения в коде выше (например, в массиве в строке идут x, y, z, тогда x1 это a[1,1], y1 - a[1,2], z1 - a[1,3], x2 - a[2,1] и т.д.).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascale ddeman666 Помощь студентам 0 14.06.2010 19:27
pascale ddeman666 Помощь студентам 3 16.05.2010 08:43
pascale ddeman666 Помощь студентам 1 13.05.2010 14:50