решай.ai · шпаргалка

Задание 1: Количественные параметры информационных объектов

ОГЭ Информатика

Как выглядит

Это первое задание экзамена, оно оценивается в 1 первичный балл. Ответ — короткий: число или слово. Есть несколько типовых формулировок:

  • «Сколько байт займёт сообщение из KK символов при кодировке, где каждый символ кодируется 8 (или 16) битами?»
  • Дан список слов через запятую, оканчивающийся тире и обобщающим словом. Из списка вычёркивают одно слово вместе со «ставшими лишними» запятой и пробелом, при этом объём текста уменьшился на известное число байт. Нужно определить вычеркнутое слово.

…

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

  • 1 байт=8 бит1 \text{ байт} = 8 \text{ бит}.
  • При равномерном кодировании мощность алфавита NN и число бит на символ ii связаны формулой N=2iN = 2^i, откуда i=log⁡2Ni = \log_2 N.
  • Кодировки КОИ-8, ASCII, Windows-1251 — 8 бит (1 байт) на символ, независимо от того, буква это, цифра, пробел или знак препинания.
  • Кодировка Unicode (UTF-16) — 16 бит (2 байта) на символ.
  • Информационный объём текста из KK символов: V=i⋅KV = i \cdot K (в битах), или в байтах при 8-битной кодировке Vбайт=KV_{байт} = K, при 16-битной — Vбайт=2KV_{байт} = 2K.
  • Каждый символ — буква, цифра, пробел, запятая, точка, тире — считается отдельным символом и занимает столько же бит, сколько любой другой символ этой кодировки.
  • В списке вида «Слово1, Слово2, Слово3 — категория» разделителем между элементами служит сочетание «запятая + пробел», то есть 2 символа.
  • Если из середины (или из начала/конца) списка убрать один элемент, автоматически убирается сам этот элемент плюс один соседний разделитель «, », чтобы не осталось двойного пробела или лишней запятой. Итого убирается на (длина слова+2)(\text{длина слова} + 2) символов меньше при 8-битной кодировке, и на 2⋅(длина слова+2)2\cdot(\text{длина слова} + 2) байт меньше при 16-битной.

Алгоритм

  1. Определить кодировку и число бит на символ (8 или 16), указанное в условии.
  2. Выписать все слова списка и посчитать количество букв в каждом (без запятых и пробелов).
  3. Установить формулу связи между разностью объёмов Δ\Delta (в байтах) и длиной вычеркнутого слова LL: при 8 битах Δ=L+2\Delta = L + 2, при 16 битах Δ=2(L+2)\Delta = 2(L+2).
  4. Подставить известное значение Δ\Delta из условия и вычислить LL.
  5. Найти в списке слово, длина которого равна найденному LL. Если совпадение единственное — это и есть ответ.
  6. Проверить: пересчитать полный объём исходного текста и текста после удаления слова, убедиться, что разница действительно равна Δ\Delta.

Ловушки

  • Забывают про разделитель. Считают разницу объёмов равной только длине слова, без добавления 2 байт за запятую и пробел, — это даёт неверную длину и, соответственно, неверный ответ.
  • Путают биты и байты. В условии часто явно указано «8 бит на символ», а разница объёма дана в байтах — нужно сразу работать в одних единицах и не забывать делить/умножать на 8 при переходе между ними.
  • Ошибка в подсчёте букв. Мягкий знак, «й», «ё» — это отдельные буквы, их нужно учитывать при подсчёте длины слова. Легко ошибиться на одну букву и получить неверный ответ.
  • Неверно применяют коэффициент для 16-битной кодировки. Если кодировка 16-битная, разница в байтах вдвое больше, чем количество символов, — забывают удвоить или, наоборот, делят не в ту сторону. …
reshay.ai/oge/informatika/zadanie-1 — задачи с разборами и тренажёр

Полный гайд и задачи задания 1 →