Урок 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
- 953 reads
vedro-compota
Sun, 12/18/2022 - 15:44
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)