Основные особенности тренажера
Вид экрана (основной режим):
Дальше | |||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||
Структура действий
Циклическая с командным управлениям (как тест). Рекомендуются заставка и показ результата. Основная процедура циклической части – Дальше_Click. Ее структура (вытекает из знаний о тесте):
1) проверка ответа
2) возможно – комментарий + стоп
3) следующий вопрос, либо отчет о результатах (условие – по количеству примеров).
Рекомендуется создание вложенной процедуры vopros
Организация работы с одним вопросом может иметь несколько уровней сложности=качества программы:
0) без комментариев идем дальше;
1) при ошибке даем сообщение, но идем дальше;
2) при ошибке зацикливаем программу до правильного ответа;
3) зацикливаем на определенное количество попыток;
4) показываем правильный ответ, если все попытки исчерпаны.
Глобальные переменные
Kol_Voprosov | количество заданных/выполненных примеров |
popytki | количество использованных попыток (на каждый пример заново) |
prav / osh | количество правильных ответов/ошибок |
etalon | эталонный ответ на пример |
Некоторые переменные могут относиться к уровню формы, однако проще все их объявить абсолютно глобальными. Если вы даете несколько попыток, то решайте сами, что считать правильным ответом и как считать ошибки.
Генерация случайных примеров
В VBA существует свой датчик случайных чисел. Он реализован с помощью функции Rnd (англ. Random – случайный).
Формат: Rnd()
Пример: a = Rnd()
Функция возвращает случайное число в диапазоне 0 ≤ a < 1.
Как правило, случайное значение требует математической обработки. Стандартные случаи такой обработки рекомендуется оформлять как пользовательские функции.
Пример1. Функция возвращает случайное целое число в диапазоне от 0 до n-1.
Шаг | Результат |
a = Rnd() | 0 ≤ a < 1 («дробное») |
a = a * n | 0 ≤ a < n («дробное») |
a = int(a) | 0 ≤ a < n (целое) или 0 ≤ a ≤ n-1 |
Обработку запишем в свернутой форме («выражением»):
Function Int_Rnd(n As Integer)
Int_Rnd = int(Rnd() * n)
End Function
Пример2. Функция возвращает случайное целое число в диапазоне от a до b.
Шаг | Результат (для a=3, b=8) |
n = Int_Rnd(b - a + 1) | 0 ≤ n ≤ 5 диапазон той же длины, что и 3 ≤ n ≤ 8 |
n = n + a | 3 ≤ n ≤ 8 |
Function IR_diap(a As Integer, b As Integer)
IR_diap = Int_Rnd(b - a + 1) + a
End Function
Пример использования для генерации примера на табличное умножение (часть текста процедуры vopros):
Dim a As Integer
Dim b As Integer
Dim primer As String
a = IR_diap(2, 9)
b = IR_diap(2, 9)
primer = a & “*” & b & “=”
etalon = a * b
2019-05-24 | 189 | Обсуждений (0) |
5.00
из
|
Обсуждение в статье: Основные особенности тренажера |
Обсуждений еще не было, будьте первым... ↓↓↓ |
Почему 1285321 студент выбрали МегаОбучалку...
Система поиска информации
Мобильная версия сайта
Удобная навигация
Нет шокирующей рекламы