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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2011, 16:16   #1
dearkato
Пользователь
 
Регистрация: 15.10.2011
Сообщений: 29
По умолчанию генератор случайных чисел

Выдать на экран 5 целых случайных чисел в диапазоне от -15 до +36.
Вот что я написала, вот только он не выдает отрицательных чисел((( в чем ошибка??
Код:
procedure TForm1.button1Click(Sender: TObject);
var a,b,c,d,e,i:Shortint;
begin
Randomize;
for i:=-15 to +36 do
begin
a:=Random(i);
b:=Random(i);
c:=Random(i);
d:=Random(i);
e:=Random(i);
end;
label2.Caption:=IntToStr(a)+' '+IntToStr(b)+' '+IntToStr(c)+' '+IntToStr(d)+' '+IntToStr(e);
end;
dearkato вне форума Ответить с цитированием
Старый 29.10.2011, 16:31   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
randomize;
label2.caption:='';
for i:=1 to 5 do 
  begin
     x:=random(52)-15;
     label2.caption:=label2.caption+' '+inttostr(x);
  end;
а у вас ошибка вот в чем
Код:
for i:=-15 to +36 do
цикл от -15 до 36 это все равно что от 1 до 21

т.е. грубо говоря вы 21 раз меняете значения переменных a,b,c,d,e
причем конечное значение( random(36) ) у переменных будет в диапазоне от 0 до 35

Последний раз редактировалось unbanned; 29.10.2011 в 16:48.
unbanned вне форума Ответить с цитированием
Старый 29.10.2011, 20:51   #3
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Цитата:
Сообщение от unbanned Посмотреть сообщение
все равно что от 1 до 21
поправка))) не до 21го, а аж до 52х
unbanned вне форума Ответить с цитированием
Старый 30.10.2011, 13:16   #4
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

я вообще смысла цикла не понял. Вы 52 раза присваиваете переменным значения и никак их не используете. Причем финальный этап выглядит так:
a:=Random(36);
b:=Random(36);
c:=Random(36);
d:=Random(36);
e:=Random(36);

почему просто не написать:
Код:
for i:=1 to 5 do
label2.Caption:=IntToStr( random(52) - 15 )+' '+label2.Caption;
ЗЫ заметьте, вы используете на десяток байт памяти меньше
ЗЫЫ модераторы, извините за второе сообщение

Последний раз редактировалось Sna1L; 30.10.2011 в 13:21.
Sna1L вне форума Ответить с цитированием
Старый 30.10.2011, 13:16   #5
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

я вообще смысла цикла не понял.
почему просто не написать:
Код:
for i:=1 to 5 do
label2.Caption:=IntToStr( random(52) - 15 )+label2.Caption;
Sna1L вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор случайных чисел Evgenii(Евгений) Помощь студентам 6 23.01.2011 22:41
Генератор случайных чисел Костян Пират Общие вопросы Delphi 8 23.01.2011 22:08
Генератор случайных чисел Creativety Фриланс 10 27.12.2010 12:33
C++ генератор случайных чисел sir.andrey Помощь студентам 4 03.09.2010 12:22
Генератор случайных чисел psychopat Общие вопросы Delphi 11 18.02.2009 10:39