задача 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 байт
Любой цикл for можно переделать в while не особо думая:
for счетчик := начальное to конечное do
begin
что-то
end;
это тоже самое, что и
счетчик := начальное;
while счетчик <= конечное do
begin
что-то
счетчик := счетчик + 1;
end;
И там и там переменная счетчик сначала равна начальному значению, затем с ней что-то делают, и счетчик увеличивается. Если счетчик стал слишком большим, цикл прекращается.
Переделанная программа может выглядеть так:
program more;
var
s, i: integer;
begin
s := 0;
i := 20;
while i <= 40 do
begin
if (i mod 2) = 0 then
s := s + i;
i := i + 1;
end;
writeln(s)
end.