4. Вспомните одному объекту каждого приведённых множеств и обозначьте его единичным именем
множестве:
а) мореплаватель;
б) орфограмма;
в) формула;
г) былина.
5. Назовите общие имена объектов, о которых сообщается в
путеводителях. Назовите единичные имена объектов, о кото-
рых может рассказать человек после туристической поездки
по России.
6. Каким образом можно узнать признаки интересующих вас
объектов?
7. Какие свойства можно привести при описании множества
объектов? Можно ли для множества объектов привести зна-
чения величин? Приведите примеры.
8. Для каждого примера укажите объект, его свойство, опреде-
ляющую свойство величину и её значение:
а) рыжеволосый человек;
б) семикилограммовый арбуз;
в) фарфоровая чашка;
г) семнадцатидюймовый монитор.
9. Назовите для каждого из приведённых действий два пред-
мета, с которыми указанное действие человек выполняет по-
разному: собрать;
заполнить; открыть; связать; включить;
сложить; измерить; поймать.
Ниже вариант с процедурой, а потом другой, без процедур. Можно сравнить...
// PascalABC.NET 3.2, сборка 1509 от 27.07.2017
// Внимание! Если программа не работает, обновите версию!
Вариант с процедурой
procedure MassAvg(var r:real);
begin
r:=ReadSeqInteger('Вводите:',ReadInteger('n=')).Average
end;
begin
var avg:real;
for var i:=1 to 3 do begin
MassAvg(avg);
Writeln('Среднее значение: ',avg)
end
end.
Вариант без процедур и функций
begin
for var i:=1 to 3 do begin
Writeln('Среднее значение: ',
ReadSeqInteger('Вводите:',ReadInteger('n=')).Average)
end
end.
Результат
n= 7
Вводите: -5 4 11 8 0 5 4
Среднее значение: 3.85714285714286
n= 5
Вводите: 100 32 52 43 19
Среднее значение: 49.2
n= 4
Вводите: 6 6 8 7
Среднее значение: 6.75
1) ✔ префиксный
длина А: 1, длина Б: 2, длина В: 3, длина Г: 3
Длина сообщения: 10 * 1 + 5 * 2 + 20 * 3 + 5 * 3 = 10 + 10 + 60 + 15 = 95 бит
2) ✔ префиксный
длины кодовых слов: 2
Длина сообщения: (10 + 5 + 20 + 5) * 2 = 40 * 2 = 80 бит
3) ✘ не префиксный (11 - префикс 111)
4) ✔ префиксный
длина А: 2, длина Б: 3, длина В: 1, длина Г: 3
Длина сообщения: 10 * 2 + 5 * 3 + 20 * 1 + 5 * 3 = 20 + 15 + 20 + 15 = 70 бит
Наиболее оптимальный код 4).
Если бы нужно было бы найти какое-нибудь оптимальное префиксное кодирование, можно было бы построить код Хаффмана.
Выписываем частоты символов, а затем объединяем наименее часто встречающиеся символы, почлучая кодовое дерево.
А - 10, Б - 5, В - 20, Г - 5
А - 10, (БГ) - 10, В - 20
(А(БГ)) - 20, В - 20
(В(А(БГ)) - 40
Если в этой записи есть (XY), то к коду любой буквы из X приписываем слева 0, для любого символа из Y - 1. Начинаем с пустых кодов:
(БГ) -> Б: 0, Г: 1
(А(БГ)) -> А: 0, Б: 10, Г: 11
(В(А(БГ)) -> В: 0, А: 10, Б: 110, Г: 111.
Доказано, что такой код будет оптимальным.