Проверка попадания точки в область на плоскости - C (СИ) (72418)

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

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

Всем привет, помогите составить программу для лабораторной, не справляюсь. 1-я часть готова ============== Для функции (на картинке 1) составить программу построения таблицы значений функции, состоящую из n строк при изменении аргументов от A до B. В каждой строке выводить значение аргумента x и соответствующие ему значение функции y в форматированном виде с 4 знаками после запятой.В конце таблицы отдельной строкой вывести среднее арифметическое всех значений функции. ============== Осталось только это доп. задание: На выбор одно из двух: 1) Кроме того, программа должна определить, сколько точек с координатами( x,y) из полученной таблицы попадает внутрь области, ограниченной фигурой( на картинке 2). 2) Кроме того, программа должна определить, сколько точек с координатами (x,y) из полученной таблицы попадает внутрь области, ограниченной фигурой (-10,-6),(-10,4),(0,4),(0,-6). ============================== Вот 1-я часть:
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
 
#define N 2
#define A 1
#define B 9
#define STEP 1
 
main()
{
 
double x,y;
double e=2.1718281828;
int numbers=0;
double sum=0;
double arif=0;
 
x=A;
 
for(int i=0; i < N && fabs(x) < B; i++)
{     
y=x*exp(x)+2*sin(x)-sqrt(fabs(x*x*x-x*x));
printf("X is %f\tY is %.4f\n",x,y);
numbers++;
sum+=y;
x+=STEP;
}
 
arif=(double)sum/numbers;
printf("Arifm: %f",arif);
 
getch();
}

int IsThere(double x, double y)
{
if(x > 0)
{
if(y < 1 && y > 0)return 1;     
}
else if(x < 0)
{
if(sqrt(pow(x,2)+pow(y,2)) < 1)return 1;       
}
 
return 0; 
}

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

textual
Листинг программы
int IsThere(double x, double y)
{
   if ((x<0 && x>-1 && y>0 && y<1) ||
        (x>0 && y<0 && x*x+y*y < 1)) return 1;
   else return 0;
}

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

  1. Функция IsThere принимает два аргумента типа double - x и y.
  2. В функции используется условие, которое проверяет, попадает ли точка с координатами x и y в заданную область на плоскости.
  3. Условие состоит из двух частей, объединенных оператором || (логическое ИЛИ).
  4. Первая часть проверяет, что x меньше 0 и больше -1, а y больше 0 и меньше 1.
  5. Вторая часть проверяет, что x больше 0, а y меньше 0 и квадрат x плюс квадрат y меньше 1.
  6. Если условие выполняется, функция возвращает 1, иначе возвращает 0.
  7. Функция не использует циклы или другие функции, только базовые математические операции.
  8. Функция может быть использована для проверки, является ли точка в заданной области на плоскости, например, для определения, является ли точка внутри прямоугольника или вне его.
  9. Значения x и y должны быть числами типа double, чтобы обеспечить точность вычислений.
  10. Заданная область на плоскости определяется границами значений x и y, которые задаются в условии функции.
  11. Функция может быть вызвана с разными значениями x и y для проверки попадания точки в область.
  12. Функция не обрабатывает ошибки или исключения, предполагается, что аргументы x и y являются действительными числами.
  13. Функция может быть использована в других программах или скриптах для проверки попадания точек в область на плоскости.
  14. Код функции написан на языке C и использует только базовые конструкции языка, такие как условные операторы и операторы присваивания.
  15. Функция может быть оптимизирована для улучшения производительности, например, путем удаления избыточных проверок или использования более эффективных алгоритмов.
  16. Значения x и y могут быть получены из пользовательского ввода или из других частей программы для более сложной логики проверки.
  17. Функция может быть использована для определения, находится ли точка внутри заданной фигуры, такой как круг, треугольник или прямоугольник.
  18. Функция может быть использована для определения, находится ли точка внутри заданного диапазона значений x и y.
  19. Функция может быть использована для определения, находится ли точка внутри заданного угла или сектора плоскости.
  20. Функция может быть использована для определения, находится ли точка внутри заданного прямоугольного координатного пространства.

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

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