Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2010, 15:01   #1
kira_truelove
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 14
По умолчанию Вычисление суммы ряда. Си

Здавствуйте, необходима помощь в решении задачи. Условие и данные представлены в изображении. Даю шаблон программы (задача обязательно должна быть выполнена через 2 цикла). Надеюсь, что реккурентную формулу составила правильно. Заранее спасибо.
Код:
#include <math.h> //pow()
#include <conio.h> //getch()
#include <stdio.h> //printf()


unsigned long fact(unsigned int n)
  {
    if(n <= 1)
      return 1;
    return n * fact(n - 1);
  }




while (x=0.5, x<=0.75, x=x+0.05)
{
int n=1;
float a=1;
float s=0;

while (a>eps) do
{
      a=a*(((x/2)*(pow(n,2)+1)/fact(n))
      s=s+a;
      n++
      }
      return s
}
Изображения
Тип файла: jpg Безымянный.jpg (96.4 Кб, 42 просмотров)
kira_truelove вне форума Ответить с цитированием
Старый 10.10.2010, 17:04   #2
q_proger
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 48
По умолчанию

S и Y как-то связаны? Или надо просто вычислить и то и другое?

Код:
int fact(int n)
{
    if (n <= 1) return 1;
    return n * fact(n - 1);
}

double S(double x)
{
    double a, s = 0, eps = 1E-5;
    int n = 1;
    do {
        a = pow(x / 2, n) * (n * n + 1) / (double)fact(n);
        s += a;
        n++;
    }
    while(fabs(a) > eps);
    return s;
}

double Y(double x)
{
    return (x*x/4 + x/2 + 1) * exp(x / 2) - 1;
}

int main()
{
    for (double x = 0.5; x < 0.75; x += 0.05) {
        cout << "S(" << x << ") = " << S(x) << "\n";
    }
    for (double x = 0.5; x < 0.75; x += 0.05) {
        cout << "Y(" << x << ") = " << Y(x) << "\n";
    }

    return 0;
}
From Stilet: Я попрошу тебя не постить подряд свои посты, если твой пост в теме последний - редактируй его дописывая, если такая возможность тебе предоставленна.

Последний раз редактировалось Stilet; 10.10.2010 в 18:33.
q_proger вне форума Ответить с цитированием
Старый 10.10.2010, 20:45   #3
kira_truelove
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 14
По умолчанию

Как я поняла изи задания, S и Y после выполнения программы тдолжны иметь одинаковое значение.
Возникает вопрос, как можно заменить в следующей функции cout и cin на printf scanf?
kira_truelove вне форума Ответить с цитированием
Старый 10.10.2010, 21:14   #4
q_proger
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 48
По умолчанию

Да, я это заметил, они действительно равны на выходе, это как бы одна и та же формула.
Вместо
Код:
cout << "S(" << x << ") = " << S(x) << "\n";
напишите
Код:
printf("s(%.2f) = %f\n", x, S(x));
q_proger вне форума Ответить с цитированием
Старый 10.10.2010, 21:36   #5
kira_truelove
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 14
По умолчанию

Премного благодарна, вы мне очень помогли!!
kira_truelove вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление суммы членов ряда...(с++) DiLemma Помощь студентам 0 20.04.2010 18:25
Вычисление суммы ряда 666Rayne666 Помощь студентам 3 25.12.2009 22:39
Вычисление суммы бесконечного ряда sanela Помощь студентам 2 08.12.2009 18:45
вычисление суммы ряда с точностью OXED Помощь студентам 5 30.06.2009 06:56
Задача на вычисление суммы ряда, Pascal die_hard Помощь студентам 9 07.12.2008 19:05