ОГЭ · задание 1

Информационный объём текста

Первое задание экзамена. Один балл, две минуты — и оно решается по одной и той же схеме всегда.

Разберём эту схему до конца: что такое бит и байт, почему пробел — тоже символ и как за три шага найти вычеркнутое слово.

вот оно, задание 1

Сначала посмотрим, о чём вообще речь

В кодировке Unicode на каждый символ уходит по 16 бит. Вова написал текст — лишних пробелов в нём нет:
«Девять городов, которые я знаю: Шуя, Руза, Тверь, Москва, Коломна, Кострома, Ярославль, Звенигород, Александров».
Потом ученик удалил из перечня название одного города, а заодно и запятую с пробелом, которые стали лишними. Предложение от этого стало короче на 14 байт. Запишите в ответе то название города, которое удалили.

Города по буквам считать не придётся: всё решение спрятано в этих «14 байт». Но сначала надо понять, что такое байт.

теория

Бит и байт

Бит — самая маленькая порция информации: ответ на один вопрос «да или нет», 0 или 1. Ничего меньше в компьютере не бывает.

Байт — восемь битов подряд:

0100 1101 = 1 байт

Восемь битов дают 28 = 256 разных комбинаций — этого хватает, чтобы выдать свой номер каждой букве, цифре и знаку препинания. Поэтому байт и стал порцией «на один символ».

теория

Килобайт, мегабайт и почему 1024

Мерить большие тексты в байтах неудобно, поэтому байты собирают в пачки.

единицасколько этодля примера
1 байт8 битов один символ текста
1 Кбайт1024 байта примерно полстраницы текста
1 Мбайт1024 Кбайта небольшая книга
1 Гбайт1024 Мбайта фильм в среднем качестве

Почему 1024, а не 1000. Компьютер считает двойками, а 1024 — это 210, ближайшая к тысяче степень двойки. Поэтому «кило» здесь не ровно тысяча.

как хранится текст

Каждый символ стоит одинаково

Компьютер хранит текст посимвольно: у каждого символа свой номер, и под каждый номер отводится одно и то же число битов. Сколько именно — решает кодировка.

кодировкана один символэто в байтах
Unicode, UTF-1616 битов 2 байта
Windows-12518 битов 1 байт
КОИ-8, ASCII8 битов 1 байт
UTF-3232 бита 4 байта

Значит размер текста = число символов × размер одного символа. Больше в этой формуле ничего нет.

Кодировку в условии называют всегда — с неё и начинаем читать задание.

единицы

Куда делить, куда умножать

бит: 8 → байт: 1024 → Кбайт: 1024 → Мбайт

Вправо по цепочке — делим, влево — умножаем. Биты : 8 = байты, байты × 8 = биты.

В задании 1 нужен один шаг

Насколько текст стал меньше, сказано в байтах. А найти надо, сколько ушло символов.

8 битов: символ стоит 1 байт — разница в байтах и есть число ушедших символов.

16 битов: символ стоит 2 байта — делим разницу на 2.

32 бита: символ стоит 4 байта — делим разницу на 4.

Частая потеря

Разницу дают в байтах, а поделить забыли — и текст получается вдвое (а при 32 битах вчетверо) длиннее, чем на самом деле.

Первым делом смотрим: сколько битов на символ — и делим на столько байтов, сколько из них выходит.

главная ловушка

Символ — это не только буква

Пробел, запятая, точка, дефис занимают ровно столько же битов, сколько буква.

Мышь ,␣ кот .

10 символов, а букв всего семь.

Именно поэтому в условии всегда пишут «в нём нет лишних пробелов»: составители убирают неоднозначность, чтобы считать можно было точно.

ключ ко всему заданию

Три шага — и ни шагом больше

  1. Перевести байты в символы. 8 битов на символ — число остаётся тем же.
    16 битов — делим разницу на 2. 32 бита — на 4.
  2. Убрать разделители. Из списка вместе со словом ушли запятая и пробел — минус 2.
    Из сплошного текста ушёл только пробел — минус 1.
  3. Найти слово получившейся длины. В тексте оно ровно одно — его и пишем в ответ.

Дальше — то самое задание с начала урока, шаг за шагом.

решаем вместе

То самое задание

В кодировке Unicode на каждый символ уходит по 16 бит. Вова написал текст — лишних пробелов в нём нет:
«Девять городов, которые я знаю: Шуя, Руза, Тверь, Москва, Коломна, Кострома, Ярославль, Звенигород, Александров».
Потом ученик удалил из перечня название одного города, а заодно и запятую с пробелом, которые стали лишними. Предложение от этого стало короче на 14 байт. Запишите то название города, которое удалили.

почему именно минус два

Что уходит вместе со словом

Список склеен разделителем «,␣» — запятая и пробел. Убираем название — уходит и один разделитель.

Шуя, ␣ Руза ,␣ Тверь ,␣ ...

Вычеркнули «Тверь, ␣» — это 5 + 2 = 7 символов.

А в сплошном тексте запятых при слове нет — уходит только пробел:

Белая ␣ берёз а␣ под␣ моим ␣...

Вычеркнули «под ␣» — это 3 + 1 = 4 символа.

В списке

слово + запятая + пробел → минус 2

В сплошном тексте

слово + пробел → минус 1

на чём теряют балл

Четыре ошибки, которые видно каждый год

  • Забыли поделить на 2. Кодировка 16-битная — разница в байтах вдвое больше, чем в символах.
  • Не вычли разделители. Взяли длину прямо из разницы и нашли слово на два знака длиннее.
  • Посчитали буквы, а не символы. Дефис в «Винни-Пух» — такой же символ, как буква: это 9 символов.
  • Набрали лишнее. В ответ идёт одно слово: «Тверь», а не «город Тверь» и не «Тверь,».

Информатику сдают за компьютером: ответ вы набираете с клавиатуры в экзаменационной программе, и сверяет его не человек, а машина — знак в знак. Лишний пробел, запятая или приписанное слово превращают верное решение в неверный ответ. Набрали — перечитайте, что стоит в поле.

итог

Задание всегда одно и то же

Меняются в нём только две вещи — от них и зависит счёт.

1. Сколько битов на символ

8 битов — 1 байт: делить не надо

16 битов — 2 байта: разницу : 2

32 бита — 4 байта: разницу : 4

2. Что ушло вместе со словом

Запятая и пробел — слово стояло в списке: минус 2

Только пробел — слово стояло в сплошном тексте: минус 1

Тире, двоеточие, «Девять городов, которые я знаю», «вычеркнул» или «пропустил» — это оформление. На счёт они не влияют никак.

  • Пробел, запятая и дефис — такие же символы, как буквы.
  • Ответ — одно слово, буква в букву как в условии.

Дальше — тренажёр: все шесть сочетаний этих двух вещей, по две задачи на каждое — всего двенадцать. Списки и тексты у всех свои, проверка сразу.

Материалы подготовлены с использованием технологий искусственного интеллекта. → слайд · Пробел шаг · F11 во весь экран