Поиск точек графика функции на заданном интервале - C (СИ)
Формулировка задачи:
Смысл программы: поиск точек графика функции y=(x^0.33)-(x+1)^0.33 на интервале.
Вопрос: почему начиная с наименьшего значения отрезка значений икс (сказанул) до нуля программа выдает результат типа: -1.IND0000000000. После нуля значения идут вразумительные значения
Я использовал float, но когда использовал double была также фигня
#include <conio.h>
#include <stdio.h>
#include <math.h>
int main()
{
int i;
float x=-1.95;
float y;
for(i=0;i<50;i++)
{
x+=0.05;
float y=pow(x,0.33)-pow((x+1),0.33);
printf("x = %5.4f\ny = %20.14f\n",x,y);
}
x=1;
y=pow(x,(1/3))-pow((x+1),(1/3));
printf("x = %5.4f\ny = %15.14f\n",x,y);
getch();
return 0;
}Решение задачи: «Поиск точек графика функции на заданном интервале»
textual
Листинг программы
#include <conio.h>
#include <stdio.h>
#include <math.h>
int main()
{
int i;
double x=-1.95;
for(i=0;i<50;i++)
{
x+=0.05;
if (x<-1)
{
double y=-(pow(-x,(1.0/3.0))-pow(-(x+1),(1.0/3.0)));
printf("x = %g\ny = %g\n",x,y);
}
else
{
if (x<0 && x>-1)
{
double y=-pow(-x,(1.0/3.0))-pow((x+1),(1.0/3.0));
printf("x = %g\ny = %g\n",x,y);
}
else
{
if (x>0)
{
double y=pow(x,(1.0/3.0))-pow((x+1),(1.0/3.0));
printf("x = %g\ny = %g\n",x,y);
}
else
{
if (x==0)
{
double y=pow(x,(1.0/3.0))-pow((x+1),(1.0/3.0));
printf("x = %g\ny = %g\n",x,y);
}
}
}
}
}
getch();
return 0;
}
Объяснение кода листинга программы
- В начале кода подключаются необходимые библиотеки: conio.h для работы с консолью, printf для вывода данных и math.h для использования математических функций.
- Затем определена переменная i типа int, которая будет использоваться в цикле.
- Далее определена переменная x типа double со значением -1.95.
- Следующий блок кода - это цикл for, который выполняется от 0 до 49 раз (для i от 0 до 49).
- Внутри цикла переменная x увеличивается на 0.05.
- Затем проверяется условие x<-1. Если оно истинно, то выполняется следующий блок кода.
- Внутри этого блока вычисляется значение y и выводится на экран.
- Если условие x<-1 ложно, то проверяется условие x<0 && x>-1.
- Если это условие истинно, то вычисляется значение y и выводится на экран.
- Если и это условие ложно, то проверяется условие x>0.
- Если это условие истинно, то вычисляется значение y и выводится на экран.
- Если и это условие ложно, то проверяется условие x==0.
- Если это условие истинно, то вычисляется значение y и выводится на экран.
- Если и это условие ложно, то программа продолжает работу с начала цикла.
- После завершения цикла программа выводит на экран значение x и y.
- В конце кода вызывается функция getch() для получения значения от пользователя и return 0 для завершения программы.
- Значения переменных x и y вычисляются с помощью математических функций.
- Условие x<-1 проверяет, находится ли значение x за пределами допустимого интервала.
- Условие x<0 && x>-1 проверяет, находится ли значение x в интервале от -1 до 0.
- Условие x>0 проверяет, находится ли значение x в интервале от 0 до +1.