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

Вычислить с точностью до Е - C++

Восстановить пароль Регистрация
 
Wit
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 3
10.01.2013, 10:19     Вычислить с точностью до Е #1
Вычислить с точностью до Е (разность между найденным и предыдущим значением) меньше Е.
1) y=cos(1+cos(2+...+cos(39+cos(40) )))
2) y=sqrt(1+sqrt(1+sqrt(1+...)))

Помогите пожалуйста написать программу.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
10.01.2013, 10:54     Вычислить с точностью до Е #2
Wit, без рекурсии в этом задании не обойтись. Вот код для косинуса, корень по аналогии
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
26
27
28
29
30
31
32
33
34
#include <cmath>
#include <iostream>
using namespace std;
 
double DEG = asin(1.0)/180;
 
double RekursCos(int n)
{
    double res = 1 + cos(n*DEG);
    if(n - 1)
        res += cos(1 + RekursCos(n - 1));
    return res;
}
 
int main()
{
    double e;
    double dif;
    cout<<"Enter acuracy E : ";cin>>e;
    int n = 1;
    double previos = 0;
    double current = 0;
    do
    {
        system("cls");
        previos = RekursCos(n);
        current = RekursCos(n + 1);
        cout<<"E : "<<e<<endl;
        cout<<"iteration : "<<(n = n + 1)<<endl;
        cout<<"diference : "<<(dif = fabs(previos - current))<<endl;
    }
    while(e < dif);
    return 0;
}
Также обращу внимание на то что градусы следует переводить в радианы, иначе будем висеть в итерациях вечно ибо 1,2,3 ... N в радианных мерах будут давать знакомпеременный ряд
Миниатюры
Вычислить с точностью до Е  
Wit
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 3
10.01.2013, 10:56  [ТС]     Вычислить с точностью до Е #3
Спасибо)
v.a.l.i.d
10.01.2013, 11:42
  #4

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
без рекурсии в этом задании не обойтись.
-=ЮрА=-, а через цикл никак не получится?

-=ЮрА=-
10.01.2013, 12:01
  #5

Не по теме:

Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
=ЮрА=-, а через цикл никак не получится?
- да можно, но рекурсия изящней

-=ЮрА=-
Заблокирован
Автор FAQ
10.01.2013, 12:24     Вычислить с точностью до Е #6
Wit, странно но для корня ряд расходится С самим заданием точно всё норм?
Решил сделать с циклом
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <cmath>
#include <iostream>
using namespace std;
 
double RekursSqrt(int n)
{
    double res = 0;
    do
    {
        res += sqrt(1 + res);
    }
    while(0 < (n = n - 1));
    return res;
}
 
int main()
{
    double e;
    double dif;
    cout<<"Enter acuracy E : ";cin>>e;
    int n = 1;
    double current = RekursSqrt(n + 1);
    double previos = RekursSqrt(    n);
    do
    {
        system("cls");
        dif = fabs(previos - current);
        cout<<"E : "<<e<<endl;
        cout<<"iteration : "<<n<<endl;
        cout<<"previos   : "<<previos<<endl;
        cout<<"current   : "<<current<<endl;
        cout<<"diference : "<<dif<<endl;
        n = n + 1;
        current = RekursSqrt(n + 1);
        previos = RekursSqrt(    n);
    }
    while(e < dif);
    return 0;
}
Миниатюры
Вычислить с точностью до Е  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 12:37     Вычислить с точностью до Е
Еще ссылки по теме:

Вычислить с точностью e=0.0001 C++
Вычислить интеграл с точностью C++
Вычислить с точностью eps>0 C++

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

Или воспользуйтесь поиском по форуму:
Wit
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 3
10.01.2013, 12:37  [ТС]     Вычислить с точностью до Е #7
Да. Нормально.
Yandex
Объявления
10.01.2013, 12:37     Вычислить с точностью до Е
Ответ Создать тему
Опции темы

Текущее время: 11:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru