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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2012, 15:20   #1
py6jlb
 
Регистрация: 16.01.2012
Сообщений: 8
По умолчанию Вопрос по Random

Товарищи подскажите! Есть код
Код:
begin
B:=random(6);
if (B=0) then (sLabel1.Caption:= '        ДА');
if (B=1) then (sLabel1.Caption:= '        НЕТ');
if (B=2) then (sLabel1.Caption:= '    Многовероятно');
if (B=3) then (sLabel1.Caption:= '    Маловероятно');
if (B=4) then (sLabel1.Caption:= 'Затрудняюсь ответить');
if (B=5) then (sLabel1.Caption:= '   Спроси позднее');
Так вот при выполнеи его первое значение random получаеться равным "0", как сделать так чтоб значения были более рандомные, или заставить рандом повториться несколько раз а только потом выдавать значение! заранее спасибо!
py6jlb вне форума Ответить с цитированием
Старый 12.02.2012, 15:29   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Перед вызовом рандома вам надо инициализировать генератор случайных чисел.
Для этого просто напишите к коде:
Код:
Randomize;
то есть написать
Код:
begin
Randomize;
B:=random(6);
if (B=0) then (sLabel1.Caption:= '        ДА');
if (B=1) then (sLabel1.Caption:= '        НЕТ');
if (B=2) then (sLabel1.Caption:= '    Многовероятно');
if (B=3) then (sLabel1.Caption:= '    Маловероятно');
if (B=4) then (sLabel1.Caption:= 'Затрудняюсь ответить');
if (B=5) then (sLabel1.Caption:= '   Спроси позднее');
Вадим Мошев вне форума Ответить с цитированием
Старый 12.02.2012, 15:43   #3
py6jlb
 
Регистрация: 16.01.2012
Сообщений: 8
По умолчанию

Randomize иницализирован при создании формы, я прост забыл указать! то есть если несколько запускать random то числа получаються случайными но первое всегда "0", поэтому и нужно несколько раз выполнить рандом.
py6jlb вне форума Ответить с цитированием
Старый 12.02.2012, 15:49   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

модключите Math модуль и там будет RandomRange
Человек_Борща вне форума Ответить с цитированием
Старый 13.02.2012, 08:39   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

И в Вашем случае лучше пользоваться case чем столько много if then
FaTaL вне форума Ответить с цитированием
Старый 13.02.2012, 10:20   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

То есть, это будет записано как:

Код:
Case B of
0: Действие1;
1: Действие2;
.....
end;
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Random adm2010 Общие вопросы Delphi 4 23.01.2011 13:39
Random tabanga Помощь студентам 11 10.01.2011 23:45
random Syltan Общие вопросы C/C++ 1 24.05.2010 11:08
random Forrest Gamp Общие вопросы C/C++ 4 11.02.2008 09:46