Существуют готовые решения для измерения скорости работы на клавиатуре, например typespeed. Прекрасная программа с различными опциями.
Потренировал на ней пальцы и возникла идея написать что-нибудь попроще. Расскажу, каким путём шёл и что получилось.
1. Формула. Тут всё просто.
Скорость = Количество_символов / Время_печати
2. Количество символов
Как измерить количество вводимых символов? Были разные идеи. Например, направить в файл, и потом измерять что в файле накопилось.
Но решил сделать проще — пусть вводимый текст станет именем переменной. А потом уже измерить количество символов в имени.
3. Время_печати = Время_окончания - Время_начала
Использовал время юникс в секундах.
4. Перевод из секунд в минуты.
Чтобы получить «символы в минуту», умножил конечный результат на 60.
5. Особенности реализации
Проблема возникла при делении Количество_символов / Время_печати.
Засада - правый слэш делит без остатка!!
При скорости печати менее 60 символов в минуту результат получается 0.
Решил так — чтобы вытащить остаток на ясно солнышко, количество символов умножил на 100, а потом в конечной формуле сделал деление на 100.
Прилагаю ссылку на GitHub. Буду рад услышать замечания, пожелания!























