// PascalABC.NET 3.0, сборка 1111 const alpha=['a'..'z']; digits=['0'..'9']; var na,nd,i:integer; s:string; begin na:=0; nd:=0; Write('Введите текст: '); Readln(s); for i:=1 to Length(s) do if s[i] in alpha then Inc(na) else if s[i] in digits then Inc(nd); if na>nd then Writeln('В тексте больше букв') else if na<nd then Writeln('В тексте больше цифр') else Writeln('В тексте букв и цифр поровну') end.
Тестовое решение: Введите текст: the equation 3.546x^2+4.18x-4.1=0 В тексте больше букв
16
Объяснение:
1. Алфавит мощностью 26 символов требует для кодирования символа 5 бит (2⁴ < 26 < 2⁵). 22 символа займут 22×5 = 110 бит = 110 / 8 = 13.75 байта, округляем до целого вверх, получаем 14 байт.
2. Номер года обозначается одним из 100 чисел. 2⁶ < 100 > 2⁷, поэтому для кодирования требуется 7 бит.
3. Номер для обозначается одним из 366 чисел. 2⁸ < 366 > 2⁹, поэтому для кодирования требуется 9 бит.
4. Всего для кодирования срока действия потребуется 7+9 = 16 бит = 16/2 = 2 байта
5. Вся информация на пропуске займет 14+2 = 16 байт