Программа на нажатие клавиши - Pascal ABC
Формулировка задачи:
Программа, которая выводит сообщения "Нажмите клавишу в течении секунды" через случайные интервалы времени, ожидает нажатие 1 сек. и подсчитывает количество успешных нажатий.
Не получается задать интервал времени 1 сек. и подсчитать нажатие после каждого сообщения(счетчик не обнуляется)
Решение задачи: «Программа на нажатие клавиши»
textual
Листинг программы
uses Crt;
var n: Integer; c: Char;
begin
repeat
WriteLn('Нажмите клавишу в течение секунды');
Delay(1000); n:=0;
while KeyPressed do begin
if ReadKey=#0 then ReadKey;
Inc(n);
end;
WriteLn('Количество нажатий: ',n);
Write('Продолжить (y/N): '); c:=ReadKey;
if c=#0 then ReadKey;
until c in [#27,'N','n'];
end.
Объяснение кода листинга программы
- В начале кода используется библиотека Crt, которая предоставляет функции для работы с консолью.
- Переменная n типа Integer и инициализируется значением 0.
- Переменная c типа Char и инициализируется значением ' '.
- Запускается цикл repeat, который будет выполняться до тех пор, пока условие не выполнится.
- Внутри цикла выводится сообщение
Нажмите клавишу в течение секундыи задерживается выполнение программы на 1 секунду с помощью функции Delay(1000). - Переменная n сбрасывается в 0.
- Запускается цикл while, который будет выполняться до тех пор, пока условие не выполнится.
- Внутри цикла проверяется, была ли нажата клавиша. Если да, то считывается значение клавиши с помощью функции ReadKey.
- Если значение клавиши равно 0, то цикл while завершается.
- Переменная n увеличивается на 1.
- После завершения цикла while выводится сообщение
Количество нажатий:, n. - Выводится запрос
Продолжить (y/N):и считывается значение клавиши с помощью функции ReadKey. - Если значение клавиши равно 0, то считывается следующая клавиша с помощью функции ReadKey.
- Условие до тех пор, пока c в [#27,'N','n'] выполняется, пока не будет нажата клавиша 'n'.
- Цикл repeat завершается, когда выполняется условие.
- Конец программы.