Программа на нажатие клавиши - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Программа, которая выводит сообщения "Нажмите клавишу в течении секунды" через случайные интервалы времени, ожидает нажатие 1 сек. и подсчитывает количество успешных нажатий.
Листинг программы
  1. program soobsh;
  2. uses crt;
  3. var
  4. n, i, s: integer;
  5. begin
  6. n := 0;
  7. for i := 1 to 20 do
  8. begin
  9. writeln('Нажмите клавишу в течение секунды');
  10. s:=1000;
  11. delay(s);
  12. if KeyPressed then n := n + 1;
  13. writeln('количество нажатий = ', n);
  14. delay(1000);
  15. end;
  16. end.
Не получается задать интервал времени 1 сек. и подсчитать нажатие после каждого сообщения(счетчик не обнуляется)

Решение задачи: «Программа на нажатие клавиши»

textual
Листинг программы
  1. uses Crt;
  2. var n: Integer; c: Char;
  3. begin
  4.   repeat
  5.     WriteLn('Нажмите клавишу в течение секунды');
  6.     Delay(1000); n:=0;
  7.     while KeyPressed do begin
  8.       if ReadKey=#0 then ReadKey;
  9.       Inc(n);
  10.     end;
  11.     WriteLn('Количество нажатий: ',n);
  12.     Write('Продолжить (y/N): '); c:=ReadKey;
  13.     if c=#0 then ReadKey;
  14.   until c in [#27,'N','n'];
  15. end.

Объяснение кода листинга программы

  1. В начале кода используется библиотека Crt, которая предоставляет функции для работы с консолью.
  2. Переменная n типа Integer и инициализируется значением 0.
  3. Переменная c типа Char и инициализируется значением ' '.
  4. Запускается цикл repeat, который будет выполняться до тех пор, пока условие не выполнится.
  5. Внутри цикла выводится сообщение Нажмите клавишу в течение секунды и задерживается выполнение программы на 1 секунду с помощью функции Delay(1000).
  6. Переменная n сбрасывается в 0.
  7. Запускается цикл while, который будет выполняться до тех пор, пока условие не выполнится.
  8. Внутри цикла проверяется, была ли нажата клавиша. Если да, то считывается значение клавиши с помощью функции ReadKey.
  9. Если значение клавиши равно 0, то цикл while завершается.
  10. Переменная n увеличивается на 1.
  11. После завершения цикла while выводится сообщение Количество нажатий:, n.
  12. Выводится запрос Продолжить (y/N): и считывается значение клавиши с помощью функции ReadKey.
  13. Если значение клавиши равно 0, то считывается следующая клавиша с помощью функции ReadKey.
  14. Условие до тех пор, пока c в [#27,'N','n'] выполняется, пока не будет нажата клавиша 'n'.
  15. Цикл repeat завершается, когда выполняется условие.
  16. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.583 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы