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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 23:40   #11
Tatyana64
Пользователь
 
Регистрация: 30.10.2012
Сообщений: 37
По умолчанию Попытаюсь

Спасибо за совет, буду изучать!
Tatyana64 вне форума Ответить с цитированием
Старый 05.11.2012, 23:58   #12
Tatyana64
Пользователь
 
Регистрация: 30.10.2012
Сообщений: 37
Печаль Не получилось

Вот новый код. Построила алгоритм суммирования как посоветовали. Результат тот же
Код:
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>

using namespace std;
 
int main () {
        cout.precision(4);
		const int MaxIter=500;
		double Xn, Xk, dX, k, eps;
		cin >> Xn >> Xk >> dX >> eps;
        double z; 
 for (double x=Xn; x<=Xk; x+=dX) 
 { 
	 //Пробуем различные x
     double y=x,ch=x,n=1,kol=0;
	 //Сумма ряда, номер шага, x в степени n
  do {
     z=log(1-x);  //Точное значение суммы ряда
     //вычисляем очередной член ряда
	 k=x*(n/(n+1));
	 ch=ch*k;
     y+=ch; //Формула накопления суммы ряда
     n++; //Увеличиваем номер шага на 1
	 kol++;//Считаем количество просумированных элементов ряда 
  } 
  while (fabs(ch)>eps && n<MaxIter); //Пока не достигнута точность eps или не сделано 500 шагов цикла
    y=-y;
	cout << x <<"   "<< y <<"   "<< kol <<"   "<< z << endl;
  }
 system ("PAUSE");
 return 0;
    }
Tatyana64 вне форума Ответить с цитированием
Старый 06.11.2012, 12:35   #13
Tatyana64
Пользователь
 
Регистрация: 30.10.2012
Сообщений: 37
По умолчанию А ларчик просто открывался

Код:
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>

using namespace std;
 
int main () {
        cout.precision(4);
		const int MaxIter=500;
		double Xn, Xk, dX, eps;
		cin >> Xn >> Xk >> dX >> eps;
        double z;
		for (double x=Xn; x<=Xk; x+=dX) 
 { 
	 //Пробуем различные x
     double y=0,ch,n=1,kol=0;
	 //Сумма ряда, номер шага, x в степени n
  do {
     z=log(1-x);  //Точное значение суммы ряда
     //вычисляем очередной член ряда
	 ch=(pow(x,n)/n);
     y+=ch; //Формула накопления суммы ряда
     n++; //Увеличиваем номер шага на 1
	 kol++;//Считаем количество просуммированных элементов ряда 
  } 
  while (fabs(ch)>eps && n<MaxIter); //Пока не достигнута точность eps или не сделано 500 шагов цикла
    y=-y;
	cout << x <<"   "<< y <<"   "<< kol <<"   "<< z << endl;
  }
 system ("PAUSE");
 return 0;
    }
Все оказалось гораздо проще!!!!!!!!!!!!!!
Tatyana64 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите ошибку Yanik Помощь студентам 4 12.06.2011 11:45
Найдите ошибку C++ D.176 Помощь студентам 1 24.05.2011 07:31
найдите ошибку Sergey240892 Помощь студентам 15 04.03.2011 11:34
Найдите ошибку Гиро-Гинор Помощь студентам 2 12.11.2010 23:16
Найдите ошибку St1fler92 Помощь студентам 4 26.05.2009 15:23