Определение принадлежности точки кругу с центром в начале координат

Задача

Вводятся координаты (x;y) точки и радиус круга (r). Определить принадлежит ли данная точка кругу, если его центр находится в начале координат.

Пояснение к задаче и алгоритм решения

Будем считать, что точка принадлежит кругу, если находится внутри его или на его окружности.

Из любой точки координатной плоскости можно провести отрезок к началу координат. Если длина этого отрезка больше радиуса круга, то точка лежит за пределами круга и, следовательно, не принадлежит ему. Если же отрезок, соединяющий точку и начало координат, меньше радиуса круга с центром в начале координат или равен ему, то точка будет принадлежать кругу.

Отрезок между любой точкой и нулевой точкой (началом координат) является гипотенузой прямоугольного треугольника, катеты которого равны значениям x и y координаты данной точки.

Таким образом задача сводится по-сути к двум действия:

  1. Нахождение длины отрезка между точкой и началом координат по теореме Пифагора (квадрат длины гипотенузы равен сумме квадратов длин катетов).
  2. Сравнению полученного значения с радиусом круга.

Исходный код на языке программирования Pascal

var x,y,r,h: real;
begin
    write('координаты точки: ');
    readln(x,y);
    write('радиус круга: ');
    readln(r);
    h := sqrt(x*x + y*y);
    if h > r then writeln('Точка не принадлежит кругу')
    else writeln('Точка принадлежит кругу');
end.

Пример(ы) выполнения программы на языке Pascal

координаты точки: -1 -2
радиус круга: 5
Точка принадлежит кругу

Исходный код на языке программирования C

#include <stdio.h>
#include <math.h>
main() {
    float x,y,r,h;
    printf("Координаты точки: ");
    scanf("%f%f", &x,&y);
    printf("Радиус круга: ");
    scanf("%f", &r);
    h = sqrt(x*x + y*y);
    printf("Гипотенуза равна %.2f. ", h);
    if (h > r) printf("Точка не принадлежит кругу.\n");
    else printf("Точка принадлежит кругу.\n");
}

Пример(ы) выполнения программы на языке C

Координаты точки: 4 5
Радиус круга: 10
Гипотенуза равна 6.40. Точка принадлежит кругу.

Особенности решения на языке программирования C

Для gcc компилировать с ключом -lm.

Исходный код на языке программирования Python

from math import sqrt
 
x = float(input("x="))
y = float(input("y="))
r = float(input("r="))
h = sqrt(x**2 + y**2)
print("Расстояние до точки от начала координат равно %.2f" % h)
if h > r:
    print("точка находится за пределами круга")
else:
    print("точка принадлежит кругу")

Пример(ы) выполнения программы на языке Python

x=10
y=-3
r=5
Расстояние до точки от начала координат равно 10.44
точка находится за пределами круга

Исходный код на языке программирования КуМир

алг точка_круг
нач
  вещ x,y,r,h
  вывод "Координаты точки: "
  ввод x,y
  вывод "Радиус круга: "
  ввод r
  h := sqrt(x**2 + y**2)
  если h > r то вывод "Не принадлежит"
   иначе вывод "Принадлежит"
  все
кон

Пример(ы) выполнения программы на языке КуМир

Координаты точки: 1.6 -2.1
Радиус круга: 4
Принадлежит

Исходный код на языке программирования Basic

input "x=", x
input "y=", y
input "r=", r
h = sqrt(x^2 + y^2)
if h > r then
        print "Не принадлежит"
else
        print "Принадлежит"
endif

Тема

Ветвления

Уровень сложности

Средний

Дата публикации