Определить, принадлежит ли точка с координатами (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;
}

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

  1. В начале определяются две функции: Parabole, которая вычисляет значение параболы x^2, и UpperCircle, которая вычисляет верхнюю часть окружности x^2 + y^2 = 1.
  2. Затем определена функция Yes, которая принимает координаты точки (x, y) и проверяет, принадлежит ли точка единичной окружности с центром в начале координат. Если расстояние от точки до окружности меньше заданной точности epsilon, то функция возвращает 1, иначе 0.
  3. В функции main задаются начальные значения x и step, а также выводится шаблон вывода.
  4. Затем в цикле while происходит обход всех точек на параболе x = [-2; +2] с заданным шагом step.
  5. Для каждой точки вычисляется значение параболы Parabole(x), затем вызывается функция Yes, которая проверяет, принадлежит ли точка единичной окружности. Результат проверки выводится на экран.
  6. В конце программы ожидается нажатие клавиши для выхода.

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

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