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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2015, 16:52   #1
Тима4930
Пользователь
 
Регистрация: 28.11.2015
Сообщений: 13
По умолчанию Найти ошибку в сумме

Здравствуйте,помогите исправить программу,в ней всё работает но я сделал не так,нужно чтобы сумма сравнивалась со значением справа на картинке.
Код:
#include <iostream>
#include <conio.h>
#define M_PI 3.1415926535897932384626433832795

using namespace std;

int main()
{
	setlocale(LC_ALL, "Rus");
	double x, a, s, e1, e2, e3;
	int k, i;
	e1 = 0.001;
	e2 = 1e-6;
	e3 = 1e-9;
	cout << "Введите x:";
	cin >> x;
	if (x > 0 && x < M_PI)
	{
		for (i = 1; i <= 3; i++)
		{
			k = 0;
			s = 0;
			a = 1;
			if (i == 1)
			{
				while (abs(a) > e1)
				{
					a = cos((2 * k + 1)*x) / (2 * k + 1);
					s = s + a;
					k = k + 1;
				}
			}
			if (i == 2)
			{
				while (abs(a) > e2)
				{
					a = cos((2 * k + 1)*x) / (2 * k + 1);
					s = s + a;
					k = k + 1;
				}
			}
			if (i == 3)
			{
				while (abs(a) > e3)
				{
					a = cos((2 * k + 1)*x) / (2 * k + 1);
					s = s + a;
					k = k + 1;
				}
			}
			cout << i << endl;
			cout << "s=" << s << endl;
			cout << i << " число интераций=" << k << endl;
			cout << "---------------------" << endl;
		}

		cout << "y=" << -0.5*log10(tan(x / 2)) << endl;
		_getch();
	}
	else cout << "Условие не выполняется" << endl;
	_getch();
}
Преподавательница сказала что нужно изменить там где while как-то,чтобы получается

Текст самого задания:
Составить программу и вычислить сумму ряда с точностью е=10^-3 е=10^-6 и е=10^-9 , и . Сравнить число итераций для каждого из этих случаев.
Допустить определенную погрешность

Массивы использовать нельзя
Изображения
Тип файла: png Screenshot_1.png (2.4 Кб, 69 просмотров)
Тима4930 вне форума Ответить с цитированием
Старый 30.11.2015, 18:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Опиши функцию:
Код:
double foo(double x,double e,double *s){
 double diff; int k=0;
 do{
   diff=*s;
   *s=(cos(2*k+1)*x)/(2*k+++1);
 }while(fabs(diff-*s)<e);
 return k;
}
И соответственно ее применяй в условиях
Код:
double s[3],e[3]={0.001,0.000001,0.000000001}; int k[3],i;
for(i=0;i<3;i++) k[i]=foo(0.1,e[i],&s[i]);
...
И тут уже у тебя два массива: Массив s с суммами ряда, массив k с количеством итераций на каждое вычисление. Их и сравнивай.
Понял идею?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.11.2015, 18:28   #3
Тима4930
Пользователь
 
Регистрация: 28.11.2015
Сообщений: 13
По умолчанию

Спасибо большое,но мы ещё массивы не учили,и я не могу их использовать,к сожалению
Тима4930 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести на экран все двухзначные числа которые равны сумме своих цифр и сумме в квадрате/Turbo Pascal Pavel2502 Помощь студентам 5 26.02.2014 22:18
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10
вычислить все числа до n которые равны сумме своих делителей (совершенные числа)//не могу найти ошибку в своей програме на паскале games_vandal Паскаль, Turbo Pascal, PascalABC.NET 0 22.12.2012 14:24
Дана матрица А[m,n]. Найти первый столбец, сумма элементов которого равна сумме элементов первой строки. edikesh Помощь студентам 3 01.12.2011 19:21
Найти два числа,сумма каких равняется сумме всех других чисел, которые остались! Помогите будьте людьми! Snake08 Паскаль, Turbo Pascal, PascalABC.NET 4 08.12.2008 18:33