program raf105;
const
n = 4;
var
a: array[1..n,1..n] of integer;
i,j,sum: integer;
begin
for i:=1 to n do
begin
writeln;
for j:=1 to n do
begin
a[i,j]:= random(1,9);
if i = j then
sum:= sum + a[i,j];
write(a[i,j]:4,' ');
end;
end;
writeln;
writeln;
writeln('Вывод:');
for i:=1 to n do
begin
writeln;
for j:=1 to n do
begin
if i <> j then
a[i,j]:= a[i,j] * sum;
write(a[i,j]:4,' ');
end;
end;
end.
PascalABC 3.4.2Поделитесь своими знаниями, ответьте на вопрос:
Для передачи по каналу связи сообщения, состоящего только из букв а, б, в, г, решили использовать неравномерный двоичный код: a -01, б - 000, в - 10. как нужно закодировать букву г, чтобы длина кода была минимальной, и допускалось однозначное разбиение закодированного сообщения на буквы? если таких кодов несколько, укажите код с наименьшим числовым значением. выберите один ответ: 001 110 00 11
Нам важно однозначное разбиение, поэтому вариант "00" не подходит, так как его можно спутать с буквой "Б". Другие значение проверим при дерева.
1. Пусть буква "Г" будет записана в первую ветку (1). Распишем ее.
Первой ветке подходит буква "В", так как код начинается с единицы. Рисуем еще ветку, также с единицей и нулем. Получается, что "В" пойдет во вторую ветку (0), а "Г", соответственно, в первую. Итого получаем: В = 10, Г = 11.
2) Пусть "Г" будет во второй ветке (0). С нуля начинаются буквы "А" и "Б", поэтому их тоже пишем. Рисуем еще две ветки. Так как А = 01, то она пойдет в первую ветку, буквы "Б" и "Г" пишем во вторую. "Б" = 000, поэтому пишем во вторую ветку, следовательно, "Г" пойдет в первую. Итого: А = 01, Б = 000, Г = 001.
Теперь сравним полученные значения. Переведем их в десятичную систему счисления.
11₂ = 1*2¹ + 1*2⁰ = 2 + 1 = 3₁₀.
001₂ = 1*0² + 1*0¹ + 1*2⁰ = 0 + 0 + 1 = 1₁₀.
В итоге, значение 001 является минимальным и соответствует однозначному декодированию.
ответ: 001.
Решение смотри во вложении.