Для определения информационного объема сообщения воспользуемся формулой: I = K * i, где K - количество символов, i - вес одного символа.
1) 1024 страницы, на одной странице помещается 64 строки, а в строке помещается 64 символа. Каждый символ в кодировке КОИ-8 занимает 8 бит памяти.
i = 8 бит
K = 1024 * 64 * 64 = 4194304 символов,
I = 4194304 * 8 = 33554432 бит = 4194304 байт = 4096 Кбайт = 4 Мбайт
2) 512 страниц, на одной странице в среднем помещается 64 строки, а в строке 64 символа. (Каждый символ в кодировке Unicode занимает 16 бит памяти.)
i = 16 бит
K = 512 * 64 * 64 = 2097152 символов,
I = 2097152 * 16 = 33554432 бит = 4194304 байт = 4096 Кбайт = 4 Мбайт
*8 бит = 1 байт
1024 байт = 1 Кбайт
1024 Кбайт = 1 Мбайт
Поделитесь своими знаниями, ответьте на вопрос:
Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить реверс для каждой трети массива. пример: исходный массив: 4 -5 3 10 -4 -6 8 -10 1 0 5 7 результат: 10 3 -5 4 -10 8 -6 -4 7 5 0 1 есть готовая программа. объясните что да как. const n=12; var a: array[1..n] of integer; i, k, x: integer; begin randomize; writeln('исходный массив'); for i: =1 to n do begin a[i]: =-12+random(25); write(a[i]: 4); end; writeln; k: =n div 3; for i: =1 to k div 2 do begin x: =a[i]; a[i]: =a[k-i+1]; a[k-i+1]: =x; x: =a[k+i]; a[k+i]: =a[2*k-i+1]; a[2*k-i+1]: =x; x: =a[2*k+i]; a[2*k+i]: =a[n-i+1]; a[n-i+1]: =x end; writeln('инверсия третей массива'); for i: =1 to n do write(a[i]: 4); end.
begin
var a:=ArrRandom(12,-12,12); a.Println;
var b:=a.Batch(a.Length div 3).Select(x->x.Reverse);
var k:=0;
foreach var e1 in b do
foreach var e2 in e1 do begin a[k]:=e2; Inc(k) end;
a.Println
end.
Тестовое решение:
-7 -9 8 -11 -5 -3 -2 6 11 -7 4 -6
-11 8 -9 -7 6 -2 -3 -5 -6 4 -7 11