Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nur-daulet
0 / 0 / 0
Регистрация: 02.02.2014
Сообщений: 32
#1

Написать программу для вычисления ряда с заданной точностью e (e>0) - C++

28.02.2014, 14:35. Просмотров 747. Ответов 8
Метки нет (Все метки)

Здравствуйте! Помогите написать программу для вычисления ряда с заданной точностью e (e>0).
Написать программу для вычисления ряда с заданной точностью e (e>0)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2014, 14:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу для вычисления ряда с заданной точностью e (e>0) (C++):

Написать программу для вычисления ряда с заданной точностью - C++
Нужно написать программу для вычисления ряда с заданной точностью eps. У самого беда с этими рядами. Люди добрые помогите, завтра мне...

Написать программу для вычисления ряда с заданной точностью e (e>0) - C++
Здравствуйте! Помогите написать программу для вычисления ряда с заданной точностью e (e>0).

Написать программу и рекурсивную функцию для вычисления значения суммы бесконечного ряда с заданной точностью - C++
Написать программу и рекурсивную функцию для вычисления значения суммы бесконечного ряда с заданной точностью. на печать вывести значение...

Написать программу вычисления суммы ряда с заданной точностью через функции - C++
Помогите написать программу через функции Добавлено через 32 секунды С помощью функции посчитать с заданной точностью (параметр...

Написать программу для вычисления числа с заданной точностью. - C++
Нужно написать программу для вычисления числа y=\sqrt{x} с заданной точностью. -------- За введенными x, k, \varepsilon (точность...

Написать программу для вычисления косинуса с заданной точностью - C++

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
28.02.2014, 18:24 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<math.h>
 
using namespace std;
 
double sinx(double x,double e,int n)
{
if(pow(-1,n)*pow(x,2*n)/double(fak(2*n+1))<e) return 0;
return pow(-1,n)*pow(x,2*n)/double(fak(2*n+1))+sinx(x,e,n+1);
}
 
int main()
{
double x,e;
cin>>x>>e;
 
cout<<sinx(x,e,0);
 
return 0;
}
Catstail
Модератор
22538 / 10943 / 1775
Регистрация: 12.02.2012
Сообщений: 18,080
28.02.2014, 18:43 #3
Нерационально. Возведения в степень, факториал (кстати, где он?). Мне кажется, так рациональнее:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <math.h>
 
double sinDx (double x, double e, double a=1, double n=0)
{
    if (fabs(a) < e) 
        return a;
    else
        return a+sinDx(x,e,-x*x/((2*n+2)*(2*n+3)),n+1);
}
    
 
int main(int argc, char* argv[])
{
    double x=0.03,e=0.0001;
    cout << sinDx(x,e) << endl;
    return 0;
}
Nur-daulet
0 / 0 / 0
Регистрация: 02.02.2014
Сообщений: 32
02.03.2014, 14:22  [ТС] #4
Catstail,
C++
1
-x*x/((2*n+2)*(2*n+3))
а как все понять?
zss
Модератор
Эксперт С++
6358 / 5922 / 1920
Регистрация: 18.12.2011
Сообщений: 15,220
Завершенные тесты: 1
02.03.2014, 15:26 #5
Цитата Сообщение от Nur-daulet Посмотреть сообщение
а как все понять?
Выразите (n+1) - й член суммы через (n) - й и получите это выражение.
Catstail
Модератор
22538 / 10943 / 1775
Регистрация: 12.02.2012
Сообщений: 18,080
02.03.2014, 19:38 #6
Цитата Сообщение от zss Посмотреть сообщение
Выразите (n+1) - й член суммы через (n) - й и получите это выражение.
- это стандартный прием вычисления рекуррентных последовательностей.
Nur-daulet
0 / 0 / 0
Регистрация: 02.02.2014
Сообщений: 32
02.03.2014, 20:47  [ТС] #7
Catstail, А функцию можно так переписать? И как сделать что бы в значение "х=" и "е=" можно было ввести не так 0,0001 или 0,005, а скажем целые числа? Спасибо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <math.h>
 
double sinDx (double x, double e)
{
    double a=1, n=0;
    if (fabs(a) < e) 
        return a;
    else
    a = (-x*x)/((2*n+2)*(2*n+3));
    n+=1;
    return a+sinDx(x,e);
}
 
int main(int argc, char* argv[])
{
    cin >> x >> e;
    cout << sinDx(x,e) << endl;
    return 0;
}
zss
Модератор
Эксперт С++
6358 / 5922 / 1920
Регистрация: 18.12.2011
Сообщений: 15,220
Завершенные тесты: 1
02.03.2014, 21:14 #8
C++
1
2
3
4
5
6
7
int main(int argc, char* argv[])
{
    double a,epsilon;
    cin >> a >> epsilon;
    cout << sinDx(a,epsilon) << endl;
    return 0;
}
a,epsilon - фактические параметры, заменяющие формальные x и e соответственно.
Целыми они быть не должны по определению.
Более того, epsilon - очень маленькое число, определяющее точность,
его лучше вводить в виде 1e-10 (т.е. 0.0000000001)
Catstail
Модератор
22538 / 10943 / 1775
Регистрация: 12.02.2012
Сообщений: 18,080
02.03.2014, 22:27 #9
Цитата Сообщение от Nur-daulet Посмотреть сообщение
А функцию можно так переписать?
- нет. Так она будет работать неверно. В твоем варианте в 6-й строке написано:

C++
1
double a=1, n=0;
т.е. переменные a и n сделаны локальными. Они будут при каждом входе получать значения 1 и 0. А в моем коде, эти переменные являются накопительными параметрами рекурсивной функции и они при каждом обращении разные.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 22:27
Привет! Вот еще темы с ответами:

Написать программу для вычисления факториала числа с заданной точностью - C++
Написать программу для вычисления факториала числа: n!=1*2*3*.....n. Использовать специальный класс, полем которого является число n, а...

Написать программу, вычисляющую функцию, представленную в виде ряда с заданной точностью - C++
Ребят помогите пожалуйста. Написать на языке СИ++ Составить программу, которая рассчитывает таблицу значений этой функции в указанном...

Определить сколько слагаемых ряда Тейлора потребуется для вычисления заданной функции с указанной точностью - C++
Помогите, пожалуйста, решить задачку(( если можно - с объяснениями

Определить количество членов ряда, необходимых для вычисления числа Пи с заданной точностью ε по формуле - C++
Помогите, пожалуйста, нужно определить количество членов ряда, необходимых для вычисления числа Пи с заданной точностью ε по...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.03.2014, 22:27
Ответ Создать тему
Опции темы

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