Відповідь:
Нужно закодировать ещё четыре буквы (В, Д, Е, Н), а в дереве есть три свободных узла. Каждое продолжение дерева из свободного узла создаёт два узла вместо одного, то есть количество узлов увеличивается на 1 . Значит, нужно продолжить дерево в одном месте. С точки зрения длины кодов это можно сделать двумя
из узла 10 (длина кода 2 ) получить два узла с длиной кода 3 ;
из узла 001 или 111 (длина кода 3 ) получить два узла с длиной кода 4 .
В первом случае мы получим новые коды длиной 3,3,3,3, во втором – 2,3,4,4.
Подсчитаем количество знаков для кодирования слова ВВЕДЕНИЕ в каждом их этих случаев. В первом случае длина всех добавленных кодов (буквы В, Д, Е, Н) одинакова –3 бита. Длина кода буквы И задана – тоже 3 бита. Всего получается 8х3=24 бита.
Во втором случае длина добавленных кодов разная. Очевидно, что для получения наименьшей длины самым коротким должен быть код буквы Е (она встречается чаще всех), следующим – код буквы В. Тогда длина кода для Е – 2 бита, для В –3 , для Д и Н – по4 . Всего потребуется бита. 3х2+2х3+4+4+3=23 бита
Пояснення:
program Calc1;
var
m, k, x, y: Double;
begin
Write ('Введите m, k, x: ');
ReadLn (m, k, x);
if m * k - x >= 2 then
y := Sqr (x) + Sin (6 * x) - (k + 1)
else
y := Power (x, 3) - m * k + 3;
WriteLn ('y = ', y :20 :10);
ReadLn;
end.
program Calc2;
const
E = 1;
F = -2;
var
x, y: Double;
begin
Write ('Введите x: ');
ReadLn (x);
if x > Pi then
y := Sqr (Pi) + E * x * Ln (x)
else if x < 0 then
y := 0
else
y := Pi / 4 - F * x;
WriteLn ('y = ', y :20 :10);
ReadLn;
end.