Код не правильно считает функцию ? Что изменить? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Код не правильно считает пример?Что изменить? http://pixs.ru/showimage/wFpMc3XPGg_7286880_19609299.jpg http://pixs.ru/showimage/wFpMc3XPGg_9259884_19609307.jpg
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
main(int argc, char * argv[])
{
double h,x,t,ep,eps,fun,Pi;
int n;
puts("Программа составления таблицы функции,");
puts("заданной на интервале [0.1;0.8] с шагом 0.1");
puts(" _______________________________________________________________ ");
puts("|         |                            |                        |");
puts("|    x    |    (1/2) - (Pi/4)*|sinx|   |   (cos2nx)/(4n^2 - 1)  |");
puts("|_________|____________________________|________________________|");
x=0;
h=0.1;
eps=0.00001;
ep=eps-0.00001;
Pi=3.14;
goto gohere;
while(x<=0.8)
    {
    t=x;
    n=0;
    while(fabs((1/2)-(Pi/4)*abs(sin(x)))>=ep)
        {
        t=(1/2)-(Pi/4)*abs(sin(x));
        fun=cos(2*n*x)/(4*pow(n,2)-1);
        if(t!=1)
        {
            if(t<eps)
            {
            printf("|%lf | %lf | %lf |\n", x, t, fun);
            goto gohere;
            }
            else
            printf("|%lf | %lf | %lf |\n", x, t, fun);
        }
        n=n+1;
        }
        gohere:
    x=x+h;
    }
puts(" _______________________________");   
}

Решение задачи: «Код не правильно считает функцию ? Что изменить?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double fabs(double);
 
int main()
{
    system("chcp 1251>NUL");
    double h, x, t, ep, eps, Pi, y1, y2, chlen;
    int n;
    puts("Программа составления таблицы функции,");
    puts("заданной на интервале [0.1;0.8] с шагом 0.1");
    puts(" <br> ");
    puts("|         |                            |                        |");
    puts("|    x    |    (1/2) - (Pi/4)*|sinx|   |   (cos2nx)/(4n^2 - 1)  |");
    puts("|<br>|<br>|<br>|");
    x = 0;
    h = 0.1;
    eps = 0.00001;
    //ep = eps - 0.00001;
    Pi = 3.14;
    while (x <= 0.8)
    {
        n = 1;
        y2 = 0;
        y1 = 1.0 / 2 - (Pi / 4)*fabs(sin(x));
        do
        {
            chlen = cos(2 * n*x) / (4.0 * n*n - 1);
            y2 += chlen;
            n++;
        } while (chlen >= eps);
        printf("    %.1lf\t\t\t%lf\t\t%lf\n", x, y1, y2);
        x += h;
    }
    puts(" <br> \n");
}

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

  1. В начале кода подключаются необходимые библиотеки: stdio.h, stdlib.h и math.h.
  2. Определяется функция fabs, которая используется в коде.
  3. В функции main() задается задача программы и выводится приветствие.
  4. В цикле while происходит расчет значений функции на интервале [0.1;0.8] с шагом 0.1.
  5. Внутри цикла определены переменные n, y1, y2, chlen, которые используются в вычислениях.
  6. Переменная x инициализируется значением 0, а переменная h — значением 0.1.
  7. Переменная eps инициализируется значением 0.00001, которое используется в качестве точности вычислений.
  8. Переменная Pi инициализируется значением 3.14.
  9. В цикле while происходит расчет значений функции на интервале [0.1;0.8] с шагом 0.1.
  10. Внутри цикла определены переменные n, y1, y2, chlen, которые используются в вычислениях.
  11. Переменная x инициализируется значением 0, а переменная h — значением 0.1.
  12. Переменная eps инициализируется значением 0.00001, которое используется в качестве точности вычислений.
  13. Переменная Pi инициализируется значением 3.14.
  14. В цикле while происходит расчет значений функции на интервале [0.1;0.8] с шагом 0.1.
  15. Внутри цикла определены переменные n, y1, y2, chlen, которые используются в вычислениях.
  16. Значение переменной x увеличивается на 0.1 после каждой итерации цикла.
  17. Значение переменной y1 вычисляется как (1/2) - (Pi/4)*|sin(x)|.
  18. Значение переменной y2 вычисляется как сумма членов ряда cos(2nx)/(4nn-1) для n от 1 до 100.
  19. Значения переменных x, y1 и y2 выводятся на экран.
  20. Значение переменной x увеличивается на 0.1 после каждой итерации цикла.

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


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

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

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