задача 19 урок 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 г. (см. исходный текст)
РЕШЕНИЕ
program binar; type hour = array[1..4] of integer; minut = array[1..6] of integer; procedure hours(h: integer; a: hour); var i: integer; begin if (h = 12) then begin write(' - - - - '); exit; end; for i := 1 to 4 do if (h - a[i]) >= 0 then begin h := h - a[i]; write(' + '); end else write(' - '); end; procedure minuts(m: integer; b: minut); var i: integer; begin for i := 1 to 6 do begin if (m - b[i]) >= 0 then begin write(' + '); m := m - b[i]; end else write(' - '); end; end; var a: hour; b: minut; k, i, h, m: integer; begin k := 8; for i := 1 to 4 do begin a[i] := k; k := k div 2; end; k := 32; for i := 1 to 6 do begin b[i] := k; k := k div 2; end; for i := low(a) to high(a) do write(a[i], '|'); writeln(); for i := low(b) to high(b) do write(b[i], '|'); writeln(); writeln('Enter hours and minuts 00:00 '); readln(h, m); write(' '); hours(h, a); writeln(); minuts(m, b); readln end.
КОНСОЛЬ
8|4|2|1| 32|16|8|4|2|1| Enter hours and minuts 00:00 1 22 - - - + - + - + + -
- Log in to post comments
- 820 reads
vedro-compota
Sun, 10/24/2021 - 12:28
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)