Проверка попадания точки в область на плоскости - 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;
- }
Объяснение кода листинга программы
- Функция
IsThere
принимает два аргумента типаdouble
-x
иy
. - В функции используется условие, которое проверяет, попадает ли точка с координатами
x
иy
в заданную область на плоскости. - Условие состоит из двух частей, объединенных оператором
||
(логическое ИЛИ). - Первая часть проверяет, что
x
меньше 0 и больше -1, аy
больше 0 и меньше 1. - Вторая часть проверяет, что
x
больше 0, аy
меньше 0 и квадратx
плюс квадратy
меньше 1. - Если условие выполняется, функция возвращает 1, иначе возвращает 0.
- Функция не использует циклы или другие функции, только базовые математические операции.
- Функция может быть использована для проверки, является ли точка в заданной области на плоскости, например, для определения, является ли точка внутри прямоугольника или вне его.
- Значения
x
иy
должны быть числами типаdouble
, чтобы обеспечить точность вычислений. - Заданная область на плоскости определяется границами значений
x
иy
, которые задаются в условии функции. - Функция может быть вызвана с разными значениями
x
иy
для проверки попадания точки в область. - Функция не обрабатывает ошибки или исключения, предполагается, что аргументы
x
иy
являются действительными числами. - Функция может быть использована в других программах или скриптах для проверки попадания точек в область на плоскости.
- Код функции написан на языке C и использует только базовые конструкции языка, такие как условные операторы и операторы присваивания.
- Функция может быть оптимизирована для улучшения производительности, например, путем удаления избыточных проверок или использования более эффективных алгоритмов.
- Значения
x
иy
могут быть получены из пользовательского ввода или из других частей программы для более сложной логики проверки. - Функция может быть использована для определения, находится ли точка внутри заданной фигуры, такой как круг, треугольник или прямоугольник.
- Функция может быть использована для определения, находится ли точка внутри заданного диапазона значений
x
иy
. - Функция может быть использована для определения, находится ли точка внутри заданного угла или сектора плоскости.
- Функция может быть использована для определения, находится ли точка внутри заданного прямоугольного координатного пространства.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д