![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компиляция и пошаговая компиляция дают разные результаты
Юля © (2005-08-09 11:45:00)Всем привет!!Возникла следующая проблема:
В базу заносятся данные.Например, 1-я строка таблицы: первые два поля заносим с клавиатура, а остальные получаются на их основе при помощи генератора сл. чисел. Аналогично последующие строки.(первые два поля одинаковые для всех строк.).При пошаговой компиляции результат правильный, но как только жму RUN от сл. чисел не остаётся и следа, получаются повторяющиеся строки. В чем причина?
msguns (2005-08-09 16:29:00) [1]И, кстати, казалось бы, причем тут базы данных
msguns (2005-08-09 16:28:00) [2]>Юля (09.08.05 12:08) [2]
Странный код..
Надо получить случайное значение в некотором диапазоне v1 - v2, которые задаются эдитами, так ?
Разумно было бы сделать расчет так:
result := v1+RANDOM(v2-v1),
а не заставлять генератор, а вместе с ним и процессор с системой заодно плясать буги-вуги до тех пор, пока солнце не взойдет, то бишь полученное случайным образом число от (0-v2) не превысит v1
или я чего-то недопонял ?
Digitman (2005-08-09 15:16:00) [3]
> в Edit-ы вводятся числа
в Edit НЕ вводятся "числа" - в Edit вводятся некие строковые значения, которые могут представлять в т.ч. и строковые представления неких ц/ч значений.
sniknik (2005-08-09 14:57:00) [4]Poirot © (09.08.05 13:50) [15]
> Мб особенность генератора
не может быть.
> или так и небольншая накладка в алгоритме вашем?
100%
в 17й строке.
> попробуй поюзать не стандартный ...
думаеш он свой алгоритм попутно исправит, вставляя нестандартный генератор случайных чисел? наивныыый... ;о)
Юля
ищи ошибку у себя в коде. и не говори, что то что ты здесь привел, это реальный код. это отмазка несоответствующая действительности. типа, просили код - получите код, сейчас выдумаем...
(а соответствует... это еще хуже.)
код лажовый, почему? да очень просто, в вопросе идет речь о последовательности, первые значения задаются, следующие расчитываются. в любом случае их(значений) несколько должно быть.
приведенных код "расчитывает" и записывает единственное, и то неверное (вернее единственно возможное при равенстве значений и "смертельное" (бесконечный цикл) при Edit1.Text > Edit2.Text. на что жалоб нет (код не работал ни разу? впечатление что так, а написано трассировали...)).
вобщем полное несоответствие показаного кода с описанными действиями якобы происходящими, ни тебе последовательности, ни расчета (следующего значения из предыдущего. как написано).
в половине вариантов значений программа впадает в "ступор", и даже прверки на эти значения нет, нда...
попробуй задать вопрос сдесь
http://www.delphimaster.ru/cgi-bin/forum.pl?n=18
Poirot (2005-08-09 13:50:00) [5]Мб особенность генератора или так и небольншая накладка в алгоритме вашем? попробуй поюзать не стандартный, а какой нить другой. например, у кнута позаимствованный - он, по умолчанию, в сишной реализации, что есть в нете, выдаёт сразу последовательно 2000 помоему псевдослучайных чисел :)
Юля (2005-08-09 13:31:00) [6]Но все таки, почему при во время отладки и просто запуска на выполнение получаются разные результаты: в первом правильный, а во втором - ерунда.
k2 (2005-08-09 13:13:00) [7]сорри проглядела
k2 (2005-08-09 13:01:00) [8]пример по random в справке, на randomize обрати внимание
Poirot (2005-08-09 12:46:00) [9]Советую продебажить кусок самой генерации x, есть подозрение, что то что вы джелаете в этом случае с нормальной скоростью и таки даёт это результат генератор работает нормально, но вот так как первые строки одинаковые могут быть проблемы с определением этого условия (x<StrToint(Table1Dop1.AsString))... так как. я не ручаюсь, но возможно чиско и буит постоянно одинаковым на протяжении какого-то периода...
Юля (2005-08-09 12:40:00) [10]в Edit-ы вводятся числа.<-они долны быть одинаковыми для всех строк. А значения, которые выдает генератор сл. чисел, вряд ли должны повторятся(например 3 строки полностью одинаковые).
Max Zyuzin (2005-08-09 12:34:00) [11]>Юля (09.08.05 12:08) [2]
А какие значения вводятся в Edit1 и Edit2?
И какие числа начинают повторятся?
Юля (2005-08-09 12:30:00) [12]Poirot, пускай отладка,но программа у меня от этого лучше не рабоает.
Юля (2005-08-09 12:28:00) [13]имеется
Poirot (2005-08-09 12:24:00) [14]Юля (09.08.05 12:19) [4]
Это не компиляция а уже процесс после неё - отладка в пошаговом режиме:)
roottim (2005-08-09 12:22:00) [15]
randomize;в секции инициализации модуля имеется ?
Юля (2005-08-09 12:19:00) [16]Это когда все время жмешь F7 и можно посмотреть работу программы по шагам.
Digitman (2005-08-09 12:12:00) [17]
> пошаговая компиляция
это как ?
Юля (2005-08-09 12:08:00) [18]Table1.Insert;
Table1Dop1.AsString:=Edit1.Text;
Table1Dop2.AsString:=Edit2.Text;
x:=0;
while (x<StrToint(Table1Dop1.AsString)) do
begin
x:=Random(StrToint(Table1Dop2.AsString)+1);
end;
Table1Izmer.Asstring:=IntToStr(x);
Table1.Post;
Poirot (2005-08-09 11:47:00) [19]А можно для начала хотябы код посмотреть?:) А то гадалка сегоджня в отпуске:)) лето знаетели:))