Var n,k:integer;
begin
write('n='); readln(n);
k:=1;
while k<=n do
begin
write(k,' ');
k:=k*2;
end;
writeln;
end.
Пример:
n=50
1 2 4 8 16 32
1.
0,5 Кбайт = 0,5*1024 байт = 512*8 бит
512*8/128 = 32
2.
Память для одного символа = log(2)64=6 бит
Объем текста = 10*32*64*6 бит = 10*32*64*6/8 байт =
10*4*64*6/1024 Кбайт = 15 Кбайт
3.
3 Кбайт = 3*1024 байт = 3*1024*8 бит
Память для одного символа = 3*1024*8/6144 = 4 бита
Количество символов в алфавите = 2^4 = 16
4.
Память для одного символа = log(2)128=7 бит
Объем сообщения = 10*7 = 70 бит
8.
a) 3 Кбайт=3*1024 Байт = 3072 бАЙТ
b) 2 Мбайт=2*1024 Кбайт = 2*1024*1024 байт = 2*1024*1024*8 бит = 16777216 бит
c) 4,5 Гигабайт=4,5*1024 Мбайт = 4,5*1024*1024 Кбайт = 4718592 Кбайт
Да все теже что и с вещественным только делить нельзя, сложение вычитание умножение, остаток от деления, возведения в степень... и тд
32=2^6 => Для русского языка 1 символ несет 6 бит инфы.
26=2^i => i = log 26 по основанию 2 = 4,7 бит => Для фр. языка 1 символ несет 4,7 бит инфы.
V информации = 10 * 6 бит = 60 бит (для русского языка)
V информации = 10 * 4,7 бит = 47 бит (для фр. языка)
Значит для русского языка сообщение из 10 знаков несет больше информации.
1.
var a,b:string;c:integer;
begin
readln (a);
b:='a';
c:=pos(b,a);
if c<>0 then writeln ('Есть буква а') else writeln ('Нет буквы а');
end.