Определить, попадает ли точка в закрашенную область - Pascal
Формулировка задачи:
Дана заштрихованная область и точка с координатами (x,y). Написать программу, определяющую, попадает ли точка в область. Результат вывести в виде текстового сообщения.
Пример:
if (sqr(x)+sqr(y)<=0) or (X<=0) and (y<=0) and (y>=-x-2) then writeln('Точка попадает в область') else writeln('Точка не попадает в область');
Решение задачи: «Определить, попадает ли точка в закрашенную область»
textual
Листинг программы
var r,x,y:real; begin write('введите радиус R= '); readln(r); writeln('Введите координаты точки x,y'); readln(x,y); if (x*y<=0)and(abs(x)<=r)and(sqr(abs(x)-r)+sqr(y)<=r*r) then write('принадлежит')else write('не принадлежит') end.
Объяснение кода листинга программы
- Создается переменная
r
, которая предназначена для хранения радиуса. - Выводится сообщение
введите радиус R=
и считывается значение радиуса с помощью функцииreadln()
. - Выводится сообщение
Введите координаты точки x,y
и считываются значения координатx
иy
с помощью функцииreadln()
. - Вычисляется значение
x*y
. - Вычисляется значение
abs(x)
. - Вычисляется значение
sqr(abs(x))
. - Вычисляется значение
sqr(abs(x))-sqr(r)
. - Вычисляется значение
sqr(y)
. - Вычисляется значение
sqr(y)<=r*r
. - Проверяется условие
x*y<=0
иabs(x)<=r
. - Проверяется условие
sqr(abs(x))-sqr(r)<=r*r
. - Если все условия выполняются, выводится сообщение
принадлежит
. - Если хотя бы одно из условий не выполняется, выводится сообщение
не принадлежит
.