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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2018, 22:04   #21
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
  x:=random(1000)-500; label1.Caption:=inttostr(x);
  y:=random(1000)-500; label3.Caption:=inttostr(y);
// получаем НОВОЕ заполнение(новый тест)
  timer:=timer+1;
  v:=x+y;  //считаем его
    m:=strtoint(edit1.Text);//вводим ОТВЕТ старого(!!!) теста
// и далее сравниваем ответ для старого с новым ...
 if(m=v) then begin p:=p+1; statusbar1.Panels.Items[1].Text:=inttostr(p);  end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 10.07.2018, 14:34   #22
BVnosferatu
Пользователь
 
Регистрация: 19.05.2018
Сообщений: 27
По умолчанию

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

timer:=timer+1;
v:=x+y;
m:=strtoint(edit1.Text);
if(m=v) then begin p:=p+1; statusbar1.Panels.Items[1].Text:=inttostr(p); end;
if(m<>v) then begin t:=t+1; statusbar1.Panels.Items[2].Text:=inttostr(t); end;
if(timer=30) then begin button2.Visible:=false; button1.Visible:=false; end;
edit1.clear;

randomize;
x:=random(1000)-500; label1.Caption:=inttostr(x);
y:=random(1000)-500; label3.Caption:=inttostr(y);
BVnosferatu вне форума Ответить с цитированием
Старый 10.07.2018, 14:37   #23
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от BVnosferatu Посмотреть сообщение
randomize;
Уберите randomize из процедуры!!!
Это нужно делать ОДИН РАЗ, при запуске приложения
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.07.2018, 22:50   #24
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

#7 Я уж и сам разобрался, что не в ту степь; убил пост, но успели прихватить
digitalis вне форума Ответить с цитированием
Старый 11.07.2018, 02:17   #25
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Уберите randomize из процедуры!!!
Это нужно делать ОДИН РАЗ, при запуске приложения
<OFFTOP>
Ну да. Такую рекомендацию можно встретить в некоторых книжках типа "Дельфи больше чем за 21 день". Но вот на чём она основана? И в чём её суть? Об этом не говорится нигде. Кроме самых-самых ранних книжек, которые уже хрен найдёшь.
</OFFTOP>
northener вне форума Ответить с цитированием
Старый 11.07.2018, 02:21   #26
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

А вот почему процедура Randomize до сих пор требует ручного вызова лично я не понимаю.
northener вне форума Ответить с цитированием
Старый 11.07.2018, 07:16   #27
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Каждый раз без неё будет генерироваться одна и та же последовательность чисел
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.07.2018, 09:44   #28
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
А вот почему процедура Randomize до сих пор требует ручного вызова лично я не понимаю.
Цитата:
Сообщение от Аватар Посмотреть сообщение
Каждый раз без неё будет генерироваться одна и та же последовательность чисел
В уродцах PascalABC и PascalABC.NET иницилизацию ГСПЧ системным таймеров выполняют самостоятельно. Randomize отставлен для совместимости, но необходимости в нём нет.
Вполне могли и в компиляторе Delphi такое же замутить.


Цитата:
Сообщение от northener Посмотреть сообщение
Ну да. Такую рекомендацию можно встретить в некоторых книжках типа "Дельфи больше чем за 21 день". Но вот на чём она основана? И в чём её суть? Об этом не говорится нигде. Кроме самых-самых ранних книжек, которые уже хрен найдёшь.
то же мне секрет Полишинеля!
я мог бы об этом рассказать. и, думаю, что не только я, очень многие (включая и Вас) это знают.

Но я не уверен, что это та информация, которой надо забивать голову (особенно новичкам).
Им достаточно знать, что иницилизацию ГПСЧ нужно вызывать один раз.
всё. Остальное - для них неважно (как, например, знать, какая полиноминальная функция используется для ГПСЧ )
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странная ошибка pufystyj Общие вопросы C/C++ 16 08.07.2012 15:15
Странная ошибка. WTI Общие вопросы Delphi 3 10.04.2012 18:39
странная ошибка Психвоплоти Помощь студентам 0 23.02.2011 15:01
Странная ошибка Dux SQL, базы данных 5 23.03.2010 12:16
Странная ошибка Washington БД в Delphi 2 16.03.2007 18:13