Текст, содержащий 40 страниц (на каждой странице 32 строки по 60 символов в каждой) закодирован в 8-битной кодировке. Определите информационый объем текста в Кбайтах.
У меня тоже комп далеко, поэтому пишу программы прямо на телефоне! ;-) И вот, что получилось (все результаты проверены):
program First; type arr = array of integer; var a : arr; i, p, l : integer; f : real;
begin writeln('Вводите числа (0 - окончание ввода)'); i:=1; l :=0; repeat readln(p); if p=0 then break; setLength(a, i); a[i-1]:=p; i:=i+1; l:=l+1; until p=0; p:=0;
for i:=0 to l-1 do p:=p+a[i]; f:=p/l;
writeln(f:5:2); end.
program Second; var p, i : integer;
begin write('Введите количество чисел: '); readln(p); for i:=1 to p do write(7*i, ' '); end.
program Third; var count, p : integer;
begin writeln('Вводите числа'); count :=0; repeat readln(p); if p=0 then break; if (p mod 2 = 0) then count:=count+1; until p=0; writeln ('Было введено ', count, ' чётных чисел.'); end.
def factorial(n) f = 1; for i in 1..n; f *= i; end; f end
n=0
for i in 0..80/3 for j in 0..80/4 for k in 0..80/5 if 22+3*i+4*j+5*k==80 nn = factorial(i+j+k)/factorial(i)/factorial(j)/factorial(k) n+=nn p [i,j,k]
end end end end p n
Как работает программа: Сначала мы находим получить из 22 число 80. Для удобства шаги мы упорядочеваем: сначала прибавляем тройки, потом четверки, потом пятерки. Ищем все возможные наборы (i, j, k) которые отвечают равенству 22 + 3i + 4j + 5k = 80. Для каждого такого набора высчитываем кол-во перестановок с повторениями и суммируем их. ответ 3174448
program First;
type
arr = array of integer;
var
a : arr;
i, p, l : integer;
f : real;
begin
writeln('Вводите числа (0 - окончание ввода)');
i:=1;
l :=0;
repeat
readln(p);
if p=0 then break;
setLength(a, i);
a[i-1]:=p;
i:=i+1;
l:=l+1;
until p=0;
p:=0;
for i:=0 to l-1 do p:=p+a[i];
f:=p/l;
writeln(f:5:2);
end.
program Second;
var
p, i : integer;
begin
write('Введите количество чисел: ');
readln(p);
for i:=1 to p do write(7*i, ' ');
end.
program Third;
var
count, p : integer;
begin
writeln('Вводите числа');
count :=0;
repeat
readln(p);
if p=0 then break;
if (p mod 2 = 0) then count:=count+1;
until p=0;
writeln ('Было введено ', count, ' чётных чисел.');
end.
def factorial(n)
f = 1;
for i in 1..n; f *= i; end;
f
end
n=0
for i in 0..80/3
for j in 0..80/4
for k in 0..80/5
if 22+3*i+4*j+5*k==80
nn = factorial(i+j+k)/factorial(i)/factorial(j)/factorial(k)
n+=nn
p [i,j,k]
end
end
end
end
p n
Как работает программа:
Сначала мы находим получить из 22 число 80. Для удобства шаги мы упорядочеваем: сначала прибавляем тройки, потом четверки, потом пятерки. Ищем все возможные наборы (i, j, k) которые отвечают равенству 22 + 3i + 4j + 5k = 80. Для каждого такого набора высчитываем кол-во перестановок с повторениями и суммируем их.
ответ 3174448