Попадание точки в область - Free Pascal
Формулировка задачи:
Даны действительные числа x, a, b.Определите, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости (с контролем ввода по переменной b).
Нужна помощь.Вроде бы написал программу, но постоянно выходит значение "точка не принадлежит", уже голову сломал, где ошибка.
program azaza; label 10; var b,x,y:real;begin {Ввод переменной b с контролем} 10:writeln('Введите b'); readln(b); if (b<=0) then begin writeln('Некоректное значение b,повторите ввод');goto 10;end; {Ввод переменных x,y - координаты точки} writeln ('Введите x,y'); readln(x,y); {Проверка на принадлежность точки заштрихованной области} If (sqr(x)+sqr(y)<=sqr(b)) and (y>=x+(b/2)) and (y>=(b/2)-x) and (y<=-x-(b/2)) then writeln ('tochka ne prinadlejit') else writeln ('tochka prinadlejit'); readln; end.
Решение задачи: «Попадание точки в область»
textual
Листинг программы
program azaza; var a,b,x,y:real; begin {Ввод переменных a,b с контролем a=B b=b} repeat write('Введите b>0 b='); readln(b); until b>0; repeat write('Введите B>=b B='); readln(a); until a>=b; {Ввод переменных x,y - координаты точки} writeln ('Введите x,y'); readln(x,y); {Проверка на принадлежность точки заштрихованной области} If (sqr(x)+sqr(y)<=sqr(a)) and (abs(y)+abs(x)>=b) then writeln ('tochka prinadlejit') else writeln ('tochka ne prinadlejit'); readln; end.
Объяснение кода листинга программы
- Объявлены четыре переменные: a, b, x, y (строки 6-9)
- Пользователю предлагается ввести значение переменной b,
- пока b не будет больше 0 (строка 12-20)
- Затем пользователю предлагается ввести значение переменной a,
- пока a не будет больше или равно b (строка 12-20)
- Пользователю предлагается ввести координаты точки (строка 24)
- Происходит проверка принадлежности точки заштрихованной области,
- вычисляется квадрат расстояния от точки до вертикальной оси (по x),
- вычисляется квадрат расстояния от точки до горизонтальной оси (по y),
- вычисляется квадрат расстояния от точки до линии b=a (по x и y),
- сравниваются полученные значения с квадратом расстояния от точки до линии b=a,
- если условие выполняется, выводится сообщение
tochka prinadlejit
, иначе выводится сообщениеtochka ne prinadlejit
(строки 28-37)
- Программа ожидает ввода с клавиатуры, чтобы пользователь мог увидеть результат (строка 40)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д