1. 46 бит
2. 256 символов
Объяснение:
I = K * i
I - информационный объём текстового сообщения
K - количество символов в сообщении
i - информационный вес одного символа (число бит, используемых для записи одного символа)
N = 2^i
N - мощность алфавита (количество символов в алфавите)
i - информационный вес одного символа (число бит, используемых для записи одного символа)
1.
Дано:
N = 512 символов
K = 37 символов
Найти:
I
512 = 2^i
512 = 2⁹
i = 9 бит
I = 37 * 9 = 46 бит = 5,75 байт
2.
Дано:
I = 2 Кбайт = 16 384 бит
K = 2 048 символов
Найти:
N
I = K * i
i = I / K
i = 16 384 / 2 048 = 8 бит
N = 2⁸ = 256 символов
1 байт = 8 бит
1 Кбайт = 1 024 байт
var
N: 2..100;
a: array [1..100] of -1000..1000;
max1, max2, MaxPr, i, j: integer; {MaxPr - максимальное произведение, max1 и max2 - искомые числа}
function RangeOverfilling(Number: integer; Index: integer): integer; {Функция, возвращающая число в диапазон}
begin
if Number in [1..Index] then result := Number;
if Number > Index then result := Number mod Index;
if Number < 1 then result := Index + Number mod Index;
end;
begin
MaxPr:= -maxint; {Присваиваем максимальному проиведению начальное значение, равное максимальному числу типа integer, взятому со знаком -}
writeln('Введите N');
readln(N);
for i:= 1 to N do
begin
writeln('Введите целое число, по модулю не превышающее 1000');
readln(a[i]);
end;
for i:= 1 to N - 1 do
for j:= 1 to RangeOverfilling(N - i, N) do
if a[i] * a[i + j] > MaxPr then
begin
MaxPr:= a[i] * a[i + j];
max1:= a[i];
max2:= a[i + j];
end;
writeln('Пара чисел, дающих максимальное произведение: ', max1,' и ', max2);
end.