Поиск точек графика функции на заданном интервале - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д