Проверить попадает ли введенное значение в интервал и яляется ли оно точкой максимума для заданной функции - C (СИ)
Формулировка задачи:
double x
х мы вводим (задача с точками)
Есть sin(x)/pow(x,2) - функция
есть промежуток от 0.2 до 2.5
0.2 --- 198 --- 2.5 = 200 точек
между 0.2 и 2.5 есть 198 точек и нам нужно вызначить попадает ли наш х в промежуток 0.2-2.5 если да то выяснить есть ли он максимальным .
извините за русский !
Решение задачи: «Проверить попадает ли введенное значение в интервал и яляется ли оно точкой максимума для заданной функции»
textual
Листинг программы
double x;
cin>>x;
if(x<0.2 || x>2.5)
cout<<"Точка "<<x<<"Не попадает в интервал [0.2;2.5]";
else
{
double y[200];
for(int i=0;i<200;i++)
{
double delta=(2.5-0.2)/199.;
double xi=0.2+i*delta;
y[i]=sin(xi)/(xi*xi); // табулирование функции
}
int max=0;
for(int i=1;i<200;i++)
if(y[i]>y[max]) // поиск точки с максимальным значением
max=i;
for(int i=0;i<200;i++)
{
double delta=(2.5-0.2)/199.
double xi=0.2+i*delta;
if(x<=xi) // поиск точки, ближайшей к x
{
if( abs(i-max)<=1)
cout<<"Точка "<<x<<" попала в максимум\n";
else
cout<<"Точка "<<x<<" не попала в максимум\n";
break;
}
}
}
Объяснение кода листинга программы
В этом коде:
- Объявляется переменная типа double x, в которую считывается значение с помощью функции cin.
- С помощью условного оператора if проверяется, попадает ли значение x в интервал [0.2; 2.5]. Если нет, то выводится сообщение об этом.
- В противном случае (когда x попадает в интервал), создается массив y типа double размером 200, в который табулируется функция sin(xi)/(xi*xi), где xi - это значения от 0.2 до 2.5 с шагом 0.001.
- Затем ищется точка с максимальным значением функции в массиве y с помощью цикла for и условного оператора if.
- После этого в цикле for проверяется, попадает ли значение x в интервал от текущей точки до следующей, и если да, и эта точка является точкой максимума, то выводится сообщение о том, что x попала в максимум.
- Если же в ходе проверки будет обнаружена точка, не являющаяся точкой максимума, то выводится сообщение о том, что x не попала в максимум.