Определить, принадлежит ли точка с координатами (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
, которая проверяет, принадлежит ли точка единичной окружности. Результат проверки выводится на экран. - В конце программы ожидается нажатие клавиши для выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д