Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Ограниченная область

Автор: Tribunal 6.06.2006 10:52

программа должна проверять,принадлежит ли точка заданной области.
график на рисунке ниже....почему программа всегда говорит,
что точка не принадлежит области?

write(' tochka x=');read(x1);
write (' y=');read(y1);
if ((x1>-a) or (x1=-a)) and ((y1>-b) or (y1=-b)) and
((x1<-sqrt(a*a-y1*y1)) or (x1=-sqrt(a*a-y1*y1))) and
((x1<sqrt(a*a-y1*y1))or (x1=sqrt(a*a-y1*y1))) and
((y1>b/a*x1-b) or (y1=b/a*x1-b))
then writeln('Tochka prinadlejit oblasti')
else writeln('Tochka ne prinadlejit oblasti');



Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: volvo 6.06.2006 12:10

А так:

if
((y >= 0) and (sqr(x)+sqr(y) <= sqr(a))) or
(((y < 0) and (y > -b)) and ((x <= 0) and (x > -a))) or
(((x > 0) and (y < 0)) and (3*x - 2*y <= 6)) then writeln('yes')
else writeln('no');
?

Автор: Tribunal 6.06.2006 13:44

а вот здесь

3*x - 2*y <= 6

имелось в виду bx-ay=ab...то бишь уравнение прямой в отрезках?

Автор: volvo 6.06.2006 13:50

Да, имелось в виду

(b*x - a*y <= a*b)

Я просто попробовал подставить конкретные значения, и так и оставил smile.gif

Автор: Tribunal 6.06.2006 15:58

Цитата(volvo @ 6.06.2006 16:50) *

Я просто попробовал подставить конкретные значения, и так и оставил smile.gif

ясно=)