![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Народ подскажите как сравнить рандомное число и элементы массива. я пишу тест.
Код:
var
...
a:array[0..1000] of integer;
pos:integer;
... // это всё глобальные переменные;
procedure Tform1.uslovie(pos:integer);
var
x:integer;
begin
x:=0;
while x<1000 do
if a[x]=pos then
begin
pos:=random(trunc(sl.Count/8));//значение меняется
x:=0;
showmessage ('');// ввёл для себя
end
else x:=x+1;
end;pos заранее задается. в массив элементы записываются ещё до этого следующим образом pos:=random(trunc(sl.Count/8)); nomervoprosa:=nomervoprosa+1; tform1.uslovie(pos); a[nomervoprosa]:=pos; при таком использовании всё равно вопросы повторяются(((( Подскажите как в этом случае сделать так чтобы не повторялись. Не предлагайте менять весь код уже времени нет. Последний раз редактировалось Admin, 07.07.2010 в 20:28. |
|
#2
|
|||
|
|||
|
Я не силён в этом, но могу предложить переносить неиспользованные элементы в новый массив или смещать в старом относительно используемого,т.е удаление ненужного.
|
|
#3
|
|||
|
|||
|
Что есть sl?
Цитата:
|
|
#4
|
|||
|
|||
|
Sl это переменная типа tstringlist
count число записанных в нее элементов. |
|
#5
|
|||
|
|||
|
Цитата:
Так вся проблема в том что массив формируется только при ответе на вопрос Код:
a:array[0..1000] a[nomervoprosa]:=pos; я уже указывал всё. Или я тебя не понял. |
|
#6
|
|||
|
|||
|
заведи 2-ой стринглист.
изначально равный 1-му. (перед начало теста) в процедуре выбора вопроса выбирай индекс из диапазона от 0 до 2-й стринглист. выбранный вопрос показываешь и удаляешь эту строчку из стринглиста. и все. нет никакого гемороя с циклами и т.п. |
|
#7
|
|||
|
|||
|
Цитата:
Я сделал так что он всё удаляет из первого и выбирает из оставшихся вопросов. спасибо за совет))) |