Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> программа для вычисления функции y=f(x)=arccot(x) 
:(
    Опции темы
babyfratelli
Дата 5.1.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.1.2010

Репутация: нет
Всего: нет



здравствуйте! мне нужно было написать программу для вычисления арккотангенса ( y=f(x)=arccot(x) ) с использованием формулы для|x|< 1. без использования стандартных математических функций. вычисление нужно прервать, когда разница значений двух следующщих друг за другом членов z i и z i+1 меньше epsilon или когда будут сложены максимум 20 членов суммы. я ввела 2 вспомогательные функции mypow и myabs. как можно обойтись без них? всё правильно в программе?

спасибо!!!

вот формула:
user posted image

Код
#include <iostream>
 
using namespace std;
 
double mypow(double basis, int exponent);
double myabs(double input);
 
int main(void)
{
//pi_2 - PI/2, уже высчитано
const double pi_2=1.5707963267948966192313216916398;
double x, epsilon=0.000001, summe, summe_alt=0;
int i;
 
cout<<"ввести значение x: ";
cin>>x;
 
if(myabs(x)<1)
{
//первый член формулы суммы
summe_alt=pi_2;
for(i=0; i<20; i++)
{
//следующие члены формулы суммы
summe=summe_alt-(mypow(-1,i)*(mypow(x,2*i+1)/(2*i+1)));
//разница zi и zi+1
if(myabs(summe-summe_alt)<epsilon) break;
summe_alt=summe;
 }
 
cout<<"\narccot("<<x<<")="<<summe;
 }
else
{
//пользователь задал неверные значения x
cout<<"\nпожалуйста, используйте значения, соответствующие условию (|x|<1)!";
 }
 
return 0;
}
 
//рассчитать mypow
double mypow(double basis, int exponent)
{
int i;
double expwert=1;
 
for (i=0; i<exponent; i++)
expwert=expwert*basis;
 
return expwert;
}
 
//рассчитать myabs
double myabs(double input)
{
if(input>0)
return input;
else
return -input;
 
//пользователь задал значение x
cout<<x=0.5
cout<<"y="<<y<< endl
 
return=0
}


Добавлено @ 14:46
user posted image

Добавлено @ 14:48
извините, с первого раза не получилось вставить формулу ) 


Модератор: Не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 6.1.2010, 01:01
PM MAIL   Вверх
bsa
Дата 6.1.2010, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



babyfratelli, рекомендую почитать это и немного подредактировать свой код в сообщении, чтобы можно было в нем разобраться.
PM   Вверх
cardinal
Дата 6.1.2010, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



http://www.cyberforum.ru/cpp-beginners/thread81996.html
Не знаю, может это ты сам там вопрос задал... smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.