Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
6 / 1 / 0
Регистрация: 04.10.2013
Сообщений: 42
1

Объясните результат работы следующей программы

08.12.2013, 18:03. Просмотров 455. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
    double x =1.23456789;
for(int i=0; i<1030;i++)
x=x/2;
for( int i=0; i <1030;i++)
x=x*2;
cout.precision (12);
cout<<fixed<<x<<endl;
Как изменится результат ее работы, если изменить количество
повторений на 1000, 1040,1050,1060,1070,1080? Почему????????
как бы вот в чем вопрос: если увеличивать число повторений,то результат сведется к нулю.ну т.е. если увеличить то число уменьшается.а вот почему? обьясните пжлст,не могу найти.4 источника перечитал ничего путнего про циклы не сказано.

Добавлено через 5 минут
и еще подскажите, если 2 заменить на 3 (x/3),(x*3),то почему при любых изменениях повторений результат равен "нулю"?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2013, 18:03
Ответы с готовыми решениями:

Объясните пожалуйста результат работы программы
#include &lt;iostream&gt; using namespace std; int main() { short int i; short unsigned...

Объясните принцип работы программы
Добрый день, мне нужно понять, как работает эта программа (она находит самое длинное слово из...

Объясните принцип работы программы
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt;...

Объясните принцип работы программы
Добрый день ( вечер ). Мне дано было задание: Определить класс, объектами которого являются...

1
0 / 0 / 1
Регистрация: 28.03.2012
Сообщений: 13
08.12.2013, 20:19 2
[QUOTE=Live4Sky;5457077]
C++
1
2
3
4
5
6
7
    double x =1.23456789; //Присвоить переменной x значение 1.23456789
for(int i=0; i<1030;i++)//Цикл в 1030 повторений
x=x/2; //Делим x на 2
for( int i=0; i <1030;i++)//Цикл в 1030 повторений
x=x*2; //Умножаем на 2
cout.precision (12); //Вывести значения до 12 знаков после запятой
cout<<fixed<<x<<endl;
Ваше число сводится к нулю из-за того, что вы задали в программе то, что после 12 знаков после запятой он не выведет другие числа. X постепенно становится всё меньше и меньше:
1. 0,00001,
---
50. 0,0000000000000000000001

В конечном итоге все 12 значений занимают нули, которые выводятся в консоль.

Если хотите больших значений просто уберите ограничение знаков после запятой, а так же замените double на long double.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2013, 20:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Объясните пожалуйста ход работы программы
Дан код #include&lt;iostream&gt; #include&lt;windows.h&gt; using namespace std; HANDLE console =...

Объясните пожалуйста код и ход работы программы на С++
Вот код фрагмента программы: int i; int l=strlen(str); int k=strlen(fsubstr); ...

Объясните код программы работы с двумерными массивами
#include &lt;time.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;iomanip&gt;...

Поясните результат работы программы
Поясните, пожалуйста, результат следующей программы: #include &lt;iostream&gt; struct A { char a; int...

Определить результат работы программы
16)Баллов: 1 Результат работы фрагмента программы char a, b, c; a='b'; b='c'; c=a; cout &lt;&lt; a...

Объясните код программы для работы с текстовыми файлами
Вот, собственно говоря, сам код: #include&gt; &quot;stdafx.h&quot; #include &lt;stdio.h&gt; void main(int...


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

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

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