Если рассматривать вариант, когда в буфере минимально возможным числом бит кодируется вся комбинация показаний, то решение во вложении, если "сжимается" каждое показание отдельно то так.
Показания датчика в диапазоне от A до B c шагом h. Могут принимать M значений.
В нашем случае:
Чтобы закодировать 13 комбинаций нам потребуется минимум
бит, округляя до ближайшего большего целого получим 4 бита. (Это половина байта. в байте 8 бит, если что :)
Если буфер хранит N показаний. то для этого в сжатом варианте потребуется N/2 байт, в несжатом варианте N байт.
Исходя из условия получаем:
Разрешаем относительно N
Ответ: 20 показаний (или 20 байт).
Program n1;
function thg(var t: real): boolean;
begin
thg:=false;
if (t>=100) and(t<1000) then thg:= true;
end;
var x,y: real;
begin
readln(x,y);
if thg(x) then x:=x-100;
if thg(y) then y:=y-100;
if x<100 then x:=x*10;
if y<100 then y:=y*10;
writeln(x,' ',y);
end.
Да, всё правильно. При неправильной команде СКИ выдаст "не понимаю", при невозможности исполнения выдаст "не могу"
<em>// PascalABC.NET 3.2, сборка 1345 от 24.11.2016</em>
<em>// Внимание! Если программа не работает, обновите её версию!</em>
begin
1.To(ReadInteger('н=')).Println
end.
<u>Пример</u>
н= 13
1 2 3 4 5 6 7 8 9 10 11 12 13
Автобус автограф автодром автомат автор