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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 15:42   #11
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

BDA, поправил. Все равно выдает результат неправильный.
При вводе "0.01" получается "1.5".
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 10.10.2012, 16:02   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Ну я не говорил, что это единственная ошибка
Просто не было времени вдумываться досконально.
Код:
k = 1;
do {
   ++k;
   a[k] = a[k-1] + a[k-1] / pow(2,k-1);
   if (fabs(a[k] - a[k-1]) > eps)
      pr = pr * a[k];
} while ( fabs(a[k] - a[k-1]) > eps);
Вот и пришли почти к начальному варианту
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.10.2012 в 16:06.
BDA вне форума Ответить с цитированием
Старый 10.10.2012, 16:27   #13
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Ну я не говорил, что это единственная ошибка
Просто не было времени вдумываться досконально.
Код:
k = 1;
do {
   ++k;
   a[k] = a[k-1] + a[k-1] / pow(2,k-1);
   if (fabs(a[k] - a[k-1]) > eps)
      pr = pr * a[k];
} while ( fabs(a[k] - a[k-1]) > eps);
Вот и пришли почти к начальному варианту
Этот вариант неверный. Во-первых, при первой итерации цикла, вылетает с мусорными отрицательными значениями a[i] и a[i+1]. ОТКУДА ОНИ БЕРУТСЯ? Во-вторых, объясните все-таки, зачем вот это:
Код:
   
      if (fabs(a[k] - a[k-1]) > eps)
      pr = pr * a[k];
?
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 10.10.2012, 16:30   #14
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Прошу прощения, все верно!
Ошибка была в начальном значении k.
И сумма там была ни к чему.
Никто

мой блог

Последний раз редактировалось three_cats; 10.10.2012 в 16:35.
three_cats вне форума Ответить с цитированием
Старый 10.10.2012, 16:40   #15
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Странно, но во всех вариантах кода, которые здесь были, при вводе "0.01", получается "170.654". Вероятнее всего, да, ТС просто неправильно посчитала на калькуляторе!
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 10.10.2012, 16:46   #16
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

three_cats, во-первых, есть великолепная кнопочка "Правка", позволяющая дописывать свое сообщение в течение 24 часов
Во-вторых, надеюсь, ТС еще появится в теме.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.10.2012, 16:57   #17
konstantusha
 
Регистрация: 30.09.2012
Сообщений: 8
По умолчанию

BDA, спасибо большое) разобралась наконец-то, с вашей помощью)
konstantusha вне форума Ответить с цитированием
Старый 10.10.2012, 17:10   #18
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

BDA, и понятно теперь, откуда берется "мусор".

Например:
Код:
   a[k] = a[k-1] + a[k-1] / pow(2,k-1);
вначале a[k] присваивается этот мусор, затем выполняется то, что справа, затем a[k] присваивается полученное значение.
Век живи - век учись

konstantusha, всегда пожалуйста! Между прочим, я с вашей задачей целый день сидел...
Никто

мой блог

Последний раз редактировалось three_cats; 10.10.2012 в 17:14.
three_cats вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(( А у меня логарифм не вычисляет. Программа выдает простые числа. trumbubudunchik C# (си шарп) 1 24.05.2012 16:22
Программа которая вычисляет принадлежит ли ли данная точка «заштрихованной» области. Kesida Помощь студентам 3 05.10.2011 03:48
программу, которая вычисляет произведение двух заданных пользователем чисел smile) Помощь студентам 1 15.09.2010 19:19
программа с использованием подпрограмм, создаёт односвязный список и вычисляет сумму положительных чисел LOVELY Паскаль, Turbo Pascal, PascalABC.NET 5 13.12.2008 01:27
Надо чтобы программа выводила i начиная с 1 значения.Оно у мну дальше 1 и не вычисляет..? Влад-mego Помощь студентам 3 27.11.2008 23:10