Поиск точек графика функции на заданном интервале - 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;
}

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

  1. В начале кода подключаются необходимые библиотеки: conio.h для работы с консолью, printf для вывода данных и math.h для использования математических функций.
  2. Затем определена переменная i типа int, которая будет использоваться в цикле.
  3. Далее определена переменная x типа double со значением -1.95.
  4. Следующий блок кода - это цикл for, который выполняется от 0 до 49 раз (для i от 0 до 49).
  5. Внутри цикла переменная x увеличивается на 0.05.
  6. Затем проверяется условие x<-1. Если оно истинно, то выполняется следующий блок кода.
  7. Внутри этого блока вычисляется значение y и выводится на экран.
  8. Если условие x<-1 ложно, то проверяется условие x<0 && x>-1.
  9. Если это условие истинно, то вычисляется значение y и выводится на экран.
  10. Если и это условие ложно, то проверяется условие x>0.
  11. Если это условие истинно, то вычисляется значение y и выводится на экран.
  12. Если и это условие ложно, то проверяется условие x==0.
  13. Если это условие истинно, то вычисляется значение y и выводится на экран.
  14. Если и это условие ложно, то программа продолжает работу с начала цикла.
  15. После завершения цикла программа выводит на экран значение x и y.
  16. В конце кода вызывается функция getch() для получения значения от пользователя и return 0 для завершения программы.
  17. Значения переменных x и y вычисляются с помощью математических функций.
  18. Условие x<-1 проверяет, находится ли значение x за пределами допустимого интервала.
  19. Условие x<0 && x>-1 проверяет, находится ли значение x в интервале от -1 до 0.
  20. Условие x>0 проверяет, находится ли значение x в интервале от 0 до +1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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