Попадание точки в область - 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.

Объяснение кода листинга программы

  1. Объявлены четыре переменные: a, b, x, y (строки 6-9)
  2. Пользователю предлагается ввести значение переменной b,
    • пока b не будет больше 0 (строка 12-20)
  3. Затем пользователю предлагается ввести значение переменной a,
    • пока a не будет больше или равно b (строка 12-20)
  4. Пользователю предлагается ввести координаты точки (строка 24)
  5. Происходит проверка принадлежности точки заштрихованной области,
    • вычисляется квадрат расстояния от точки до вертикальной оси (по x),
    • вычисляется квадрат расстояния от точки до горизонтальной оси (по y),
    • вычисляется квадрат расстояния от точки до линии b=a (по x и y),
    • сравниваются полученные значения с квадратом расстояния от точки до линии b=a,
    • если условие выполняется, выводится сообщение tochka prinadlejit, иначе выводится сообщение tochka ne prinadlejit (строки 28-37)
  6. Программа ожидает ввода с клавиатуры, чтобы пользователь мог увидеть результат (строка 40)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы