В одной из кодировок юникод каждый символ кодируется 16 битами. Вова написал текст: (в нем нет лишних пробелов): бор, азот, гелий, натрий, водород - химические элементы.
Ученик вычеркнул из списка названия одного химического элемента. Заодно он вычеркнул ставшую лишней запятую и пробел - два пробела не должны идти подряд. При этом размер нового предложения, в данной кодировке, оказался на 16 байт меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название элемента.
Информатика 8 класс Кодировки и символы в информатике Бор азот гелий натрий водород химические элементы кодировка Юникод размер предложения вычеркнутое название элемента Новый
Для решения этой задачи давайте разберем, что произошло с текстом, когда ученик вычеркнул название одного химического элемента и лишнюю запятую с пробелом.
Исходный текст Вовы:
бор, азот, гелий, натрий, водород - химические элементы.
В этом тексте у нас есть 5 химических элементов: бор, азот, гелий, натрий и водород. Каждое название элемента занимает определенное количество символов, а также учитываются запятые и пробелы.
Теперь давайте посчитаем, сколько символов в исходном предложении:
Теперь подсчитаем общее количество символов:
3 + 1 + 1 + 4 + 1 + 1 + 6 + 1 + 1 + 6 + 1 + 1 + 7 + 1 + 12 + 10 = 53 символа.
Каждый символ кодируется 16 битами, что означает, что размер текста в байтах равен:
53 символа * 2 байта/символ = 106 байт.
Теперь, согласно условию задачи, размер нового предложения стал на 16 байт меньше:
106 байт - 16 байт = 90 байт.
Это значит, что новое предложение должно содержать:
90 байт / 2 байта/символ = 45 символов.
Теперь мы можем определить, сколько символов было удалено. Из исходных 53 символов стало 45, значит, было удалено:
53 - 45 = 8 символов.
Учтем, что при удалении одного элемента также была удалена запятая и пробел, что в сумме дает 3 символа. Следовательно, вычеркнутый элемент должен занимать:
8 символов - 3 символа = 5 символов.
Теперь давайте посмотрим на элементы:
Из этих названий только "гелий", "натрий" и "водород" имеют длину больше 5 символов, но "гелий" - 6 символов, а "натрий" - 6 символов. Если вычеркнуть "гелий", то у нас останется:
бор, азот, натрий, водород - химические элементы.
Теперь посчитаем новый размер:
Теперь подсчитаем новое количество символов:
3 + 1 + 1 + 4 + 1 + 1 + 6 + 1 + 1 + 7 + 1 + 12 + 10 = 50 символов.
Теперь проверим: 50 символов * 2 байта/символ = 100 байт, 100 - 16 = 84 байта, что не совпадает.
Если вычеркнуть "водород", то у нас останется:
бор, азот, гелий, натрий - химические элементы.
Теперь посчитаем новый размер:
Теперь подсчитаем новое количество символов:
3 + 1 + 1 + 4 + 1 + 1 + 6 + 1 + 1 + 6 + 1 + 12 + 10 = 50 символов.
Теперь проверим: 50 символов * 2 байта/символ = 100 байт, 100 - 16 = 84 байта, что не совпадает.
Таким образом, вычеркнутый элемент - гелий.