2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Помогите с массивами в c++
Сообщение12.05.2010, 08:25 


12/05/10
3
Составить программу вычисления суммы 20 членов ряда:
x^2/2!+x^4/4!+...

Вот что у меня получилось:


#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <ctype.h>
#include <math.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{int i;
double b, x, s;
double a[25];
cout << "vvedite 4islo x (4islitel') - ";
cin >> x;
cout << "vvedite 4islo i (stepen' 4islitelya) - ";
cin >> i;
cout << "vvedite 4islo b (znamenatel') - ";
cin >> b;
a[0]=0;
for (i=0; i<=21; i++)
{ a[i+1]=a[i]+1;
}
for( i=2;i<=21;++i)
{ b=b*i*(i-1);

}
for
( i=2; i>=40; i=i+2)
{
s=s+(pow(x,i)/b);
}
cout << "summa = " << s;



_getch();
return 0;

}


Что не так? В чём ошибки??? Выдайтся ошибка
Run-Time Check Failure #3 - The variable 's' is being used without being initialized.
Помогите пожалуйста

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение12.05.2010, 09:48 


04/02/08
325
Буково
Так вам же нормальным английским сказано: переменная s используется без инициализации:
Код:
s=s+(pow(x,i)/b);

Либо пишите static s, чтобы она автоматически инициализировалась нулем, либо пишите явно double s = 0.;
А так - это, кстати, отнюдь не ошибка, а предупреждение (у вас просто уровень предупреждений высоко выставлен) - попытка взять значение из переменной, в которой содержится мусор.

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение12.05.2010, 13:00 
Админ форума
Аватара пользователя


19/03/10
8952
 i  Skam64, не плодите одинаковых тем.
Дубликат удалён.

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение13.05.2010, 01:43 
Заслуженный участник


26/07/09
1559
Алматы
2Skam64
Перепишите программку (и оформите правильно). Зачем в каждом слагаемом возводить x в степень с помощью pow если можно просто умножить предыдущую степень на x*x? Тоже самое и с факториалом... Вообще каждое следующее слагаемое легко получается из предыдущего, при этом частично отпадает необходимость хранить очень большие числа...

Хотя можно и сильнее оптимизировать, наверное...

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение23.06.2010, 08:22 


12/05/10
3
А правильно это как?
подскажите плиз
прост препод на пары тупо забивает, а самостоятельно я чёт не разобрался ещё до конца

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение23.06.2010, 09:40 


04/02/08
325
Буково
Цитата:
А правильно это как?

Почитайте Кернигана и Ритчи. Книжка небольшая, зато хорошо разжеваны азы языка С и оптимизация алгоритмов. Потом уже можете переходить к изучению плюсов.
Делайте отступы в коде, чтобы удобно было читать. Вслушайтесь в советы Circiter...

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение25.06.2010, 04:24 


30/12/09
95
Skam64 в сообщении #334009 писал(а):
А правильно это как?


s=0;
x2=x*x;
n=1;
for (int i=0; i < 20; i++)
{
n *= x2/(i+1)/(i+2);
s += n;
}

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение27.06.2010, 11:55 
Аватара пользователя


25/03/09
94
Не очень красиво буквой n счетчики обозначать.

 Профиль  
                  
 
 Re: Помогите с массивами в c++
Сообщение27.06.2010, 12:59 
Заслуженный участник


26/07/09
1559
Алматы
Ну здесь это оправдано мнемоникой "n-ный член последовательности".

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group