Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
MRG_Serejka
15 / 15 / 7
Регистрация: 15.08.2013
Сообщений: 177
Завершенные тесты: 2
#1

как все это в подробностях работает? - C++

05.09.2013, 16:28. Просмотров 1137. Ответов 36
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
#include<cstdlib>
using namespace std;
 
int main() 
{
    setlocale(LC_ALL, "Russian");
    int i;
    int r;
    r=rand();
for(i=0;r<=20000;i++)
    r=rand();
cout<<"число равно"<<r<<".Оно было получено на шаге "<<i<<".";
 
return 0;
        
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2013, 16:28     как все это в подробностях работает?
Посмотрите здесь:

Стек и куча: как все это работает? - C++
Добрый вечер, подскажите пожалуйста хорошую литературу (сайты) по куче и стеку. Как оно все работает? Насколько я понял все статические...

Как это работает? - C++
Здравствуйте, можете, пожалуйста, поэтапно объяснить как работает приведенный ниже фрагмент кода? Что такое floor, return, ceil? double...

Как это работает? - C++
#include &lt;iostream&gt; int *fun() { int a = 5; return &amp;a; } int main() { int *ptr = fun(); std::cout &lt;&lt;...

Как это работает? - C++
Читаю я кое какой &quot;учебник&quot;, и в нём появился такой вот кусок кода int input (tank&amp; t, char map) { char act; int ch; int e =...

Как это работает - C++
Здравствуйте уважаемые форумчане!Как это работает? Как например предотвратить выход за приделы допустимых значений переменных!? ...

Как это работает? - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; int main() { char* s=new char; ...

Как это работает? - C++
Доброго времени суток. Граждане программисты, подскажите пожалуйста как работает данный кусок кода??? А точнее дружественные функции...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
05.09.2013, 16:32     как все это в подробностях работает? #2
какая строчка вызывает затруднения, тут нет каких то сложных выражений даже
MRG_Serejka
15 / 15 / 7
Регистрация: 15.08.2013
Сообщений: 177
Завершенные тесты: 2
05.09.2013, 16:33  [ТС]     как все это в подробностях работает? #3
почему если это рандом, цифры выскакивают одни и те же?
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
05.09.2013, 16:35     как все это в подробностях работает? #4
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
почему если это рандом, цифры выскакивают одни и те же?
потому что рандом так устроен, что бы он выкидывал разные цифры нужно еще припахать сюда часы (библиотеку time) и тогда можно будет выводить действительно разные цифры
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 1
Завершенные тесты: 1
05.09.2013, 16:39     как все это в подробностях работает? #5
Цитата Сообщение от VLK Посмотреть сообщение
нужно еще припахать сюда часы
рандом не зависит от "часов". Он зависит от seed'а, в качестве которого обычно подают текущее время, но это может быть любое другое (каждый раз разное) число.
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
05.09.2013, 16:41     как все это в подробностях работает? #6
Kastaneda, все правильно, он не зависит от часов, по этому (а может и не по этому) он выдает одни и те же значения, а если к нему прикрутить часы, то будут разные значения.
SNIKERSMRG
3 / 3 / 1
Регистрация: 15.08.2013
Сообщений: 30
05.09.2013, 16:43     как все это в подробностях работает? #7
Цитата Сообщение от VLK Посмотреть сообщение
Kastaneda, все правильно, он не зависит от часов, по этому (а может и не по этому) он выдает одни и те же значения, а если к нему прикрутить часы, то будут разные значения.

А что это за шаги ? "Было получено на шаге" ?? Шаг тоже рандомный ?
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
05.09.2013, 16:46     как все это в подробностях работает? #8

Не по теме:

Цитата Сообщение от SNIKERSMRG Посмотреть сообщение
А что это за шаги ?
Кто то еще слышал шаги?



Шаг это итерация цикла видимо, в данном случае цикл повторяется 20000 раз, значит у него 20000 шагов
SNIKERSMRG
3 / 3 / 1
Регистрация: 15.08.2013
Сообщений: 30
05.09.2013, 16:47     как все это в подробностях работает? #9
Цитата Сообщение от Raali Посмотреть сообщение

Не по теме:


Кто то еще слышал шаги?

C++
1
2
3
4
5
for(i=0;r<=20000;i++)
 r=rand();
 cout<<"число равно"<<r<<".Оно было получено на шаге "<<i<<".";
 
 return 0;
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
05.09.2013, 16:47     как все это в подробностях работает? #10
Книга - Как программировать на C++, автор Дейтел, страница 347 - пример программы, там при помощи time получаются разные значения, если кому то интересно.
SNIKERSMRG
3 / 3 / 1
Регистрация: 15.08.2013
Сообщений: 30
05.09.2013, 16:49     как все это в подробностях работает? #11
Цитата Сообщение от VLK Посмотреть сообщение
Книга - Как программировать на C++, автор Дейтел, страница 347 - пример программы, там при помощи time получаются разные значения, если кому то интересно.

Скажите пожалуйста что это за "получено на шаге" ??

Шаг это что за число ? и каким образом шаг определяется ? тоже рандомно ? оно все время другое ?
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
05.09.2013, 16:54     как все это в подробностях работает? #12
Цитата Сообщение от VLK Посмотреть сообщение
нига - Как программировать на C++, автор Дейтел, страница 347 - пример программы, там при помощи time получаются разные значения
Вот и покажи, что там пишут в этой книге. Для новой случайной последовательности должен быть задан сид. Обычно в качестве сида используют текущее время, но не обязательно, чтобы сид был именно временем!
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
05.09.2013, 16:58     как все это в подробностях работает? #13
Цитата Сообщение от SNIKERSMRG Посмотреть сообщение
Скажите пожалуйста что это за "получено на шаге" ??

Шаг это что за число ? и каким образом шаг определяется ? тоже рандомно ? оно все время другое ?
оператор for, это цикл, его условия - (i = 0; r <= 20000; i++)

i=0 - i равно 0 (изначально)
r<=20000 - цикл будет повторяться пока r меньше или равно 20000
i++ - с каждым шагом, кругом, повторение цикла i увеличивается на 1.

т.е. количество шагов тут должно быть от 0 до 20000 и учитываются они в переменной i, она и показывает количество шагов - cout<<"число равно"<<r<<".Оно было получено на шаге "<< i <<"."
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
05.09.2013, 16:58     как все это в подробностях работает? #14
Более того, для получения последовательности случайных чисел, srand должен быть вызван один раз!
При попытке вызывать srand(time(0)) в цикле, генератор будет сбрасываться в изначальное состояние функцией srand (учитывая, что значение time() в процессе выполнения программы особо не успевает измениться)
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,225
05.09.2013, 17:00     как все это в подробностях работает? #15
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Более того, для получения последовательности случайных чисел, srand должен быть вызван один раз!
При попытке вызывать srand(time(0)) в цикле, генератор будет сбрасываться в изначальное состояние функцией srand (учитывая, что значение time() в процессе выполнения программы особо не успевает измениться)
т.е. числа будут одинаковые?
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
05.09.2013, 17:03     как все это в подробностях работает? #16
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
for(i=0;r<=20000;i++)
r=rand();
тут все немного запутанней,
Цитата Сообщение от VLK Посмотреть сообщение
т.е. количество шагов тут должно быть от 0 до 20000
r <= 20000 означает что цикл остановится когда rand() > 20000
SNIKERSMRG
3 / 3 / 1
Регистрация: 15.08.2013
Сообщений: 30
05.09.2013, 17:05     как все это в подробностях работает? #17
Цитата Сообщение от Raali Посмотреть сообщение
тут все немного запутанней,

r <= 20000 означает что цикл остановится когда rand() > 20000


Количество шагов все время равно 3-ем ? чем это определяется ?
Миниатюры
как все это в подробностях работает?  
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
05.09.2013, 17:05     как все это в подробностях работает? #18
Цитата Сообщение от VLK Посмотреть сообщение
т.е. числа будут одинаковые?
http://ideone.com/wEZ5ZX
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
05.09.2013, 17:08     как все это в подробностях работает? #19
Цитата Сообщение от SNIKERSMRG Посмотреть сообщение
Количество шагов все время равно 3-ем ? чем это определяется ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> 
#include<cstdlib>
using namespace std;
 
int main() 
{
    setlocale(LC_ALL, "Russian");
    int i=0;
    int r=0;
    r=rand();
for(i=0;r<=10;i++)
{
    r=rand();
cout<<"число равно"<<r<<".Оно было получено на шаге "<<i<<".";
}
 
return 0;
        
}
Вот так сделай
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 17:10     как все это в подробностях работает?
Еще ссылки по теме:

объясните как это работает - C++
#include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; long func (long * arr, int length) { return...

COORD position = {0,0}; - как это работает? - C++
Здравствуйте. Разбираю код двух программ: &quot;Сапер&quot; и &quot;Змейка&quot; и в каждой из них есть, вроде бы, функция COORD. То, что COORD position =...

объясните грамотно как это работает - C++
1)int * arr = NULL; и int * arr = new int;(что означает new) 2)можно менять int * arr = NULL на int * arr = {0} или int * arr = 0

Функция printf () как это работает - C++
Здраствуйте Ув. Форумчане. Прошу помочь разобраться с конкретным примером. #include &lt;iostream&gt; #include &lt;stdio.h&gt; float d = 1; ...

Методы доступа - как это работает? - C++
Здравствуйте, я изучаю С++ по книге Джесс Либерти: Освой самостоятельно C++ за 21 день. Мой вопрос, наверное, глупый, но хочется просто...


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

Или воспользуйтесь поиском по форуму:
Raali
622 / 326 / 34
Регистрация: 06.07.2013
Сообщений: 1,054
Завершенные тесты: 1
05.09.2013, 17:10     как все это в подробностях работает? #20
Цитата Сообщение от SNIKERSMRG Посмотреть сообщение
Количество шагов все время равно 3-ем ? чем это определяется ?
тем что rand() это функция, подчиняющаяся определенным правилам, как тот же синус например, который всегда при одном и том же аргументе будет возвращать одно и то же значение, разница лишь в том что мы можем задать для rand() сид - первоначальное зерно, которое осуществит сдвиг нашей функции на другие выходящие значения, ну и еще в том что rand не имеет аргументов, а при вызове сам сдвигается по "x" как бы.
Выходит если сид будет одинаковый то rand() будет давать одну и ту же последовательность разных значений, для этого сид привязывают к каким то случайным параметрам, таким как время например.
srand(time) - задать SID равный времени
Yandex
Объявления
05.09.2013, 17:10     как все это в подробностях работает?
Ответ Создать тему
Опции темы

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