Попадание точки в область - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Даны действительные числа x, a, b.Определите, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости (с контролем ввода по переменной b). Нужна помощь.Вроде бы написал программу, но постоянно выходит значение "точка не принадлежит", уже голову сломал, где ошибка.
Листинг программы
  1. program azaza;
  2. label 10;
  3. var b,x,y:real;begin
  4. {Ввод переменной b с контролем}
  5. 10:writeln('Введите b');
  6. readln(b);
  7. if (b<=0) then begin writeln('Некоректное значение b,повторите ввод');goto 10;end;
  8. {Ввод переменных x,y - координаты точки}
  9. writeln ('Введите x,y');
  10. readln(x,y);
  11. {Проверка на принадлежность точки заштрихованной области}
  12. 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');
  13. readln;
  14. end.

Решение задачи: «Попадание точки в область»

textual
Листинг программы
  1. program azaza;
  2. var a,b,x,y:real;
  3. begin
  4. {Ввод переменных a,b с контролем a=B b=b}
  5. repeat
  6. write('Введите b>0 b=');
  7. readln(b);
  8. until b>0;
  9. repeat
  10. write('Введите B>=b B=');
  11. readln(a);
  12. until a>=b;
  13. {Ввод переменных x,y - координаты точки}
  14. writeln ('Введите x,y');
  15. readln(x,y);
  16. {Проверка на принадлежность точки заштрихованной области}
  17. If (sqr(x)+sqr(y)<=sqr(a)) and (abs(y)+abs(x)>=b) then
  18. writeln ('tochka  prinadlejit') else writeln ('tochka ne prinadlejit');
  19. readln;
  20. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы