![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.01.2008
Сообщений: 3
|
![]()
Начал обучение языку Delphi по книге Валерия Фаронова - "Система программирования Delphi" ,ну и поскольку человек я усидчивый, хочу разбираться в каждой мелочи,возник вопрос, который не могу решить своими силами, поэтому обращаюсь к знатокам на этом форуме, помогите пожалуйста.
Суть проблемы Есть самая простенькая программка-игра "Угадай число", программа случайным образом выбирает число в диапазое от 0 до 1000,запоминает его и потом пользователь пытается его угадать. Вообщем то во всём разобрался и программка компилируется и запускается - НО почему то ВСЕГДА программа выбирает число 0. Ниже представляю листинг программы: Код:
Повторю,что всё работает,но почему то программа постоянно загадывает только 0! Почитал в справке Delphi про Random, там всё написанно так,как я и делаю. Работаю в среде Delphi 7, под Windows Vista, возможно это из за проблем совместимости? Хотя все другие программы что я компилировал и писал (их пока не много) работают нормально. Заранее благодарю за ответ. Последний раз редактировалось IDDQD; 12.01.2008 в 17:25. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 12.01.2008
Сообщений: 3
|
![]()
По книге этого не было в тексте программы.
В Help`e читал об этой процедуре,но понял что это неcколько другое, она генерирует случайные числа на основе системного таймера, а та что представлена в этой программе,просто псевдослучайные числа,дак вот мне интересное почему она это НЕ делает и постоянно выбирает 0? При помощи вашего варианта,все заработало нормально, но непонятно почему не работает Random. Последний раз редактировалось IDDQD; 12.01.2008 в 17:52. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]()
Random генерирует псевдослучайные числа, используя переменную RandSeed, которая изменяется по некоторому алгоритму при каждом вызове Random.
Randomize изменяет RandSeed, используя системный таймер. Таким образом, можно либо генерировать числа на основе таймера, т.е. перед каждым Random вызывать Randomize, либо генерировать псевдослучайные числа, инициализировав 1 раз RandSeed с помощью Randomize. Обычно используется 2-й метод, т.е. случайные числа получаются с помощью Random, а Randomize вызывается 1 раз в начале программы (например, в разделе initialization модуля или по событию OnCreate формы). |
![]() |
![]() |
![]() |
#5 | |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
![]()
http://www.delphibasics.ru/Randomize.php
http://www.delphibasics.ru/Random.php Почитай... Цитата:
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 12.01.2008
Сообщений: 3
|
![]()
Всем спасибо, разобрался.
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
![]()
просто перед random нужно пользоваться randomize - функция выдает каждый раз новое число. Random - без randomize выдаст каждый раз одно и тоже число. В книге это обьесняется примерно так: Это нужно для нахождения ошибок в программе. После отработки всей программы, нужно выше функции Random написать randomize
Писано по д'Эльфийски
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Random | Febreze | Общие вопросы Delphi | 2 | 28.04.2008 14:17 |
как оператором insert вставить данные сразу в две таблицы? | furstenberg | БД в Delphi | 2 | 18.10.2007 16:39 |
Джентльмены, помогите, пжлст. каким оператором высчитать корень 5-ой степени числа? | Osi@ | Помощь студентам | 32 | 03.10.2007 19:52 |
Помогите пожалуйста!!! С использованием функции Random сформировать одномерный массив | Vanya_www_333 | Помощь студентам | 1 | 17.08.2007 13:38 |