задача 1
запишем условие: строк=40, символов=50, страниц=10, I=12500 байт, N-?
решение: посчитаем общее кол-во символов в тексте К=40*50*10=20000
переведем информационный объем в биты I=12500*8=100000 бит
из формулы I=K*i найдем i: i=I/K=100000/20000=5бит
из формулы мощности алфавита найдем мощность
N=2^5=32 это и есть ответ
задача2
запишем условие: страниц=180, символы=2048, N=128, I(Кб)-?
решение: вычислим общее кол-во символов в тексте
К=180*2048=368640
найдем вес одного символа алфавита N=2^i, 128=2^i, 2^7=2^i, i=7 бит
подсчитаем информационный объем текста I=368640*7=2580480 бит=
322560 байт=315 Кб это и есть ответ
задача3
запишем условие: N=87, K=200, I-?
решение: из формулы мощности алфавита найдем i с учетом того, что 87 не является целой степенью двойки. ближайшая мощность алфавита -64, поэтому i=6 бит
вычислим информационный объем I=K*i=200*6=1200 бит/8=150 байт
//Pascal ABC.NET v3.1 сборка 1219
Const
n=20;
Var
ar:array[1..n] of integer;
i,s,k,min,j:integer;
begin
randomize;
min:=2147483647;
for i:=1 to 10 do
ar[i]:=random(-15,21);
for i:=11 to 17 do
ar[i]:=i*6;
for i:=18 to n do
readln(ar[i]);
writeln('Array:');
for i:=1 to n do
write(ar[i]:4);
writeln;
i:=2;
while i<>n+2 do
begin
s:=s+ar[i];
i:=i+2;
end;
writeln('Sum=',s);
for i:=1 to n do
if ar[i]>0 then k:=k+1;
writeln('Count of positive elements=',k);
for i:=10 to n do
if min>ar[i] then min:=ar[i];
writeln('Min=',min);
for i:=1 to n-1 do
for j:=i+1 to n do
if ar[i]<ar[j] then
begin
k:=ar[i];
ar[i]:=ar[j];
ar[j]:=k;
end;
writeln('Sorted array:');
for i:=1 to n do
write(ar[i]:4);
end.