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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2010, 22:07   #1
Kostya1981
Пользователь
 
Аватар для Kostya1981
 
Регистрация: 12.02.2010
Сообщений: 11
По умолчанию Delphi7: функция random + timer

Здравствуйте. Не могу реализовать следующую простую програмку:

Необходимо создать генератор случайного числа, который бы через определенный интервал времени повторял бы генерацию, но уже от предыдущего случайного числа, а не от заданного.

Вобщем пробую следующее:
procedure TForm1.Timer1Timer(Sender: TObject);
var
n:integer;
begin
n:=100+random(5)-random(5); // 100 - это стартовое число,
// от которого необходимо генрерировать // в диапозоне -5 до 5 (чтоб и в плюс и в минус могло).
n:=n+(random(5)-random(5)); // пытаюсь программе сказать,
// что последующие числа должна генерировать
// от предыдущего случайного значения.

Label1.Caption:=inttostr(n); //чтоб показать.

end;
end.


Но она меня не понимает и начинает генерировать сново от 100. Т.е. мне нужно чтобы при запуске было с интервалами времени: 102 --> 107 --> 101 --> 97 --> 95 --> 89 -->82 и т.д. А оно в место этого: 100-->103-->101-->98-->102-->100-->101 и т.д.

Вот! Я с чистой совестью заявляю, что пробовал по вскому, даже с goto, но кроме возврата к 100 или зависаний ничего добиться не могу. И я понимаю, что процедура просто с самого начала повторяется, но как это исправить не знаю.
Kostya1981 вне форума Ответить с цитированием
Старый 12.02.2010, 22:23   #2
crystalbit
ГОСТ 2.403-75
Пользователь
 
Аватар для crystalbit
 
Регистрация: 04.05.2009
Сообщений: 92
По умолчанию

Так очевидно же, что он у тебя всегда сначала от 100 идёт, а потом от этого числа. И при повторном вызове снова от 100.
Объяви n глобально и сделай от 100 только один раз, на OnCreate формы, например.
мой скромный delphi блог
crystalbit вне форума Ответить с цитированием
Старый 12.02.2010, 22:34   #3
Kostya1981
Пользователь
 
Аватар для Kostya1981
 
Регистрация: 12.02.2010
Сообщений: 11
По умолчанию

'n' глобально, oncreate... - ладно это вопрос уже скорее к книжкам, спасибо большое - понял в каком направлении двигаться, будем изучать и пробовать.
Kostya1981 вне форума Ответить с цитированием
Старый 12.02.2010, 23:28   #4
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

Это, вообще-то, фундаментальные знания. Кто тебя программированию учил?))
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Timer... Teleport Общие вопросы Delphi 13 14.09.2011 17:02
Функция "Random" в Паскале... Вадим Буренков Помощь студентам 1 07.03.2009 17:43
Timer Arhangel_bes Помощь студентам 2 27.10.2008 17:55
Timer... Roof Общие вопросы Delphi 11 11.10.2007 12:57
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50