Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2009, 17:19   #1
HawkSerj
Новичок
Джуниор
 
Регистрация: 08.02.2009
Сообщений: 2
Вопрос Как сделать, чтобы ГСЧ выдавал числа в определенном промежутке?

Мне надо, чтобы ГСЧ выдавал числа от 1 до 9. Как мне это сделать?
HawkSerj вне форума Ответить с цитированием
Старый 31.07.2009, 17:23   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Код:
RandomIze;
i := Random(9) + 1;
Здесь 9 - диапозон
+ 1 - что бы с еденицы
psycho-coder вне форума Ответить с цитированием
Старый 31.07.2009, 19:08   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Randomize нужно использовать только единожды (можно при создании формы)... *

Цитата:
Код:
Ну тогда уж
Код:
Random(8)+1
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 31.07.2009, 19:23   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Ну тогда уж
Действительно... Совсем забыл. Давно я рандомом не пользовался(
psycho-coder вне форума Ответить с цитированием
Старый 31.07.2009, 19:33   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Ну тогда уж
Random(8)+1
С какой это стати, ведь правильно же было написано i := Random(9) + 1;
random(9)это интервал от 0 до 8, и плюс 1=от 1 до 9.
puporev вне форума Ответить с цитированием
Старый 31.07.2009, 20:14   #6
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
С какой это стати, ведь правильно же было написано i := Random(9) + 1;
random(9)это интервал от 0 до 8, и плюс 1=от 1 до 9.
random(9) - это не интервал... Это функция, возвращающая псевдослучайное число от нуля до девяти...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 31.07.2009, 20:19   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Это функция, возвращающая псевдослучайное число от нуля до девяти...
Ну прочитайте же где-нибудь и запомните что не до 9, а до 8!
puporev вне форума Ответить с цитированием
Старый 31.07.2009, 20:19   #8
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Функция Random(9) вернёт значение 0 <= x < 9.
Значение 9, как несложно заметить, сюда не попадёт.

http://www.delphibasics.ru/Random.php - кстати тут походу опечатка.
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 31.07.2009, 20:24   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вообще, если нужно получить рандомно целые числа из интервала [a,b], то нужно написать так
x:=random(b-a+1)+a;
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так чтобы dBCOMBOBOX...... Gareevbo Общие вопросы Delphi 1 08.06.2009 19:59
Машина случайным образом генерирует натуральные числа в промежутке [0, 1, 2, … 100] JustinTI Помощь студентам 4 21.12.2008 14:31
Машина случайным образом генерирует натуральные числа в промежутке [0, 1, 2, … 10] до тех пор, пока не 0 JustinTI Помощь студентам 3 21.12.2008 14:31
Как сделать чтобы файл автоматически создался в определенном месте? DM_bite Помощь студентам 6 04.08.2008 19:11
Как сделать чтобы прога не закрывалась vitalik007 Общие вопросы Delphi 8 12.01.2008 23:32