Определить, принадлежит ли точка с координатами (x, y) единичной окружности - C (СИ)
Формулировка задачи:
Всем привет. помогите понять задачу.
задача 1
Функции:
Описать логическую функцию Yes(x,y), которая определит, принадлежит ли точка с координатами (x,y) единичной окружности, центр которой совпадает с началом координат. Обратиться с координатами точек,
лежащими на параболе x=[-2;+2], шаг =0.5.
т.е. мне нужно задать окружность и параболу, и определить есть ли на промежутке x=[-2;+2], шаг =0.5. общие точки?
Решение задачи: «Определить, принадлежит ли точка с координатами (x, y) единичной окружности»
textual
Листинг программы
- /*Описать логическую функцию Yes(x,y), которая определит, принадлежит ли точка с координатами (x,y) единичной окружности,
- центр которой совпадает с началом координат. Обратиться с координатами точек, лежащими на параболе x=[-2;+2], шаг =0.5.
- */
- #include <stdio.h>
- #include <math.h>
- /*парабола у = x^2*/
- double Parabole (double x)
- { return x*x;
- }
- /*верхняя часть окружности x^2 + y^2 = 1*/
- double UpperCircle (double x)
- { return sqrt(1 - x*x);
- }
- /*функция Yes*/
- int Yes (double x, double y)
- { double epsilon = 0.05; /*точность для у*/
- if (fabs (y - UpperCircle (x)) < epsilon)
- return 1;
- return 0;
- }
- int main()
- { double x = -2., step = 0.05; /*шаг для х*/
- printf("x\t\ty\tYes/No as 1 or 0\n");
- while (x < 2.05)
- { printf("%10.2lf%10.2lf%10d\n", x, Parabole(x), Yes(x, Parabole(x)));
- x += step;
- }
- getchar();
- return 0;
- }
Объяснение кода листинга программы
- В начале определяются две функции:
Parabole
, которая вычисляет значение параболыx^2
, иUpperCircle
, которая вычисляет верхнюю часть окружностиx^2 + y^2 = 1
. - Затем определена функция
Yes
, которая принимает координаты точки(x, y)
и проверяет, принадлежит ли точка единичной окружности с центром в начале координат. Если расстояние от точки до окружности меньше заданной точностиepsilon
, то функция возвращает1
, иначе0
. - В функции
main
задаются начальные значенияx
иstep
, а также выводится шаблон вывода. - Затем в цикле
while
происходит обход всех точек на параболеx = [-2; +2]
с заданным шагомstep
. - Для каждой точки вычисляется значение параболы
Parabole(x)
, затем вызывается функцияYes
, которая проверяет, принадлежит ли точка единичной окружности. Результат проверки выводится на экран. - В конце программы ожидается нажатие клавиши для выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д