jQuery Разное

Тестирование устного счета

Появилась идея написать программу, с помощью которой можно проверить и углубить свои способности к устному счету.

В качестве платформы для программирования был выбран javascript. Интерфейс минималистичный — вывод в центр экрана выражения для устного счета, внизу цифры, показывающие количество показанных примеров и количество удачных и неудачных попыток, и счетчик обратного отсчета.
Планировалось, что работать будет так: показывается пример на определенное количество секунд и если испытуемый не успевает набрать ответ за отведенное время, то пример сбрасывается, добавляется единица в счетчик неправильных ответов и показывается следующий. Если испытуемый набрал ответ правильно, то пример также обновляется, а единица добавляется в счетчик правильных ответов.

Если не говорить об интерфейсе, то самое сложное было сделать сам генератор примеров. Его алгоритм я сделал таким:
1. Выбрать действие случайным образом. Это может быть одно из основных арифметических действий: сложение, вычитание, умножение и деление.
2. Если сложение, то числа в сумме не должны превышать 99 (я выбрал критерий для устного счета, чтобы ни одно из чисел не превышало 99). Т.е. первое генерируемое число должно быть в интервале от 1 до 98, а второе не должно быть больше чем 99 минус первое генерируемое число.
2. Если вычитание, то второе число не должно быть больше чем первое (все действия производим с числами в интервале от 0 до 99).
3. Если умножение, то второе число не должно быть больше, чем 99 деленное на первое число.
4. Если деление, то находим 2 числа как для умножения, а затем их произведение делаем первым числом, первое число — делителем, а второе число — ответом.

Все было бы хорошо, но выяснился один нюанс для примеров по умножению и делению. Т.к. одно число нередко выпадало большим, то получалось множество примеров с одним числом очень большим, а втором, соответственно, очень маленьким. Получалось что-то такое: 95*1, 44*3, 46/46 и прочие подобные.
Устранить подобное явление можно так: первое и вторые числа для умножения должны превышать интервал небольших чисел (например от 0 до 12), только в 5% случаев.

Посмотреть как работает программа можно по ссылке Тестирование устного счета.

Отставить комментарий

Ваш электронный адрес не будет опубликован.Обязательные для заполнения поля отмечены *

восемнадцать − 7 =