Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

что-то не так, не могу найти ошибку. вычисляет только для единицы. (задача с погрешностью)

85K
24 мая 2013 года
ksuha94
5 / / 19.05.2013
Код:
#include <iostream>
#include <clocale>
#include <math.h>
using namespace std;
int main ()
{
setlocale(LC_ALL, "Russian");
int x,n;
float eps;
cout << " Введите x "<<endl;
cin >> x;
cout << " Введите n "<<endl;
cin >> n;
cout <<"введи точность \n"<<endl;
float s=0,t=0,f=1;
for (int i=0;i<n;i++)
{
f=1;
cin >>eps;
float sum=0;
for (int i=0;i<n;i++)
{
f=1;
for(int j=1; j<i*2+1; j++)
if (j%2!=0) f=f*j;
else f=f/j;
t = (pow ((float)x,i*2+1) / (i*2+1))*f;
if (fabs(t)<eps/2) sum=t;
s=s+t;
}
}
cout << " Сумма n элементов = "<< s << endl;
cout << " arcsin(x) = "<< asin((float)x) << endl;
return 0;
}
вот мой код. условие : При некоторых заданных x, N и E, определяемых вводом, вычислить:
a) сумму N слагаемых заданного вида;
b) сумму тех слагаемых, которые по абсолютной величине больше Е.
Для случая b выполнить суммирование для двух значений Е, отличающихся на порядок, и при этом определить количество слагаемых, включенных в сумму. Сравнить результаты с точным значением функции, для которой данная сумма определяет приближенное значение при x, лежащем в интервале (-R, R).


#include <iostream>
#include <clocale>
#include <math.h>
using namespace std;
int main ()
{
setlocale(LC_ALL, "Russian");
int x,n;
float eps;
cout << " Введите x "<<endl;
cin >> x;
cout << " Введите n "<<endl;
cin >> n;
cout <<"введи точность \n"<<endl;
float s=0,t=0,f=1;
for (int i=0;i<n;i++)
{
f=1;
cin >>eps;
float sum=0;
for (int i=0;i<n;i++)
{
f=1;
for(int j=1; j<i*2+1; j++)
if (j%2!=0) f=f*j;
else f=f/j;
t = (pow ((float)x,i*2+1) / (i*2+1))*f;
if (fabs(t)<eps/2) sum=t;
s=s+t;
}
}
cout << " Сумма n элементов = "<< s << endl;
cout << " arcsin(x) = "<< asin((float)x) << endl;
return 0;
}
332
27 мая 2013 года
Valiant
416 / / 27.09.2004
Используйте средства форматирования для приведения кода в читабельный вид. У меня линза выпала пока читал.
Да и не старайтесь сокращать код.
332
29 мая 2013 года
Valiant
416 / / 27.09.2004
 
Код:
int n;
float x,eps;
Переменная sum непонятно для чего.
В логику даже не пытался вникнуть.

На будущее совет: расставляйте скобочки! Ваш код абсолютно нечитаемый и это ещё мягко сказано.
Вот для примера:

Код:
for(int j=1; j<i*2+1; j++){
    if(j%2!=0){
        f=f*j;
    }else{
        f=f/j;
        t = (pow (float(x),i*2+1) / (i*2+1))*f;
    }
    if (fabs(t)<eps/2){
        //sum=t;
        s=s+t;
    }
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог