Урок 15 Задача 23
Primary tabs
Задача про Бинарные часы
var chas, min: integer; {процедура принимает значение часов либо минут, а также позиции начала и конца обхода массива, раскладывает значение часов либо минут на заданные слагаемые (элементы массива), выводит соответствующий символ} procedure chasmin(a, n, k: integer); var m: array[1..10] of integer; // массив для значений часов и минут i: integer; // счетчик цикла q: boolean; begin m[1]:=8; m[2]:=4; m[3]:=2; m[4]:=1; m[5]:=32; m[6]:=16; m[7]:=8; m[8]:=4; m[9]:=2; m[10]:=1; q:=true; for i:= n to k do if (a=m[i]) or (a>m[i]) and (q=true) then begin write (' + '); if a=m[i] then q:=false else a:= a-m[i] end else write (' - '); end; begin // начало тела основной программы write ('Часы: '); readln(chas); // считываем часы write ('Минуты: '); readln(min); // считываем минуты if (0<=chas) and (chas<=12) and (0<=min) and (min<=59) then // провка корректности введенных значений begin if chas = 12 then chas:= 0; chasmin (chas, 1, 4); // передаем в процедуру часы, начальную и конечную позицию для обхода массива writeln; chasmin (min, 5, 10); // передаем в процедуру минуты, начальную и конечную позицию для обхода массива end; readln(); end.
Вывод в консоли:
Часы: 11 Минуты: 35 + - + + + - - - + +
Часы: 12 Минуты: 57 - - - - + + + - - +
Часы: 9 Минуты: 21 + - - + - + - + - +
- Log in to post comments
- 495 reads
vedro-compota
Sun, 12/18/2022 - 15:44
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)