Советую использовать следующий принцип. Каждый билет мы оформим вот таким образом:
Code
V$[1]='4|1|1|2|1|2|3|4|'
V$[2]='1|2|2|4|1|3|4|1|'
[N] - номер билета, а с правой части, через разделитель, правильные варианты ответа для каждого из восьми вопросов. Почему так удобнее организовать данные? Да потому, что их потом элементарно извлечь!
Quote (Игорь)
при выборе первого билета получаем bilet$='1'
Эта переменная нам нужна, чтобы подставить её в индекс массива V$. Но только предварительно она должна быть числовой. Вот так:
Получим: V$[bilet]. Теперь знаем, в какой массив из 45 лезть за правильными ответами.
Далее. При переходах на страницу вперёд/назад ты должен иметь некую переменную, в которой отражается текущий номер вопроса. Получить правильный ответ этого вопроса уже совсем просто:
Code
answer$=GetArrayItem(V$[bilet],'|',q)
где q - номер текущего вопроса.
При значении bilet = 1 и q = 5, с помощью кода выше мы получим правильный ответ на текущий вопрос (глядя на мой массив в начале сообщения) в виде цифры 1.
Ну а дальше - дело техники. Как ты будешь подсчитывать правильные ответы.
Можешь создать массив, например, Q, и заносить туда ответы пользователя. Зачем так? А потому, что он может пропускать вопросы и возвращаться к ним, изменяя ответ.
Например, ответил пользователь на третий вопрос (при этом q=3), ты заносишь:
Code
Q[q ]=переменная_с_номером_выбранного_ответа
(пардон за лишний пробел после q - форум выделывается)
В конце делаем вот что:
Code
result=0
For i=1 To 8
If (Q[i]=VAL(GetArrayItem(V$[bilet],'|',i))) Then
result=result+1
End
Next i
Message("","result")
Число правильных ответов у тебя уже в result. Дальше математика - огласка оценки...