Ввод времени суток в формате hh:mm с ограничением ввода - Free Pascal

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

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

Ввод времени суток в формате hh:mm с ограничением ввода. ввод кроме цифр блокируется(при нажатии буквы она не отображается на экране); по нажатии enter читать время

Решение задачи: «Ввод времени суток в формате hh:mm с ограничением ввода»

textual
Листинг программы
uses
    Crt;
type
    TMyTime = record
        hh, mm: String[2];
    end;
procedure InputNumb(var c: Char; const limit: Char);
begin
    repeat
        c := ReadKey();
    until (c in ['0'..limit]);
    Write(c);
end;
var
    time: TMyTime;
    c: Char;
begin
    time.hh := '  ';
    time.mm := '  ';
    Write('Input time (HH:MM): ');
    InputNumb(time.hh[1], '2');
    if (time.hh[1] = '2')
    then
        InputNumb(time.hh[2], '3')
    else
        InputNumb(time.hh[2], '9');
    Write(':');
    InputNumb(time.mm[1], '5'); InputNumb(time.mm[2], '9');
    WriteLn; Write('Press enter to continue...');
    repeat
        c := ReadKey();
    until (c = #13);
    WriteLn;
    WriteLn('Time is: ', time.hh, ':', time.mm);
end.

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

  1. Объявление переменных и типа данных:
    • TMyTime - тип данных, представляющий время суток в формате hh:mm
    • time - переменная типа TMyTime, используемая для хранения введенного времени суток
    • c - переменная типа Char, используемая для хранения введенного символа
  2. Создание процедуры InputNumb:
    • Процедура используется для ограничения ввода числа в заданном диапазоне
    • Входные параметры: c - символ, представляющий текущий вводимый символ, limit - символ, ограничивающий диапазон ввода
    • Выполняет цикл до тех пор, пока введенный символ не будет в заданном диапазоне
    • Выводит введенный символ
  3. Ввод времени суток:
    • Поле hh переменной time инициализируется как '  ', а поле mm также инициализируется как '  '
    • Вывод сообщения с просьбой ввести время суток в формате hh:mm
    • Выполняется процедура InputNumb для ввода первой цифры в поле hh
    • Если первая цифра равна '2', то выполняется процедура InputNumb для ввода второй цифры в поле hh
    • Иначе, если первая цифра не равна '2', то выполняется процедура InputNumb для ввода второй цифры в поле mm
    • Вывод символа ':'
    • Выполняется процедура InputNumb для ввода первой цифры в поле mm
    • Выполняется процедура InputNumb для ввода второй цифры в поле mm
    • Вывод сообщения с просьбой нажать Enter для продолжения
    • Выполняется цикл до тех пор, пока не будет нажата клавиша Enter
    • Вывод сообщения с введенным временем суток
  4. Ограничение ввода:
    • В процедуре InputNumb используется ограничение ввода от '0' до '9' для обоих полей hh и mm
    • Если введенный символ не является '0' или '1' и т.д. до '9', то цикл продолжается, пока не будет введен допустимый символ
    • Если введенный символ равен '2', то вторая цифра может быть введена только в поле hh, иначе только в поле mm
    • Если введенный символ равен '5', то вторая цифра вводится только в поле mm

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

9   голосов , оценка 4.444 из 5
Похожие ответы