Определить, принадлежит ли точка заданной области - Pascal ABC (12482)
Формулировка задачи:
нужная область-заштрихованная.
радиус равен 4
Решение задачи: «Определить, принадлежит ли точка заданной области»
textual
Листинг программы
var r,x,y:real;
f1,f2,f3,f4:boolean;
begin
repeat
write('Введите радиус r=');
readln(r);
until r>0;
writeln('Введите координаты точки');
readln(x,y);
f1:=sqr(x+r)+y*y<=r*r;
f2:=x*x+y*y>=r*r;
f3:=x*x+y*y<=r*r;
f4:=sqr(x-r)+y*y<=r*r;
if(f1 and f2)or(f4 and f2)
or(f3 and not f1 and not f4)
then write('Принадлежит') else write('Не принадлежит');
end.
Объяснение кода листинга программы
- Создаются переменные r, x, y типа real и переменные f1, f2, f3, f4 типа boolean.
- В цикле repeat-until запрашивается радиус r и координаты точки x, y.
- Вычисляются значения f1, f2, f3, f4 согласно условию задачи.
- Проверяется условие if: если выполняется хотя бы одно из условий (f1 and f2), (f4 and f2), (f3 and not f1 and not f4), то выводится сообщение
Принадлежит, иначе выводится сообщениеНе принадлежит. - Цикл повторяется до тех пор, пока радиус r больше 0.