Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Генрисон
4 / 3 / 1
Регистрация: 30.10.2012
Сообщений: 296
#1

Вычислить значение, используя рекуррентную зависимость - C (СИ)

23.10.2014, 18:37. Просмотров 330. Ответов 5
Метки нет (Все метки)

Нужно вычислить сумму с заданной точностью

Вот мой код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <stdlib.h>
#define EPS 1e-5
int main(void)
{
    unsigned int n =1;
    double chisl,znam,sum,x;
          printf("Enter x");
        scanf("%lf",&x);
        chisl=1;
        znam=1;
        sum=0;
        do{
            
        chisl*=(-1)*x;
        znam*=n;
        sum+=chisl/(znam+1);
        n++;
        }
     while(sum>EPS || sum<-EPS);
        printf("s=%lf \n",sum);
        system("pause");
        return 0;
 
}
Считает не так,как хотелось бы. Что не так в коде?
0
Миниатюры
Вычислить значение, используя рекуррентную зависимость  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2014, 18:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вычислить значение, используя рекуррентную зависимость (C (СИ)):

Вычислить значение выражения, используя рекурсию - C (СИ)
НУжно вот это задание в рекурсию переделать...сам пробовал такого понаделал))) С помощью цикла сделал...В рекурсию надеюсь на вашу...

Вычислить значение суммы, используя цикл с параметром - C (СИ)
вычислить \sum_{i=1}^{50} 1/i^2 с использованием оператора for

Вычислить значение функции, используя условный оператор - C (СИ)
Надо сделать задание : Вычислить значение функции, используя условный оператор: Вот код: #include &lt;stdio.h&gt; #include &lt;math.h&gt; main() ...

Вычислить значение для заданного а, используя рекуррентное соотношение - C (СИ)
Помогите решить задачу.

Вычислить значение выражения используя бесконечные ряды с заданной точностью ε - C (СИ)
Входные значения x и ε вещественные, разделенные пробелом. Выходные: результат вычисления, вещественное число. (Не возможно вычислить...

Вычислить значение выражения, используя не более восьми операций умножения, сложения и вычитания - C (СИ)
Даны целые числа x и y. Программа, используя только операции умножения, сложения и вычитания, вычислить выражение 3 x^2 y^2 - 2 x y^2...

5
kiff20072008
57 / 57 / 13
Регистрация: 28.09.2012
Сообщений: 358
23.10.2014, 18:57 #2
Генрисон,
не то вот это
C
1
while(sum>EPS || sum<-EPS);
вам надо сохранять предыдущее значение и сравнивать с получившимся
если разница меньше то останавливать цикл
0
Генрисон
4 / 3 / 1
Регистрация: 30.10.2012
Сообщений: 296
23.10.2014, 19:07  [ТС] #3
kiff20072008, то есть так?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <stdlib.h>
#define EPS 1e-5
int main(void)
{
    unsigned int n =1;
    double x,a,chisl,znam,sum;
          printf("Enter x");
        scanf("%lf",&x);
        chisl=1;
        znam=1;
        sum=0;
        a=0;
        do{
        chisl*=(-1)*x;
        znam*=n;
        a+=chisl/(znam+1);
        sum+=a;
        }
     while(a>EPS || a<-EPS);
        printf("s=%lf \n",sum);
        system("pause");
        return 0;
 
}
0
kiff20072008
57 / 57 / 13
Регистрация: 28.09.2012
Сообщений: 358
23.10.2014, 19:14 #4
Генрисон, нет
вот вы вычисляете
у вас есть сумма
и вы хотите прибавить еще какое то число
так вот то число какое вы хотите прибавить должно быть больше эпсилон
0
Генрисон
4 / 3 / 1
Регистрация: 30.10.2012
Сообщений: 296
23.10.2014, 19:20  [ТС] #5
kiff20072008, честно говоря,плохо понимаю,как исправить
0
kiff20072008
57 / 57 / 13
Регистрация: 28.09.2012
Сообщений: 358
23.10.2014, 19:35 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Генрисон, я же вам все разжевал
C
1
2
3
4
5
6
7
8
9
10
int temp;
do{
            
        chisl*=(-1)*x;
        znam*=n;
        temp=chisl/(znam+1);
        sum+=temp;
        n++;
        }
     while(temp>EPS);
1
23.10.2014, 19:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2014, 19:35
Привет! Вот еще темы с ответами:

Вычислить произведение, используя цикл - C (СИ)
Дано натуральное n. Вычислить произведение, используя цикл for: p = 1 * 1/2 * 1/3 ... 1/n.

Вычислить, используя цикл while или do while - C (СИ)
П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Редактор формул внизу страницы

Вычислить сумму, используя цикл While - C (СИ)
Связался с такой проблемой, которую так и не смог решить. Цилк While мне не дается... Прошу посмотреть пункт 18, вложил так же...

Вычислить сумму используя цикл for - C (СИ)
Вычислить сумму s=1/3+1/(3+2)+1/(3^2+2)+1/(3^3+2)+...+1/(3^10+2) используя цикл for Пожалуйста помогите составить код! конечно она простая,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru