Всем салют! В этой статье я хочу разъяснить максимально простым языком, как решать Задание №1 из ОГЭ по Информатике.
Начну с базовой теории в двух словах. Для решения задач этого типа, вам необходимо знать "Единицы измерения информации" и "Алфавитный подход к измерению информации".
Единицы измерения информации:
- 1 бит – это наименьшая единица измерения информации;
- 1 байт = 8 бит;
- 1 Кбайт (один килобайт) = 1024 байта = 2^10 байт;
- 1 Мбайт (один мегабайт) = 1024 Кбайта = 2^10 Кбайт = 2^20 байт;
- 1 Гбайт (один гигабайт) = 1024 Мбайта = 2^10 Мбайт = 2^20 Кбайт = 2^30 байт;
- 1 Терабайт (Тб) = 1024 Гбайта = 2^10 Гбайт =2^20 Мбайт = 2^30 Кбайт = 2^40 байта;
Алфавитный подход к измерению информации:
Все множество используемых в языке символов будем традиционно называть алфавитом. Обычно под алфавитом понимают только буквы, но поскольку в тексте могут встречаться знаки препинания, цифры, скобки, кавычки и другие значки, то мы их тоже включим в алфавит. В алфавит также следует включить и пробел, т.е. пропуск между словами.
Опираясь на данную тему, под алфавитом мы будем понимать не привычную АБВГДЕ-йку, знакомую нам с детства, а все множество используемых в языке символов. То есть не только буквы, но и: Цифры, Скобки, Знаки препинания, Кавычки и любые другие значки и символы. А также не забываем про пробел (т.е. пропуск между словами)!
Теперь перейдем к формулам и обозначениям:
N - Мощность алфавита, или другими словами, полное количество символов используемое в алфавите. Вычисляется по формуле:
N = 2^i (2 в степени i-маленькая)
Где i - вес одного символа в битах.
k - количество символов в предложении/тексте/сообщении. Измеряется в "штуках".
I - Информационный вес сообщения. Измеряется в битах/байтах/Килобайтах и т.д. Вычисляется по формуле:
I = K * i (Т.е. чтобы узнать вес сообщения, нужно количество символов в сообщении умножить на вес одного символа).
Что касаемо мощности алфавита, иногда в задачах бывают такие ситуации, что мощность алфавита не равна ровной степени "двойки". В таком случае, мы округляем до ближайшей большей степени. Например:
N = 119, 119 больше 64, но меньше 128. Поэтому округляем до 128, и тогда имеем N = 128. Исходя из этого, можно получить, что i = 7.
И для удобства запоминания, если в задаче идет речь о битах/байтах/Кб и т.д., то значит это I (вес сообщения) или i (вес одного символа).
Если речь идет о штуках/символах и т.д., значит это N (мощность алфавита) или k ( кол-во символов в сообщении).
Перейдем к решению самих задач:
На экзамене само собой вы должны ОЧЕНЬ ВНИМАТЕЛЬНО прочесть всё задание целиком, чтобы не упустить важные условия задачи. Но для удобства, в следующей задаче, я жирным выделю те условия, на которые мы смотрим в первую очередь. А курсивом опциональное условие, которое как правило не меняется (но мало ли:)).
1.В кодировке КОИ-8 каждый символ кодируется 8 битами. Андрей написал текст (в нем нет лишних пробелов):
«Обь, Лена, Волга, Москва, Макензи, Амазонка — реки».
Ученик вычеркнул из списка название одной из рек. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 8 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название реки.
Решение:
И так, в первую очередь мы смотрим на условие, в котором говорится, сколько должен весить один символ. В данном случае i = 8 бит.
Затем на то, насколько меньше стал размер предложения, после того, как из него убрали искомое слово. В данном случае - 8 байт.
Теперь нам необходимо перевести эти значения в одну единицу измерения информации. Для вашего удобства, я бы предложил 8 бит перевести в байты, т.к. число получится меньше, и считать будет удобнее. Но для тех, кто не ищет легких путей, можете перевести 8 байт в биты:)
И так, 8 бит = 1 байт.
Теперь зная, что один символ весит 1 байт, а предложение стало меньше на 8 байт, путем не сложных вычислений можно получить, что из предложения вычеркнули 8 символов. (8 байт / 1 байт = 8 символов.)
Теперь возвращаемся к условию, которое я выделил курсивом:
"Ученик вычеркнул из списка название одной из рек. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд."
То есть, помимо самого слова, ученик вычеркнул 1 пробел и 1 запятую. На что это влияет? Например у нас есть предложение: "Кошка, мышь, собака, медведь - животные." Если я вычеркну только слово собака, то предложение будет выглядеть следующим образом: "Кошка, мышь, , медведь - животные." - А так быть не может.
Исходя из этого, теперь мы можем получить, что из 8 вычеркнутых символов, 2 штуки приходятся на пробел и запятую. Следовательно само слово будет состоять из 8 - 2 = 6 символов. Значит, это Москва.
Рассмотрим теперь другой тип задачи:
2. В кодировке Windows-1251 каждый символ кодируется 8 битами. Вова хотел написать текст (в нем нет лишних пробелов):
«Скользя по утреннему снегу,
Друг милый, предадимся бегу
Нетерпеливого коня
И навестим поля пустые...»
Одно из слов ученик написал два раза подряд, поставив между одинаковыми словами один пробел. При этом размер написанного предложения в данной кодировке оказался на 8 байт больше, чем размер нужного предложения. Напишите в ответе лишнее слово.
Решение:
Как и в предыдущей задаче, переводим 8 бит = 1 байт.
Значит предложение уменьшилось на 8 байт / 1 байт = 8 символов.
Написав одно слово 2 раза подряд, ученик поставил ТОЛЬКО ОДИН ПРОБЕЛ!
Следовательно, размер слова, это 8 - 1 = 7 символов. И этим словом является - Скользя.
И еще один тип задачи, который может попасться на экзамене:
3. Статья, набранная на компьютере, содержит 10 страниц, на каждой странице 32 строки, в каждой строке 48 символов. В одном из представлений Unicode каждый символ кодируется 16 битами. Определите информационный объем статьи в Кбайтах в этом варианте представления Unicode.
Решение:
Также, как и всегда - внимательно читаем условие задачи. Исходя из условия, мы понимаем, что для ее решения, нужно будет использовать формулу из теории, которую я дал выше:
I = K * i
I - нам нужно узнать, и ответ нужно дать в КИЛОБАЙТАХ (обратите на это внимание в конце условия, выделил его жирным).
i = 16 бит - нам известна. Т.к. ответ нужно будет дать в Кбайтах, то для удобства сразу переведем в Байты - 16 бит = 2 байта.
k - вот тут незадача. Нам неизвестно точное количество символов, поэтому его нужно вычислить:
10 страниц * 32 строки * 48 символов = 15360 символов.
Дальнейшие действия очень просты:
I = 15360 символов * 2 байта = 30720 байт.
Но т.к. ответ нужно дать в Кбайтах, то:
30720 байт / 1024 = 30 Кбайт.
Ответ: 30 Кбайт.
На этом всё, дорогие друзья! Спасибо за прочтение, удачи на экзамене!