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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 17:45   #1
Fishka
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию Вычислить бесконечную сумму ряда С++

Вычислить бесконечную сумму ряда с заданной точностью e(1>e>0)


на рисунке 4 в степени (i-1) ошибочно правильно в степени (i+1)
пишу так

Код:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{int n, i=1;
float e, s=0, a=1;
cout<<"e="; cin>>e;
while ((a)>=e)
{s+=a; i++; a/=pow(5,i)+pow(4,i+1);}
cout<<"s="<<s<<endl;
cin.get();
cin.get();
return 0;
}
где то ошибка получаетцо что S всё время =0

Последний раз редактировалось MaTBeu; 22.12.2008 в 18:23.
Fishka вне форума Ответить с цитированием
Старый 22.12.2008, 18:06   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Fishka Тоже не захотел компилиться. Заменил <cmath> на <math.h> - все заработало

Цитата:
где то ошибка получаетцо что S всё время =0
А вы какое e вводите?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.12.2008, 18:08   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

"Где-то"???
А компилятор вам ничего не подсказывает про мстонахождение ошибки?
MaTBeu вне форума Ответить с цитированием
Старый 22.12.2008, 18:08   #4
Fishka
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

дело не в этом, счас скопилила нормально всё(в VS2008 #include <cmath> правилно подключать, а не <math.h> ), но вот считает программа не верно
Fishka вне форума Ответить с цитированием
Старый 22.12.2008, 18:11   #5
Fishka
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

компилятор выдаёт error C2668: 'pow' : ambiguous call to overloaded function
Fishka вне форума Ответить с цитированием
Старый 22.12.2008, 18:13   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Fishka e должно быть меньше 1.
при e=0.001 s=1.01124
e=0.00001 s=1.01127
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.12.2008, 18:16   #7
Fishka
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

тоесть я правильно код написала?
Fishka вне форума Ответить с цитированием
Старый 22.12.2008, 18:18   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Fishka Ну, как видите, у меня, вроде как, работает
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 22.12.2008, 18:19   #9
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Код:
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
	int n, i=1;
	float e, s=0, a=1;
	float c = 5, k = 4;
	cout<<"e="; cin>>e;
	while ((a)>=e)
	{
		s+=a; 
		i++; 
		a/=(pow(c,i)+pow(k,i+1));
	}
	cout<<"s="<<s<<endl;
	cin.get();
	return 0;
}
А не работала потому, что функции pow(int, int) просто нету. Есть pow (float, int).
Ввожу
e = 0.000001
Выводит
s = 1.01127
Верно или нет?

ПыСы: и еще... Девушка, структурируйте код. Так он становиться более читабельным и проще разобрать, что у вас написано.

Последний раз редактировалось MaTBeu; 22.12.2008 в 18:22.
MaTBeu вне форума Ответить с цитированием
Старый 22.12.2008, 18:23   #10
Fishka
 
Регистрация: 22.12.2008
Сообщений: 6
По умолчанию

Верно!
в моём случае компилятор выдавал ошибку, но программа всё таки работала( не понятно почему, напутала видимо что то)
Спасибо помогли разобраться
Fishka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму ряда 11111 Помощь студентам 14 01.11.2010 19:55
Вычислить сумму ряда Alex1991 Помощь студентам 1 09.11.2008 19:22
Delphi. Вычислить сумму бесконечного ряда Alex1991 Помощь студентам 1 23.10.2008 22:39
Найти сумму ряда с точностью Е=10^-3 Добрый Кот Паскаль, Turbo Pascal, PascalABC.NET 2 12.12.2007 12:04
вычислить сумму отрицательных элементов в массиве only_win Паскаль, Turbo Pascal, PascalABC.NET 2 25.09.2007 15:22