Урок 15 Задача 21

Урок 15 Задача 21

Напишите программу, которая принимает у пользователя два целых числа (часы и минуты) и выводит в консоль полученное время в формате бинарных ASCII-часов 0-11 ч. и 0-59 мин.

Также отметим, что:

12 часов "не выводиться" а соответствует пустым значениям/нулям (- - - -)
аналогично в минутах "не выводиться" 60 минут (- - - - - -)

Для случая с фотографии выше (время 3:25) ASCII-вариант будет выглядеть как:

	
  - - + +
- + + - - +

А, если бы время было 10:40, то :

	
  + - + -
+ - + - - -

Решение:

program u15z21;
var h,m,n:integer;

procedure binTime(t,n: integer);
begin
  while (n>0) do
  begin
    if ((t div n)>0) then
    begin
      write('+ ');
      t:=t-n;
    end
    else
      write('- ');
    n:=n div 2;
  end;
end;

begin
  writeln('введите целое число от 1 до 11: ');
  readln(h);
  writeln('введите целое число от 1 до 59: ');
  readln(m);
  if h=12 then
    h:=0;
  if m=60 then
    m:=0;
  write('  ');
  n:=8;
  binTime(h,n);
  writeln();
  n:=32;
  binTime(m,n);
  readln();
end.

Консоль:

введите целое число от 1 до 11:
10
введите целое число от 1 до 59:
40
  + - + -
+ - + - - -
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)