![]() |
|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
![]() Цитата:
Я сделал так что он всё удаляет из первого и выбирает из оставшихся вопросов. спасибо за совет))) |