Перевести часы в минуты - Pascal ABC
Формулировка задачи:
Нам дано число, например 10:05.(формат чч:мм). Как перевести это всё в минуты? Какой выбрать тип?
Решение задачи: «Перевести часы в минуты»
textual
Листинг программы
//dig - множество чисел 0,1,2..9 const dig = ['0'..'9']; var s : string[5]; h, m, r: integer; begin //повторяем ввод пока не будет ввеедено в формате HH:MM repeat write('введите время (HH:MM): '); readln(s) //то есть строка не будет состоять из 5 символов и //1,2,4,5 символы не будут входить во множество dig (являться цифрами) и //3 символ не будет равен ':' until (length(s) <= 5) and (s[1] in dig) and (s[2] in dig) and (s[4] in dig) and (s[5] in dig) and (s[3] = ':'); //преобразуем подстроку от 1 символа длиной 2, строки s //в число h, r код ошибки преобразования val(copy(s,1,2), h, r); //преобразуем подстроку от 4 символа длиной 2, строки s //в число m, r код ошибки преобразования val(copy(s,4,2), m, r); //считаем время в минутах r := h * 60 + m; //выводим writeln('в минутах это: ', r) end.
Объяснение кода листинга программы
- Создаётся константа
dig
, которая содержит цифры от 0 до 9. - Создаются три переменные: s, h, m. Переменная s объявлена как строковый массив длиной 5 символов. Переменные h и m объявлены как целые числа.
- Запускается цикл repeat, который будет выполняться до тех пор, пока длина строки s не станет равной или меньше 5 символов, и все символы в строке s не будут входить в константу
dig
и не будут равны ':'. - Внутри цикла считывается ввод пользователя.
- Проверяется, соответствует ли введённая строка формату HH:MM. Если нет, то цикл повторяется.
- Если ввод пользователя соответствует формату HH:MM, то преобразуются первые два и последние два символа строки s в целые числа. Если происходит ошибка при преобразовании, то выводится сообщение об ошибке.
- Вычисляется значение переменной r как сумма h * 60 + m.
- Выводится значение переменной r.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д