Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Асмик Александровна
Статус: Академик
Рейтинг: 7511
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2643
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2342
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / C/C++

Номер выпуска:1646
Дата выхода:19.03.2011, 19:30
Администратор рассылки:Киселёва Алёна aka Verena (Профессор)
Подписчиков / экспертов:319 / 190
Вопросов / ответов:1 / 1

Вопрос № 182518: Уважаемые эксперты помогите написать программу на С++ с использованием функций При заданной погрешности вычислить реккурентно значение выражения f(x) = exp(x)., формула нахождения членов последовательности u(i) = x^i / i!; ...



Вопрос № 182518:

Уважаемые эксперты помогите написать программу на С++ с использованием функций
При заданной погрешности вычислить реккурентно значение выражения f(x) = exp(x)., формула нахождения членов последовательности u(i) = x^i / i!;

Отправлен: 14.03.2011, 19:04
Вопрос задал: Посетитель - 366768 (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Micren (Профессор) :
Здравствуйте, Посетитель - 366768!
Программа.
Код:
#include <iostream>
#include <locale>
#include <cmath>

// Погрешность
const double EPS = 0.0001;

double mexp(double x)
{
if (x < 0)
{
return 1.0 / mexp(-x);
}

double sum = 1;
double cur = 1;
size_t count = 0;
do
{
cur = cur * x / ++count;
sum += cur;
}
while (cur >= EPS);

return sum;
}

/*
*
*/
int main()
{
std::locale::global(std::locale(""));

double x;

std::cout << "Введите x: ";
std ::cin >> x;

if (std::cin.fail())
{
std::cerr << "Ошибка ввода!" << std::endl;
return 1;
}

std::cout << "exp(x)=" << std::exp(x) << std::endl
<< "mexp(x)=" << mexp(x) << std::endl;

return 0;
}

Пример работы:
Код:
Введите x: 0
exp(x)=1
mexp(x)=1

Введите x: 1
exp(x)=2.71828
mexp(x)=2.71828

Введите x: -100
exp(x)=3.72008e-44
mexp(x)=3.72008e-44

Ответ отправил: Micren (Профессор)
Ответ отправлен: 14.03.2011, 21:39
Номер ответа: 266267
Украина, Краматорск

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 266267 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное