ОГЭ по информатике · задание 1

Размер текста: какое слово удалили

Дан текст-перечисление и кодировка. Из текста удалили одно слово вместе с запятой и пробелом, размер уменьшился на известное число байт или бит. Нужно понять, какое слово удалили.

Что нужно знать

  • Размер текста = число символов × бит на символ.
  • 1 байт = 8 бит. 16 бит = 2 байта, 32 бита = 4 байта.
  • Символ — это любая буква, цифра, пробел, запятая, дефис, кавычка.

Как решать

  1. Перевести уменьшение размера в число символов.
  2. Вычесть 2: вместе со словом удаляют запятую и пробел.
  3. Найти в списке слово такой длины — оно одно.

Типичные ошибки

  • Забыть про запятую и пробел и искать слово на 2 буквы длиннее.
  • Не перевести биты в байты (или наоборот).
  • Не посчитать дефис в словах вроде «Винни-Пух».

Разобранные варианты

Сначала реши сам, потом открой разбор. В каждом разборе есть программа на Python.

Вариант 1

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Профессии будущего: дизайнер, пилот, аналитик, агроном, инженер, робототехник, программист, биоинформатик, тестировщик».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 30 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 2 байта. Размер уменьшился на 30 байт, значит, удалили 30 : 2 = 15 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 15 − 2 = 13 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
пилот5
агроном7
инженер7
дизайнер8
аналитик8
программист11
тестировщик11
робототехник12
биоинформатик13

Ответ: биоинформатик

Решение на Python.

words = ['дизайнер', 'пилот', 'аналитик', 'агроном', 'инженер', 'робототехник', 'программист', 'биоинформатик', 'тестировщик']
bits = 16       # бит на символ
delta = 30      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 2

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Птицы средней полосы: трясогузка, зяблик, воробей, соловей, клёст, дятел, синица, сойка».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 24 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 2 байта. Размер уменьшился на 24 байт, значит, удалили 24 : 2 = 12 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 12 − 2 = 10 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
клёст5
дятел5
сойка5
зяблик6
синица6
воробей7
соловей7
трясогузка10

Ответ: трясогузка

Решение на Python.

words = ['трясогузка', 'зяблик', 'воробей', 'соловей', 'клёст', 'дятел', 'синица', 'сойка']
bits = 16       # бит на символ
delta = 24      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 3

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«На грядке растут: свёкла, редис, огурец, петрушка, помидор, морковь, баклажан, чеснок, картофель, кабачок».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 14 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 2 байта. Размер уменьшился на 14 байт, значит, удалили 14 : 2 = 7 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 7 − 2 = 5 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
редис5
свёкла6
огурец6
чеснок6
помидор7
морковь7
кабачок7
петрушка8
баклажан8
картофель9

Ответ: редис

Решение на Python.

words = ['свёкла', 'редис', 'огурец', 'петрушка', 'помидор', 'морковь', 'баклажан', 'чеснок', 'картофель', 'кабачок']
bits = 16       # бит на символ
delta = 14      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 4

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Страны Европы: Италия, Польша, Швейцария, Мальта, Австрия, Португалия, Норвегия, Венгрия, Нидерланды, Франция».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 22 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 2 байта. Размер уменьшился на 22 байт, значит, удалили 22 : 2 = 11 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 11 − 2 = 9 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
Италия6
Польша6
Мальта6
Австрия7
Венгрия7
Франция7
Норвегия8
Швейцария9
Португалия10
Нидерланды10

Ответ: Швейцария

Решение на Python.

words = ['Италия', 'Польша', 'Швейцария', 'Мальта', 'Австрия', 'Португалия', 'Норвегия', 'Венгрия', 'Нидерланды', 'Франция']
bits = 16       # бит на символ
delta = 22      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 5

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Мои любимые герои мультфильмов: Малефисента, Маугли, Винни-Пух, Пумба, Пиноккио, Белоснежка, Крош, Нюша, Человек-паук, Конёк-Горбунок».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 14 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 2 байта. Размер уменьшился на 14 байт, значит, удалили 14 : 2 = 7 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 7 − 2 = 5 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
Крош4
Нюша4
Пумба5
Маугли6
Пиноккио8
Винни-Пух9
Белоснежка10
Малефисента11
Человек-паук12
Конёк-Горбунок14

Ответ: Пумба

Решение на Python.

words = ['Малефисента', 'Маугли', 'Винни-Пух', 'Пумба', 'Пиноккио', 'Белоснежка', 'Крош', 'Нюша', 'Человек-паук', 'Конёк-Горбунок']
bits = 16       # бит на символ
delta = 14      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 6

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«В зоопарке живут: дикобраз, зебра, антилопа, тигр, кенгуру, крокодил, орангутан, носорог, бегемот, жираф».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 22 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 2 байта. Размер уменьшился на 22 байт, значит, удалили 22 : 2 = 11 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 11 − 2 = 9 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
тигр4
зебра5
жираф5
кенгуру7
носорог7
бегемот7
дикобраз8
антилопа8
крокодил8
орангутан9

Ответ: орангутан

Решение на Python.

words = ['дикобраз', 'зебра', 'антилопа', 'тигр', 'кенгуру', 'крокодил', 'орангутан', 'носорог', 'бегемот', 'жираф']
bits = 16       # бит на символ
delta = 22      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 7

8 бит на символ · ответ в байтах

В кодировке КОИ-8 каждый символ кодируется 8 битами. Ученик написал текст (в нём нет лишних пробелов):

«Музыкальные инструменты: барабан, арфа, контрабас, саксофон, виолончель, скрипка, кларнет, баян, флейта, балалайка».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 8 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 1 байт. Размер уменьшился на 8 байт, значит, удалили 8 : 1 = 8 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 8 − 2 = 6 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
арфа4
баян4
флейта6
барабан7
скрипка7
кларнет7
саксофон8
контрабас9
балалайка9
виолончель10

Ответ: флейта

Решение на Python.

words = ['барабан', 'арфа', 'контрабас', 'саксофон', 'виолончель', 'скрипка', 'кларнет', 'баян', 'флейта', 'балалайка']
bits = 8       # бит на символ
delta = 8      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 8

8 бит на символ · ответ в байтах

В кодировке КОИ-8 каждый символ кодируется 8 битами. Ученик написал текст (в нём нет лишних пробелов):

«Города-герои: Керчь, Минск, Ленинград, Волгоград, Новороссийск, Севастополь, Тула, Москва, Одесса, Киев».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 14 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 1 байт. Размер уменьшился на 14 байт, значит, удалили 14 : 1 = 14 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 14 − 2 = 12 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
Тула4
Киев4
Керчь5
Минск5
Москва6
Одесса6
Ленинград9
Волгоград9
Севастополь11
Новороссийск12

Ответ: Новороссийск

Решение на Python.

words = ['Керчь', 'Минск', 'Ленинград', 'Волгоград', 'Новороссийск', 'Севастополь', 'Тула', 'Москва', 'Одесса', 'Киев']
bits = 8       # бит на символ
delta = 14      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Вариант 9

16 бит на символ · ответ в битах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Химические элементы: кальций, алюминий, литий, бор, фосфор, кислород, водород».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 128 бит меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 16 бит. Размер уменьшился на 128 бит, значит, удалили 128 : 16 = 8 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 8 − 2 = 6 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
бор3
литий5
фосфор6
кальций7
водород7
алюминий8
кислород8

Ответ: фосфор

Решение на Python.

words = ['кальций', 'алюминий', 'литий', 'бор', 'фосфор', 'кислород', 'водород']
bits = 16       # бит на символ
delta = 128      # на сколько бит уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed == delta:
        print(w)

Вариант 10

32 бит на символ · ответ в байтах

В кодировке UTF-32 каждый символ кодируется 32 битами. Ученик написал текст (в нём нет лишних пробелов):

«Виды спорта: плавание, волейбол, хоккей, баскетбол, теннис, бег, керлинг».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 44 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Разбор

Шаг 1. Сколько символов удалили. Один символ занимает 4 байта. Размер уменьшился на 44 байт, значит, удалили 44 : 4 = 11 символов.

Шаг 2. Вычитаем запятую и пробел. Вместе со словом удалили ещё запятую и пробел — это 2 символа. Значит, в слове 11 − 2 = 9 букв (дефис тоже считается символом).

Шаг 3. Ищем слово такой длины.

СловоСимволов
бег3
хоккей6
теннис6
керлинг7
плавание8
волейбол8
баскетбол9

Ответ: баскетбол

Решение на Python.

words = ['плавание', 'волейбол', 'хоккей', 'баскетбол', 'теннис', 'бег', 'керлинг']
bits = 32       # бит на символ
delta = 44      # на сколько байт уменьшился размер

for w in words:
    removed = (len(w) + 2) * bits   # слово + запятая + пробел, в битах
    if removed // 8 == delta:
        print(w)

Для самостоятельного решения

Варианты 11–15 без разборов. Ответ можно проверить кнопкой.

Вариант 11

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Деревья в парке: сосна, черёмуха, ель, тополь, осина, рябина, дуб, липа».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 20 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Вариант 12

8 бит на символ · ответ в байтах

В кодировке КОИ-8 каждый символ кодируется 8 битами. Ученик написал текст (в нём нет лишних пробелов):

«Планеты Солнечной системы: Венера, Сатурн, Нептун, Земля, Марс, Юпитер, Уран».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 7 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Вариант 13

16 бит на символ · ответ в битах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Реки России: Иртыш, Колыма, Кама, Волга, Ангара, Северная Двина, Печора».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 256 бит меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Вариант 14

16 бит на символ · ответ в байтах

В одной из кодировок Unicode каждый символ кодируется 16 битами. Ученик написал текст (в нём нет лишних пробелов):

«Цветы в саду: василёк, пион, тюльпан, хризантема, ромашка, роза, гладиолус, астра».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 14 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.

Вариант 15

32 бит на символ · ответ в байтах

В кодировке UTF-32 каждый символ кодируется 32 битами. Ученик написал текст (в нём нет лишних пробелов):

«Языки программирования: Си, Python, Паскаль, Фортран, Haskell, JavaScript, Кумир, Kotlin, Го, Java».

Ученик удалил из списка одно слово, а также лишние запятую и пробел — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 48 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое слово.