по каналу связи передаются сообщения каждое из которых содержит 32 буквы а 16 букв б 8 букв и 4 буквы г других букв сообщений нет каждую букву кодирует двоичной последовательностью при выборе кода учитывались требования первое ни одно кодовое слово не является началом другого это нужно чтобы кот допускал однозначное декодирование 2 общая длина закодированного сообщения должно быть как можно меньше какой код из приведённых ниже следует выбрать для кодирования букв а б в и г
var a:array[1..n]of integer;
min,imin,i,oldmin:integer;
begin
//Заполнение массива значениями в диапазоне
//от -100 до 100
//и одновременно находим минимальный элемент элемент
min:=100;
for i:=1 to n do begin
a[i]:=random(201)-100;
if a[i]<= min then
begin
min:=a[i];
imin:=i;//Запомним index минимального
end;
write(a[i]:5);
end;
writeln;
//В цикле сдвигаем элементы массива
//до индекса минимального включительно на
//одну позицию вправо
for i:=imin downto 2 do
a[i]:=a[i-1];
a[1]:=min;
//вывод элементов массива
for i:=1 to n do write(a[i]:5);
end.
const // объявление константы
n=10; // сама константа n
var //объявление переменных
a:array[1..n]of integer; // (сами переменные) объявлен массив а от 1 до n // типа integer ( целые числа от −2 147 483 648 до 2 147 483 647 )
min,max,i,s:integer; // объявлены переменные min , max,a,s - названия ,
// типа integer
begin // начало
for i:=1 to n do // цикл который выполняет повторно действие до тех пор, // пока условное значение не станет false (т.е число не превысит n);
read(a[i]); //cчитывет значение массива а . [i] в квадратных скобках // означает индекс числа . т.е a[1] - первое число массива
min:=1;max:=1; // присваивает переменным min и max значение 1
for i:=2 to n do // уже описывал
begin
if a[i] min:=i; // оператор сравнения , если условие подходит входит
// в цикл
if a[i]>a[max]then // оператор сравнения , если условие подходит входит
// в цикл
max:=i; // присваивает max значение i
end; // конец
if max>min then / оператор сравнения , если условие подходит входит
// в цикл
for i:=min to max do // описывал
s:=s+a[i] // к переменной s добавляет элемент a[i]
else // если условие if не выполнилось
for i:=max to min do //
s:=s+a[i]; //
writeln(' S= ',s); // напечатать на новой строке то чему равно s
end.