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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2017, 01:08   #1
alexboliam
Пользователь
 
Регистрация: 10.10.2017
Сообщений: 44
По умолчанию Очень надо решение задачи до завтра

Задание с раздела изучения итерационных циклов. Сама задача на картинке. Только частично понимаю, как это реализовать, а сроки горят. Помогите пожалуйста!
Изображения
Тип файла: png screen1.png (8.8 Кб, 38 просмотров)
alexboliam вне форума Ответить с цитированием
Старый 26.10.2017, 01:34   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Если "с нуля", то здесь бабки за такое берут. Поэтому, только сам.

Для начала ответь на вопрос:
1) что имелось ввиду, когда говорилось "сравнить со стандартной функцией"
2) Сделай программу (на поиск суммы) не такую сложную, а по-проще...
Ну например, такую формулу рассчитать:


0.jpg


сравни полученное значение с ручным счётом...
ura_111 вне форума Ответить с цитированием
Старый 26.10.2017, 01:38   #3
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

И что значит: "с точностью до 6-го знака"?

Это что?
Хранить значение с предыдущего шага, чтобы сравнить с теперешним, и если эта разность не превышает 0,000001, то тогда конец цикла "while" ("for", "do while") достигнуто?

4) Поищи примеры итерационных расчётов (расчёты сумм, произведений, расчёты по формулам...) на форуме. Здесь их пруд-пруди...
.

Последний раз редактировалось ura_111; 26.10.2017 в 01:56.
ura_111 вне форума Ответить с цитированием
Старый 26.10.2017, 02:20   #4
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Код:
#include <iostream>
#include <cmath>

const double epsilon = 0.0000001;

double lna(double a)
{
    const double a1 = (a - 1);
    double res  = 0;
    double prev = res + 10 * epsilon;
    double pow_a1 = a1;
        
    for (long div = 1, sign = 1;std::abs(res - prev) > epsilon;sign = 0 - sign, ++div)
    {
        prev = res;
        res += sign * pow_a1 / static_cast<double>(div);
        pow_a1 *= a1;        
    }
    return res;
}

int main()
{
    std::cout << lna(1.5) << ", true value:  "<<log(1.5) << std::endl;
}
Будете должны 100 баксов
alexzk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень-очень надо!Завтра сдавать уже=( Реализовать в виде модуля набор подпрограмм...(Pascal) Dizzy Помощь студентам 4 17.12.2010 17:10
Пожалуста помогите спростинькой задачкой. Я на 1 курсе! на завтра очень надо программку. a123cvn8 Помощь студентам 6 27.10.2009 23:10
Не очень понимаю задачи ,а завтра зачет Екатерина А. Паскаль, Turbo Pascal, PascalABC.NET 0 06.12.2008 00:50