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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 19:40   #1
Besidnuk
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 17
По умолчанию кординатна прямая (pascal)

нужно написать программу какая бы проверяла принадлежит ли точка С из кординатами (х,у) заштрихованной области. Подскажите пожалуйста алгоритм за которым это можно бы было определить.

Изображения
Тип файла: jpg Безымянный.jpg (8.5 Кб, 166 просмотров)
Besidnuk вне форума Ответить с цитированием
Старый 09.12.2010, 04:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

если (х от х1, точки пересечения, до 1) и (у от у1, полученного из уравнения нижней прямой, до у2, полученного из верхней прямой), то принадлежит

Последний раз редактировалось p51x; 09.12.2010 в 04:07.
p51x вне форума Ответить с цитированием
Старый 09.12.2010, 10:39   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

три уравнения прямых (в форме с угловым коэффициентом):
y1 = -1*x - 1
y2 = x
y3 = 2x-1

подставляете координату X Вашей точки C в эти уравнения, получаете три значения Yc1, Yc2, Yc3
точка C принадлежит к заштрихованной области,
если её координата Y делает истинным условие:
(Y >= Yс1) and (Y <= Yс2) and (Y >= Yс3)

p.s. разумеется, вместо трёх переменных Yc можно написать сразу уравнения.
я просто подробно расписал, чтобы было понятнее и нагляднее...

Последний раз редактировалось Serge_Bliznykov; 09.12.2010 в 19:35.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.12.2010, 18:14   #4
Besidnuk
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 17
По умолчанию

Спасибо, вроде получилось.
Serge_Bliznykov, как я понял здесь - "Y < Yс3" у вас опечатка, тут должно быть y>=y3

Код:
var x,y,y1,y2,y3:real;
begin
readln(x,y);

y1:=-1*x-1;
y2:=x;
y3:=2*x-1;

if (y>=y1) and (y<=y2) and (y>=y3) then write('Належить') else write('Не належить');
readln;
end.

Последний раз редактировалось Besidnuk; 09.12.2010 в 18:34.
Besidnuk вне форума Ответить с цитированием
Старый 09.12.2010, 19:34   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Y < Yс3" у вас опечатка, тут должно быть y>=y3
точно, опечатка! (сейчас исправлю в том сообщении опечатку!)
Молодец, пять баллов за понимание и внимательность!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прямая и Окружность Ukeeler Помощь студентам 5 02.11.2010 17:50
Прямая VirusOfLove Помощь студентам 8 05.12.2009 09:37
Прямая линия serres Общие вопросы Delphi 1 04.11.2007 18:33
Прямая в пространстве Neuros1s Общие вопросы Delphi 12 29.06.2007 00:06