![]() |
|
Модераторы: bsa |
![]()
|
|
| Tep4k111 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 25.11.2013 Репутация: нет Всего: нет |
Собственно вот условие задачи:
Составить программу и вычислить сумму ряда с точностью e=pow(10,-3), e=pow(10,-6), e=pow(10,-9). Сравнить число итераций для каждого из этих случаев. ![]() Вот мой код:
Модератор: не забываем пользоваться кнопочкой "Код" Это сообщение отредактировал(а) bsa - 3.12.2013, 15:18 |
|||
|
||||
| smalcom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: нет Всего: 7 |
1. используйте тег "код". мусорник же
2. в чём проблема? -------------------- What DA F...??? |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Числа с плавающей точкой так сравнивать не стоит. У Вас заранее задана точность вычисления, поэтому сравнение должно выглядеть так:
хотя, конечно, не понятно, какая точность задана - относительная или абсолютная... Ну и всегда имеете 2 итерации, при которых всё в S складывается и складывается... Смысла возводить 1.0 в степень k никакого нет (а потом умножать на -1), тем более в формуле стоит -1 в степени k (то есть это знакопеременный ряд). /2.0*k+1.0 компилятором воспринимается несколько иначе, чем Вам хотелось бы, выражение нужно взять в скобки: (2.0*k+1.0) При чём здесь Даламбер, наверное, не скажет никто, судя по всему, это из какого-то другого задания. e не только не задана, но даже не прописана в числе переменных. Никакого сравнения числа итераций нет... Зачем счётчику цикла быть float??? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Это даже не сравнение )) Tep4k111, пока не отформатируешь по-человечески код, тебе вряд-ли кто-то захочет помогать. feodorv, пожалуй, исключение, подтверждающее правило -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Tep4k111 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 25.11.2013 Репутация: нет Всего: нет |
спасибо за ценный комментарий, но меня всё так интересует, можно ли как-то показать эти итерации? Насчёт float: там целочисленные значения должны быть, мой косяк. Как я понял, Даламбер там вообще не нужен. Переменная "e" была задана через double. Нужно ли так делать, либо лучше вводить? Тогда как ввести степень? |
||||
|
|||||
| baldina |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
1. надо оформить функцию в виде функции, так удобнее. заодно исправить её, т.к. у вас функция не соответствует картинке
функцию для расчета точного значения - тоже. и pi при этом взять поточнее, например как результат arccos(-1)
2. у вас задание посчитать сумму несколько раз, с заданной точностью, и выяснить число итераций напрашивается решение - расчет суммы оформить в виде функции. разумно также задать максимальное число итераций, что бы программа всегда завершалась. Если число итераций совпало с максимальным значением, значит требуемая точность не достигнута.
3. Вот эту функцию и надо вызывать для различных значений epsilon.
4. Если введенное значение x не лежит в диапазоне ]0..pi/2[, то и ряд считать смысла нет, надо попросить пользователя вернуть правильное значение Это сообщение отредактировал(а) baldina - 3.12.2013, 17:53 |
||||||||
|
|||||||||
| Tep4k111 |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 25.11.2013 Репутация: нет Всего: нет |
спасибо! |
||||||||||
|
|||||||||||
| Tep4k111 |
|
||||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 25.11.2013 Репутация: нет Всего: нет |
Вот что получилось... укажите на недочёты.
|
||||||||||||||
|
|||||||||||||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
код не отформатирован, вырви глаз
контроля числа итераций нет, возможно зацикливание (ряд кстати сходится медленно) бессмысленно считаете с точностью 1e-9, задавая pi с точностью 1e-2 зачем числа 1e-3, 1e-6, 1e-9 вычислять при помощи pow()? переменные iter1..3 лишние, у вас есть k контроль значения х отсутствует про copy-paste я уж не говорю, видимо функции С++ вы ниасилили Добавлено через 59 секунд ну вобщем на троечку, если у преподавателя настроение хорошее |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |