Задача № 8
В кодировке UTF-32 каждый символ кодируется 32 битами. Ученик напечатал текст в этой кодировке (лишних пробелов в нём нет):
«Роза, лилия, тюльпан, гвоздика, орхидея, пион, ромашка, мак — цветы».
Далее ученик добавил в список название ещё одного цветка — «подсолнух», запятую после него и пробел.
На сколько байт увеличился размер дополненного предложения?
Ответ:
Рассмотрим задачу подробно.
**Дано:**
- В исходном тексте используются символы, закодированные в UTF-32.
- В исходном тексте нет лишних пробелов.
- Текст:
«Роза, лилия, тюльпан, гвоздика, орхидея, пион, ромашка, мак — цветы».
- Ученик добавил ещё один цветок — «подсолнух», после которого поставил запятую и пробел.
**Задача:**
Определить, на сколько байт увеличился размер текста после добавления этого слова.
---
### Шаг 1: Определим длину исходного текста
Посчитаем количество символов в исходной строке:
«Роза, лилия, тюльпан, гвоздика, орхидея, пион, ромашка, мак — цветы»
Посчитаем символы, не считая лишних пробелов, а учитывая, что между словами есть только один пробел или запятая, и что тире (—) — один символ.
Разобьём по частям:
1. «Роза,»
2. «ллия,»
3. «тюльпан,»
4. «гвоздика,»
5. «орхидея,»
6. «пион,»
7. «ромашка,»
8. «мак —»
9. «цветы»
Подсчитаем символы:
- «Роза,» — 5 символов (Р, о, з, а, ,)
- «лилия,» — 6 (л, и, л, и, я, ,)
- «тюльпан,» — 8 (т, ю, л, ь, п, а, н, ,)
- «гвоздика,» — 8
- «орхидея,» — 8
- «пион,» — 6
- «ромашка,» — 8
- «мак —» — 5 (м, а, к, ,, —) — тут тире — один символ
- «цветы» — 5
Но тут есть вопрос: есть ли пробелы? В условии указано, что лишних пробелов нет, то есть между словами — только запятые и пробел после них, кроме тире, которое — один символ, вероятно, — тире между «мак» и «цветы».
Проверим строку целиком:
«Роза, лилия, тюльпан, гвоздика, орхидея, пион, ромашка, мак — цветы»
Давайте подсчитаем все символы по порядку:
- «Роза,» — 5
- пробел — 1
- «лилия,» — 6
- пробел — 1
- «тюльпан,» — 8
- пробел — 1
- «гвоздика,» — 8
- пробел — 1
- «орхидея,» — 8
- пробел — 1
- «пион,» — 6
- пробел — 1
- «ромашка,» — 8
- пробел — 1
- «мак» — 3
- пробел — 1
- тире (—) — 1
- пробел — 1
- «цветы» — 5
Теперь сложим:
5 + 1 + 6 + 1 + 8 + 1 + 8 + 1 + 8 + 1 + 6 + 1 + 8 + 1 + 3 + 1 + 1 + 1 + 5
Рассчитаем сумму:
- 5 + 1 = 6
- 6 + 6 = 12
- 12 + 1 = 13
- 13 + 8 = 21
- 21 + 1 = 22
- 22 + 8 = 30
- 30 + 1 = 31
- 31 + 8 = 39
- 39 + 1 = 40
- 40 + 6 = 46
- 46 + 1 = 47
- 47 + 8 = 55
- 55 + 1 = 56
- 56 + 3 = 59
- 59 + 1 = 60
- 60 + 1 = 61
- 61 + 5 = 66
ИТОГ: **66 символов** исходного текста.
---
### Шаг 2: Новая строка после добавления слова «подсолнух, »
Добавим:
- слово «подсолнух» — 10 букв (п, о, д, с, о, л, н, у, х), 9 символов.
- запятая — 1 символ
- пробел — 1 символ
Общее увеличение после добавления — 10 + 1 + 1 = 12 символов.
---
### Шаг 3: Общая длина нового текста
Исходная длина — 66 символов.
Добавляем 12 символов:
66 + 12 = 78 символов.
---
### Шаг 4: Определение увеличения в байтах
В кодировке UTF-32 каждый символ занимает 4 байта.
- Исходный текст — 66 символов → 66 * 4 = 264 байта.
- Новый текст — 78 символов → 78 * 4 = 312 байтов.
### Итог:
Разница: 312 байтов – 264 байтов = **48 байт**.
---
## Ответ:
**На 48 байт увеличился размер текста после добавления слова «подсолнух» и запятой.**