Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
1

Прошу объяснить работу готовой программы

06.06.2014, 21:01. Просмотров 873. Ответов 7
Метки нет (Все метки)

Что требуется:
При описании решения задачи следует отдельно выделить постановку задачи с указанием входных и выходных данных и метод решения задачи

Кликните здесь для просмотра всего текста
Условие:
Циклом с параметром должна выполняться формула:
1/(1+1/2)/(2+4/8)...(n+2^n/n+1)
n вводится с клавиатуры
надо получить конечный результат
Сама программа:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main()
{
  double n;
  cin>>n;
  double res=1.;
  double pow2=2.;
for (int i=n; i>=0; i--)
{
res=(i+pow2/(i+1))*res;
}
res=1/res;
cout<<res;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2014, 21:01
Ответы с готовыми решениями:

Объяснить работу программы
Здравствуйте. Такая задача была: Нашёл на форуме подходящую рабочую программу, но не могу...

Объяснить работу программы
Во введенном слове подсчитать количество различных пар букв. Например, в слове babacabacd 5...

Объяснить работу программы
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; int main() { char mas; int...

Рекурсия, объяснить работу программы
Вообщем мое ( пока самостоятельное ) обучение продолжается и попал я вот на такую замечательную...

Объяснить работу программы (структуры, файловый ввод/вывод)
объясните программу чему равняется v0??? и зачем int v=111??? #include &lt;iostream&gt; #include...

7
MagdAmir
4 / 4 / 3
Регистрация: 30.05.2014
Сообщений: 36
06.06.2014, 21:19 2
Лучший ответ Сообщение было отмечено yaStudent как решение

Решение

Ну, во первых, в описании задачи неправильно указана формула либо неверен код (там не умножить на res, а делить на него)... А во вторых:

Объявляется переменная N, чтобы можно было записать туда значение, вводимое с клавиатуры.
Потом собственно считывается число с консоли и засовывается в ячейку N
Далее мы объявляем переменную res, которая на каждом шаге будет вычислять нам результат (отсюда и имя) I зависимой функции
Объявляем переменную pow2, которая отвечает нам за 2^N, а потому там в проге ее неправильно используют...нужно добавить возведение этого числа в степень I либо же сразу задать его таким, а потом в конце каждого хода делить на два.
Врубаем цикл, который и считает нам собственно функцию от конца, то есть начиная от N, идя соответственно к нулю. Когда ноль, значение как раз будет 1.
Дальше на кой-то черт 1 делять на то, что получилось... И выводят результат.
Конец.
1
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
06.06.2014, 21:56  [ТС] 3
MagdAmir, по формуле надо сначала делением вычислить знаменатель, потом числитель (1) поделить на результат предыдущего вычисления.

Добавлено через 4 минуты
Вот так правильнее:
1/((1+1/2)/(2+4/8)...(n+2^n/n+1))
0
MagdAmir
4 / 4 / 3
Регистрация: 30.05.2014
Сообщений: 36
06.06.2014, 23:29 4
как минимум, забыта одна скобка в конце, и восьмерка не подходит под правило "n+1"
1
06.06.2014, 23:29
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
08.06.2014, 23:30  [ТС] 5
Просьба подсказать, как это записать в виде математической формулы (типа, n=i-1)
C++ (Qt)
1
for (int i=n; i>=0; i--)
0
tegauss
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
09.06.2014, 00:07 6
yaStudent, то, что Вы написали - это только цикл. Эквивалентная запись: i = [n..1]
1
yaStudent
2 / 2 / 0
Регистрация: 31.05.2014
Сообщений: 35
09.06.2014, 01:24  [ТС] 7
tegauss, я не понимаю этого, но в примере (в методичке приводится):
C++ (Qt)
1
2
3
4
for (i=1; i<=n; i++)
{y+=log(2+sin(x));
x+=h;
}
...который записывается как i=1,n-1

Вот полная запись цикла, который мне нужен:
C++ (Qt)
1
2
3
4
for (int i=n; i>=0; i--)
 {
    res=(i+pow2/(i+1))*res;
  }
0
MagdAmir
4 / 4 / 3
Регистрация: 30.05.2014
Сообщений: 36
09.06.2014, 10:00 8
Лучший ответ Сообщение было отмечено yaStudent как решение

Решение

так и пишите:
i = n, 0

Можно даже с верхним подчеркиванием "n, 0", которое на математическом языке обозначает от первого до второго...
1
09.06.2014, 10:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2014, 10:00

Объяснить работу программы (нахождение простых чисел, решето Эратосфена)
Поясните как работает эта прога а именно : #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Прошу объяснить о ссылках,указателях,стрелке -> и двоеточиях :: очень прошу я не понял синтаксис
Здравствуйте! Есть конкретно 4 типа: 1)стрелка (-&gt;) 2)указатели (*) 3)ссылки (&amp;) 4)2е...

Прошу объяснить код С++
здравствуйте, прошу объяснить как для полного нуба простейшими словами данный кусок кода: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru