Поделитесь своими знаниями, ответьте на вопрос:
В одной из кодировок ASCII каждый символ кодируется 8 битами. Вова написал текст (в нём нет лишних пробелов): «Чиж, грач, стриж, гагара, пингвин, ласточка, жаворонок, свиристель, буревестник, вертиголовка — птицы». Ученик вычеркнул из списка название одной птицы. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 6 байт меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название птицы
1. Исходный текст: "Чиж, грач, стриж, гагара, пингвин, ласточка, жаворонок, свиристель, буревестник, вертиголовка — птицы".
2. В каждой текстовой строке можно выделить отдельные слова, разделенные запятой.
3. Произведем несколько изменений в тексте:
a. Уберем лишние запятые в начале и конце списка птиц, а также после тире.
б. Уберем двойные пробелы и пробелы перед запятыми. Чтобы два пробела не шли подряд, можно заменить двойные пробелы на одинарные.
4. Преобразуем текст в последовательность байтов, учитывая, что каждый символ кодируется 8 битами в данной кодировке ASCII.
5. Вычислим разницу между размером исходного и нового предложения в байтах.
6. Полученная разница в байтах должна быть равна 6.
7. Исключим из предложения одну птицу и проверим, как изменится размер предложения.
8. Найдем птицу, при которой размер нового предложения станет на 6 байт меньше, чем размер исходного предложения.
Теперь выполним пошаговое решение задачи.
1. Исходный текст: "Чиж, грач, стриж, гагара, пингвин, ласточка, жаворонок, свиристель, буревестник, вертиголовка — птицы".
2. Выполним изменения в тексте:
a. Убираем лишние запятые в начале и конце списка птиц, а также после тире: "Чиж, грач, стриж, гагара, пингвин, ласточка, жаворонок, свиристель, буревестник, вертиголовка — птицы".
б. Убираем двойные пробелы и пробелы перед запятыми: "Чиж,грач,стриж,гагара,пингвин,ласточка,жаворонок,свиристель,буревестник,вертиголовка—птицы".
3. Переводим текст в последовательность байтов, учитывая, что каждый символ кодируется 8 битами в данной кодировке ASCII:
- Текст: "Чиж,грач,стриж,гагара,пингвин,ласточка,жаворонок,свиристель,буревестник,вертиголовка—птицы".
- Размер исходного предложения: 69 символов * 8 бит = 552 бит = 69 байт.
4. Вычисляем разницу между размером исходного и нового предложения в байтах:
- Разница = 69 байт - Х байт, где Х - размер нового предложения после вычеркивания птицы.
5. Разница должна быть равна 6 байтам, поэтому уравнение выглядит следующим образом:
- 69 байт - Х байт = 6 байт.
6. Проверим каждую птицу, вычеркивая ее из предложения:
а. При вычеркивании "Чижа" размер предложения будет 66 байт.
б. При вычеркивании "грача" размер предложения будет 66 байт.
в. При вычеркивании "стрижа" размер предложения будет 66 байт.
г. При вычеркивании "гагары" размер предложения будет 66 байт.
д. При вычеркивании "пингвина" размер предложения будет 66 байт.
е. При вычеркивании "ласточки" размер предложения будет 66 байт.
ж. При вычеркивании "жаворонка" размер предложения будет 66 байт.
з. При вычеркивании "свиристеля" размер предложения будет 65 байт.
и. При вычеркивании "буревестника" размер предложения будет 66 байт.
к. При вычеркивании "вертиголовки" размер предложения будет 66 байт.
7. При вычеркивании "свиристеля" размер нового предложения стал на 6 байт меньше, чем размер исходного предложения. Следовательно, ответом на задачу является имя "свиристеля". Оно является вычеркнутым названием птицы.
Итак, в ответе название вычеркнутой птицы - "свиристель".