Разбираемся с личным кодом:
Длина 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 a,b,p,n,x,i:integer; begin writeln('Сколько примеров будешь решать:'); readln(n); for i:=1 to n do begin a:=random(10)+1; b:=random(10)+1; write('Сколько будет ',a,'+',b,'='); readln(x); if x=a+b then begin p:=p+1; writeln('Правильно'); end else writeln('Неверно'); end; writeln('Число правильных ответов: ',p); if p=n then writeln('Отлично, ты превосходно знаешь арифметику'); if (p<n) and (p/n>0.75) then writeln('Хорошо, ты неплохо знаешь арифметику'); if (p/n<=0.75) and (p/n>0.5) then writeln('Удовлетворительно, ты средне знаешь арифметику'); if (p/n<=0.5) and (p>0) then writeln('Плохо, ты не знаешь арифметику'); if p=0 then writeln('Отвратительно, ты абслютно не знаешь арифметику'); end.
Можно сделать, чтобы не только на сложение, а на все 4 действия.
Длина 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 байт.
begin
writeln('Сколько примеров будешь решать:');
readln(n);
for i:=1 to n do
begin
a:=random(10)+1;
b:=random(10)+1;
write('Сколько будет ',a,'+',b,'=');
readln(x);
if x=a+b then
begin
p:=p+1;
writeln('Правильно');
end
else writeln('Неверно');
end;
writeln('Число правильных ответов: ',p);
if p=n then writeln('Отлично, ты превосходно знаешь арифметику');
if (p<n) and (p/n>0.75) then writeln('Хорошо, ты неплохо знаешь арифметику');
if (p/n<=0.75) and (p/n>0.5) then writeln('Удовлетворительно, ты средне знаешь арифметику');
if (p/n<=0.5) and (p>0) then writeln('Плохо, ты не знаешь арифметику');
if p=0 then writeln('Отвратительно, ты абслютно не знаешь арифметику');
end.
Можно сделать, чтобы не только на сложение, а на все 4 действия.