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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 21:25   #1
motor666
 
Регистрация: 03.02.2009
Сообщений: 3
По умолчанию Ошибка с массивом. Система тестирования.

Здравствуйте! Пишу программу тестирования. Есть форма на ней одна кнопка Ответить , TWebBrowser для вывода вопросов из БД и радиокнопки для выбора ответов. На обработчик события нажатия кнопки Ответить я кидаю процедуру QuestGEN (n:integer); - процедура выборки случайного номера вопроса, где n - всего (кол-во) вопросов. Массив куда я сохраняю значения описан внешне .... я его "обнуляю" каждый раз при ShowForm и DestroyForm , т.е заполняю значениями "-1". Ниже привел пример процедуры которую пишу но она почему-то неправильно работает ...помогите пожалуйста исправить или подскажите как лучше с алгоритмом выборки.

var
QMass : array [1..100] of integer;

...............

procedure TTestForm.QuestGen(N:integer);
var
i,j,qnum : integer;
fnd:boolean;
begin
fnd:=FALSE;
Randomize;
qnum:=Random(N)+1; // выбираем случайным образом вопрос
showmessage(IntToStr(qnum));
for i:=1 to QCOUNT do
begin
if QMass[i] = qnum
then fnd:=TRUE
else fnd:=FALSE;
end;

if fnd then Showmessage('УЖО БЫЛ')
else QMass[i]:=qnum;

end;


///////////////////////////////////////////
procedure TTestForm.FormShow(Sender: TObject);
var
i:integer;
begin
IDUser:=TestData.ADODataSet4id.Valu e; // Определяем ID пользователя
IDTest:=TestData.ADODataSet5id.Valu e; // Определяем ID темы теста
QCOUNT:=QThemeCount; // Кол-во вопросов в тесте
for i:=1 to 100 do
begin
QMass[i]:=-1; // очищаем массив под выборку
end;

end;


//===================== При закрытии формы теста задаем параметры ============
procedure TTestForm.FormDestroy(Sender: TObject);
var
i:integer;
begin
TestData.ADOQuery1.Close; // Закрываем запрос Вопросов
IDUser:=0; // ID пользователя
IDTest:=0; // ID теста
QCOUNT:=0; // Кол-во вопросов в тесте
for i:=1 to 100 do
begin
QMass[i]:=-1; // очищаем массив под выборку
end;
end;
motor666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi: система тестирования знаний.(Начало: БД) devangel Помощь студентам 5 04.04.2009 22:26
Программа Тестирования. Spiker01 Паскаль, Turbo Pascal, PascalABC.NET 3 06.01.2009 13:14
прога для тестирования veyder21 Общие вопросы .NET 5 28.12.2008 15:21
Програма тестирования krolik Помощь студентам 2 21.11.2008 13:11
Програма тестирования студентов. lin Помощь студентам 6 20.04.2007 09:23