Задача 20 Урок 15
Primary tabs
Задача про Бинарные часы:
бинарные часы задача программирование
Пояснение:
На картинке выше фото часов, которые показывают время следующим образом:в верхнем ряду отображают текущий час 4мя лампочками (битами) если лампа горит,
складываем ее значение в основное т.е. 2 + 1 = 3 часа (в 12ти часовом формате)
В нижней линии 6 лампочек (бит) и они кодируют 16 + 8 + 1 = 25 минут.
Задача:
Напишите программу, которая принимает у пользователя два целых числа (часы и
минуты) и выводит в консоль полученное время в формате бинарных ASCII-часов
0-11 ч. и 0-59 мин.Также отметим, что:
12 часов "не выводиться" а соответствует пустым значениям/нулям (- - - -)
аналогично в минутах "не выводиться" 60 минут (- - - - - -)
Для случая с фотографии выше (время 3:25) ASCII-вариант будет выглядеть как:
- - + +
- + + - - +
А, если бы время было 10:40, то :
+ - + -
+ - + - - -
Примечания:Решение данной задачи не требует вычислений в двоичной системе
(достаточно знать как считают в обычной десятичной)
Историческая справка: задача была предложена к добавлению в курс по
Паскалю участником boris68 летом 2021 г. (см. исходный текст)
var h{часов}, m{минут}, kh{разряд часов}, km{разряд минут}, i: integer; begin h := 0; m := 0; kh := 16; km := 64; writeln('Введите часы от 0 до 11'); readln(h); writeln('Введите минуты от 0 до 59'); readln(m); writeln(); i := 0; while (i < 5) do begin kh := kh div 2; if (h >= kh) and (h > 0) then begin h := h mod kh; write(' + ', ' '); end else write(' - '); inc(i); end; writeln(); i := 0; while (i < 6) do begin km := km div 2; if m >= km then begin m := m mod km; write(' + ', ' '); end else write(' - '); inc(i); end; readln(); end.
КОНСОЛЬ
Введите часы от 0 до 11 5 Введите минуты от 0 до 59 32 - + - + - + - - - - -
- Log in to post comments
- 554 reads
vedro-compota
Sun, 11/28/2021 - 13:16
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)