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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
02.10.2010, 12:31     Вычислить сумму бесконечного ряда с заданной точностью #1
Здравствуйте, пожалуйста, помогите найти ошибку в программе, которая должна находить сумму бесконечного ряда с заданной точностью (s=pow(-1,i)/pow(5,i)) для i=1 и до бесконечности):
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
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL,"Rus");
 
    double s=0;
    double n=-0.2;
    double eps;
 
    printf("Введите значение точности. Е = ");
    scanf("%f",&eps);
 
    while(fabs(n)>eps)
    
    {
        s+=n;
        n*=-0.2;
    }
    
    printf("Для заданной точности сумма ряда равна: %f",s);
    
    getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2010, 12:45     Вычислить сумму бесконечного ряда с заданной точностью #2
Уто ж вас всех учит писать void main()...
Замените на int main(), и в самом конце программы, после getch(), напишите return 0;
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
02.10.2010, 12:56  [ТС]     Вычислить сумму бесконечного ряда с заданной точностью #3
Написал, но ничего не изменилось, когда ввожу точность, ничего не происходит, просто как бы программа зависает. Но когда переменные ввожу как float, а не double, то программа постоянно пишет -0.166667, при любых значениях точности...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2010, 13:00     Вычислить сумму бесконечного ряда с заданной точностью #4
Вместо s = 0; пишите s = 0.0;
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
02.10.2010, 13:05  [ТС]     Вычислить сумму бесконечного ряда с заданной точностью #5
Не работает, мне интересно, почему при типе переменных double сумму ряда не находит вообще, а при float находит, но неправильную...
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
02.10.2010, 13:26     Вычислить сумму бесконечного ряда с заданной точностью #6
-0.166667 пишет должно быть потому, что сумма ряда сходится к этому значению. А насчет double попробуй спецификатор типа lf поставить.

Добавлено через 10 минут
Цитата Сообщение от wertrix Посмотреть сообщение
... а при float находит, но неправильную...
А откуда такая уверенность ?)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2010, 13:26     Вычислить сумму бесконечного ряда с заданной точностью #7
Мне интересно, почему при точности 0,99 он всё равно выводит ту же сумму...
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
02.10.2010, 13:27     Вычислить сумму бесконечного ряда с заданной точностью #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
Мне интересно, почему при точности 0,99 он всё равно выводит ту же сумму...
Вы eps вводите ? Да вродь на глазок нет явной ошибке в результате.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2010, 13:32     Вычислить сумму бесконечного ряда с заданной точностью #9
Да eps.

Добавлено через 43 секунды
Ошибки-то нет, но мне интересно, почему он из цикла на первой же итерации не выходит...

Добавлено через 1 минуту
Хм... А если явно пишу точность в while - выходит...

Добавлено через 1 минуту
Ха... А если сетлокал закомментить - работает...
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
02.10.2010, 13:33     Вычислить сумму бесконечного ряда с заданной точностью #10
может точка с запятой подменяются или спецификатор все таки нормальный воткнуть.
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
02.10.2010, 13:34  [ТС]     Вычислить сумму бесконечного ряда с заданной точностью #11
Реально, если сетлокал закомментить то работает... Странно, неправда ли?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2010, 13:34     Вычислить сумму бесконечного ряда с заданной точностью
Еще ссылки по теме:

C++ Вычислить сумму ряда с заданной точностью
C++ Вычислить сумму ряда, с заданной точностью
C++ Вычислить значение суммы бесконечного ряда с заданной точностью e=10^-5

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.10.2010, 13:34     Вычислить сумму бесконечного ряда с заданной точностью #12
Мать моя... Поскольку сетлокаль никогда не использовал, просто не подумал, что в русской локали в качестве разделителя целой и дробной часте идёт запятая, а не точка... С раскомменченной сетлокаль и при использовании запятой всё работает))
Yandex
Объявления
02.10.2010, 13:34     Вычислить сумму бесконечного ряда с заданной точностью
Ответ Создать тему
Опции темы

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