Program gt;
var A,B,C:real;
begin
readln(A,B,C);
if(A<B)and(B<C)then A:=B+C else A:=C-B;
writeln(A,' ',B,' ',C);
end.
Если рассматривать вариант, когда в буфере минимально возможным числом бит кодируется вся комбинация показаний, то решение во вложении, если "сжимается" каждое показание отдельно то так.
Показания датчика в диапазоне от A до B c шагом h. Могут принимать M значений.
В нашем случае:
Чтобы закодировать 13 комбинаций нам потребуется минимум
бит, округляя до ближайшего большего целого получим 4 бита. (Это половина байта. в байте 8 бит, если что :)
Если буфер хранит N показаний. то для этого в сжатом варианте потребуется N/2 байт, в несжатом варианте N байт.
Исходя из условия получаем:
Разрешаем относительно N
Ответ: 20 показаний (или 20 байт).
30С.7
+ 2A1.8
----------
5AD.F
7+8=15₁₀=F₁₆
C₁₆+1=D₁₆
0+A₁₆=A₁₆
3+2=5
то есть a[i] = i*2
var
a : array[1..20] of integer;
begin
for var i := 1 to 20 do a[i] := i*2;
end.
Цикл, в котором условие записано после тела цикла, выполнится как минимум 1 раз, а потом начнет проверять условие цикла. Цикл с предусловием может не выполниться ни разу, тк условие проверяется сразу. Цикл с предусловием используется когда у нас есть четкие границы выполнения