Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 09.07.2018, 23:04   #21
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,744
Репутация: 2097
По умолчанию

Код:

  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, 15:34   #22
BVnosferatu
Пользователь
 
Регистрация: 19.05.2018
Сообщений: 25
Репутация: 10
По умолчанию

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, 15:37   #23
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,499
Репутация: 5308
По умолчанию

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

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

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

А вот почему процедура Randomize до сих пор требует ручного вызова лично я не понимаю.
northener вне форума   Ответить с цитированием
Старый 11.07.2018, 08:16   #27
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,998
Репутация: 6348
По умолчанию

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

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


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

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

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


06:40.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru