Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.04.2010, 00:00
Vladislav Vladislav вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 48
Репутация: 10
По умолчанию Math.Random

mini Задачка:
При нажатии на кнопку:

Сгенерировать случ. число (назовем его SNum) (от 1 до 20)
Циклом for:
- При каждом "проходе" цикла:
-- генерировать число в диапазоне 5-50 (назовём его FNum)
-- Добавлять в memo(add line) текст ('Случайное число:'+Fnum)
"Проходов" цикла должно быть столько, скольки равно случайное число (SNum).

Огромное спасибо тому, кто поможет.
Ответить с цитированием
  #2  
Старый 28.04.2010, 01:28
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,094
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Есть стандартная функция Random. Точнее 2 ее реализации. Первая, без параметров, возвращает тебе число х, такое, что 0 <= x < 1. Вторая (она, возможно, в модуле Math) имеет параметр - целое число (пусть N) и возвращает тоже целое число i, такое, что 0 <= i < N. Из первой во вторую преврящяется так:
Код:
1
RandomN := Int(Random * N);
Если тебе надо от 1 до N включительно, то просто к результату добавь 1.

Т.е. твоя задача делается так:
Код:
1
2
3
4
5
6
7
8
9
10
11
var
  I : Integer;
  SNum, FNum : Integer;
begin
  SNum := Int(Random * 20) + 1;
  For I := 1 To 20 Do
    Begin
       FNum := Int(Random * 45) + 5;
       // А здесь добавляешь в Memo
    End;
end;
или
Код:
1
2
3
4
5
6
7
8
9
10
11
var
  I : Integer;
  SNum, FNum : Integer;
begin
  SNum := Random(20) + 1;
  For I := 1 To 20 Do
    Begin
       FNum := Random(45) + 5;
       // А здесь добавляешь в Memo
    End;
end;

PS. Добавление делай сам. Хоть что-то ты должен сам сделать.
Ответить с цитированием
  #3  
Старый 28.04.2010, 08:51
beavi5 beavi5 вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 49
Репутация: 12
По умолчанию

RandomRange(x,y)
гинерирует случайное число в пределах от X до Y
__________________
Истина где-то рядом...
Ответить с цитированием
  #4  
Старый 28.04.2010, 08:51
beavi5 beavi5 вне форума
Прохожий
 
Регистрация: 13.04.2010
Сообщения: 49
Репутация: 12
По умолчанию

RandomRange(x,y)
гинерирует случайное число в пределах от X до Y
__________________
Истина где-то рядом...
Ответить с цитированием
  #5  
Старый 29.04.2010, 00:11
Vladislav Vladislav вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 48
Репутация: 10
По умолчанию

Как сделать паузы между проходами ? (Что то вроде sleep) т.е. добавилась запись в мемо, прошло 2-3 сек и ещё раз и т.п.

Можно было бы конечно использовать sleep, но при sleep в мемо строчки добавляются, а другие Edit'ы редактировать нельзя (ну или какие-либо действия совершать).

Последний раз редактировалось Vladislav, 29.04.2010 в 00:13.
Ответить с цитированием
  #6  
Старый 29.04.2010, 03:11
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Можно так - добавить таймер, настроить на 2-3 сек. В обработчике события добавить в мемо случайное число. По достижении нужного количества строк в мемо останавливить таймер.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:44.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025