Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

05.09.2013, 16:28. Просмотров 1259. Ответов 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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2013, 16:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как все это в подробностях работает? (C++):

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

Как это работает? Я хочу спросить как работает C++ и где можно про него почитать - C++
Привет, котоны. Заранее благодарю. Это будет моих общих вопросов нить, т.к. создавать целую ветку для каждого нецелесообразно. Я хочу...

Русификация.Работает-супер! Обьяснитте, как это работает? - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; using namespace std; char* Rus(const char* text); int main () ...

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

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

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

36
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,070
Завершенные тесты: 1
05.09.2013, 17:03 #16
Цитата Сообщение от MRG_Serejka Посмотреть сообщение
for(i=0;r<=20000;i++)
r=rand();
тут все немного запутанней,
Цитата Сообщение от VLK Посмотреть сообщение
т.е. количество шагов тут должно быть от 0 до 20000
r <= 20000 означает что цикл остановится когда rand() > 20000
1
SNIKERSMRG
3 / 3 / 1
Регистрация: 15.08.2013
Сообщений: 30
05.09.2013, 17:05 #17
Цитата Сообщение от Raali Посмотреть сообщение
тут все немного запутанней,

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


Количество шагов все время равно 3-ем ? чем это определяется ?
0
Миниатюры
как все это в подробностях работает?  
Kuzia domovenok
2030 / 1874 / 168
Регистрация: 25.03.2012
Сообщений: 6,451
Записей в блоге: 1
05.09.2013, 17:05 #18
Цитата Сообщение от VLK Посмотреть сообщение
т.е. числа будут одинаковые?
http://ideone.com/wEZ5ZX
2
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;
        
}
Вот так сделай
1
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,070
Завершенные тесты: 1
05.09.2013, 17:10 #20
Цитата Сообщение от SNIKERSMRG Посмотреть сообщение
Количество шагов все время равно 3-ем ? чем это определяется ?
тем что rand() это функция, подчиняющаяся определенным правилам, как тот же синус например, который всегда при одном и том же аргументе будет возвращать одно и то же значение, разница лишь в том что мы можем задать для rand() сид - первоначальное зерно, которое осуществит сдвиг нашей функции на другие выходящие значения, ну и еще в том что rand не имеет аргументов, а при вызове сам сдвигается по "x" как бы.
Выходит если сид будет одинаковый то rand() будет давать одну и ту же последовательность разных значений, для этого сид привязывают к каким то случайным параметрам, таким как время например.
srand(time) - задать SID равный времени
1
SNIKERSMRG
3 / 3 / 1
Регистрация: 15.08.2013
Сообщений: 30
05.09.2013, 17:13 #21
Цитата Сообщение от MousePro Посмотреть сообщение
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;
        
}
Вот так сделай
а ведь ничего не поменялось кроме цифры 10 вместо 20000.
Вы хотите сказать что в зависимости от цифры до ограничения рандома, будет разный шаг ?

Т.е. к примеру, идет круг, i=0 сначала, число рандома меньше 20000, i=i+1


аааааа...т.е. пока рандом будет выдавать числа меньше 20000 алгоритм будет работать да ? или наоборот ?
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
05.09.2013, 17:18 #22
Цитата Сообщение от Kastaneda Посмотреть сообщение
рандом не зависит от "часов". Он зависит от seed'а, в качестве которого обычно подают текущее время, но это может быть любое другое (каждый раз разное) число.
а если подключить randomize; генерировать разные числа будут? или он работает только для random.
1
Raali
05.09.2013, 17:25
  #23

Не по теме:

Цитата Сообщение от Bend3r Посмотреть сообщение
randomize
что еще за randomize?

2
VLK
194 / 163 / 12
Регистрация: 05.05.2013
Сообщений: 1,196
05.09.2013, 17:29 #24
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
ну добавим еще одну операцию (+ i) и уже будут разные числа

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
cout<<"random sequence? really?"<<endl;
 
for (int i=0; i<10; i++) {
 
srand(time(NULL) + i);
 
cout<<rand()<<endl; }
 
system("pause");
return 0;
}
как говорится выход есть всегда

хотя это не совсем тот рандом, который хотелось бы видеть.
1
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,070
Завершенные тесты: 1
05.09.2013, 17:30 #25
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от VLK Посмотреть сообщение
ну добавим еще одну операцию (+ i) и уже будут разные числа
только почему бы srand не взять ДО цикла)
3
VLK
194 / 163 / 12
Регистрация: 05.05.2013
Сообщений: 1,196
05.09.2013, 17:33 #26
Цитата Сообщение от Raali Посмотреть сообщение
только почему бы srand не взять ДО цикла)
либо еще лучше так.
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,070
Завершенные тесты: 1
05.09.2013, 17:51 #27
for (int i=0; i<10; i++) {
srand(time(NULL) );
дело в том что цикл работает так быстро что time(NULL) возвращает одно и то же значение
0
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
05.09.2013, 18:05 #28
Цитата Сообщение от Raali Посмотреть сообщение
что еще за randomize?
когда используешь функцию random к ней можно подключить randomize и при каждом новом рандоме будут совсем разные числа, а не повторяться.
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
05.09.2013, 18:17 #29
Bend3r, по-моему кто-то попутал плюсы и паскаль...
2
SatanaXIII
Супер-модератор
Эксперт С++
5638 / 2673 / 252
Регистрация: 01.11.2011
Сообщений: 6,569
Завершенные тесты: 1
06.09.2013, 09:41 #30
Цитата Сообщение от Afflicted Посмотреть сообщение
по-моему кто-то попутал плюсы и паскаль...
Турбо паскаль. И там Randomize.
А в борланде (а может и не только) макроподстановка, включенная в stdlib.h (само собой желательно подключение time.h):
C++
1
inline void _RTLENTRY randomize(void) { srand((unsigned) time(NULL)); }
0
06.09.2013, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2013, 09:41
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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