1) Var n,m,max,min:integer; Begin write('Введите число: '); readln(n); min:=9; max:=0; while n>0 do begin m:=n mod 10; if m<min then min:=m; if m>max then max:=m; n:=n div 10; end; writeln('Максимальное число: ',max); writeln('Минимальное число: ',min); End. 2) var i,count: integer; n,s:string; begin writeln('Введите число: '); readln(s); writeln('Введите цифру: '); readln(n); for i:=1 to length(s) do if(s[i]=n)then count:=count+1; writeln('Количество раз, когда встречается цифра = ',count); end.
Разбираемся с личным кодом:
Длина n=11 символов
23 буквы + 10 цифр = 33 символа - мощность алфавита личного кода.
33<2^i, где i - кол-во бит на символ
i = 5 бит (из неравенства выше)
V = i * n = 5 бит * 5 = 25 бит ≤ 8 байт
Разбираемся с кодом подразделения:
Длина n=299 символов
26 буквы + 10 цифр = 36 символов - мощность алфавита кода подразделения
i = 6 бит
V = 299 * 6 бит = 1794 бит ≤ 12 байт
Var
n,m,max,min:integer;
Begin
write('Введите число: ');
readln(n);
min:=9;
max:=0;
while n>0 do
begin
m:=n mod 10;
if m<min then min:=m;
if m>max then max:=m;
n:=n div 10; end;
writeln('Максимальное число: ',max);
writeln('Минимальное число: ',min);
End.
2)
var
i,count: integer;
n,s:string;
begin
writeln('Введите число: ');
readln(s);
writeln('Введите цифру: ');
readln(n);
for i:=1 to length(s) do
if(s[i]=n)then
count:=count+1;
writeln('Количество раз, когда встречается цифра = ',count);
end.
Длина n=11 символов
23 буквы + 10 цифр = 33 символа - мощность алфавита личного кода.
33<2^i, где i - кол-во бит на символ
i = 5 бит (из неравенства выше)
V = i * n = 5 бит * 5 = 25 бит ≤ 8 байт
Разбираемся с кодом подразделения:
Длина n=299 символов
26 буквы + 10 цифр = 36 символов - мощность алфавита кода подразделения
i = 6 бит
V = 299 * 6 бит = 1794 бит ≤ 12 байт
Итого объем кодов в сумме равен V=8 + 12 байт = 20 байт
Объем хранящийся на пропуске равен 30 байтам
Объем доп. информации 30 байт - 20 байт = 10 байт.