Показать сообщение отдельно
Старый 02.03.2014, 20:07   #1 (permalink)
steamangarsk
Member
 
Регистрация: 28.12.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Ошибка в счёте

Ошибка где то в коде, считает неправильно столбец f... Помогите найти эту ошибку и исправить... Я так понимаю эта ошибка в цикле где считается f, но не знаю как исправить... Задание такое: Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x). Результаты вычислений вывести в виде таблицы с заголовком. Срочно нужно, помогите кто может...
Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
int main()
{
    float x, s, f, x_nach, x_kon, delta_x, eps, temp;
    int n;
 
    printf("\nlaboratornaya rabota №3");
    printf("\nvariant №8");
    printf("\nIS-12-2");
    printf("\nHamchuk Evgeniy\n");
 
    printf("\ninitial data input:\n");
    printf("\nx_nach=");
    scanf("%f", &x_nach);
    printf("\nx_kon=");
    scanf("%f", &x_kon);
    printf("\ndelta_x=");
    scanf("%f", &delta_x);
    printf("\neps=");
    scanf("%f", &eps);
 
 
    printf("\nfor  x=%5.3f  to  %5.3f  increments  %5.3f  and precision  %5.3f\n", x_nach, x_kon, delta_x, eps);
 
    printf("\n   x      n         s            f");
    printf("\n--------------------------------------");
    x = x_nach;
 
    do
    {
        temp=x;
        s=0.0;
        n=1.0;
 
        double f=0.0;
 
        if((x<0.0) && (x>=-1.0))
        {
        f=M_PI/2.0+atan(sqrt(1.0-x*x/x));
        }
        else if((x>0.0) && (x<=1.0))
        {
        f=atan(sqrt(1.0-x*x)/x);
        }
 
 
        while(fabs(temp)>eps)
        {
            s+=temp;
            temp*=-x*x*(2.0*n-1.0)*(2.0*n-1.0)/((2.0*n)*(2.0*n+1.0));
            n++;
        }
 
            printf("\n%5.3f     %d     %0.6f     %0.6f", x, n, s, f);
            x += delta_x;
 
        }
        while(x<=x_kon);
        printf("\n--------------------------------------");
        return 0;
 
    }
Изображения
 
steamangarsk вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070