Закодируйте сообщение pascal используя кои 8

Обновлено: 20.05.2024

В задачах данного типа используются следующие понятия: кодирование, код, кодовая таблица (таблица кодировки). В задачах могут быть использованы следующие таблицы кодировки ASCII, Unicode, ISO, DOS, MAC, КОИ-8.

Решение задач на кодирование текстовой информации.

Задача 1. Текст, состоящий из 142 символов, закодирован с помощью таблицы кодировок Unicode. Определите количество информации (в битах) содержащейся в тексте.

Решение. Воспользуемся формулой: I= K×i, где I- количество информации, K- количество символов в тексте, i – информационный вес одного символа.

В таблице кодировок Unicode, для хранения каждого символа используется 2 байта. В тесте 142 символа, следовательно, I= 142×2=284байта.

Переводим из одной единицы измерения в другую, так как 1байт=8бит, то 284байт×8бит= 2272 бит.

Ответ. Информационный объем текста 2272бит.

В задачи стоит вопрос, на какое количество информации увеличилось количество памяти, для этого необходимо найти разность полученных объемов. 236-118=118байт.

Составим уравнение: количество бит, которое было первоначально, минус количество бит после перекодировки равно 480 бит.

Задача4. С помощью последовательности десятичных кодов 99 111 109 112 117 116 101 114 закодировано слово computer. Какая последовательность десятичных кодов будет соответствовать этому же слову, записанному прописными буквами?

Решение. Таблица кодировок сначала содержит прописные буквы в алфавитном порядке, а затем строчные. Так как разница между десятичным кодом строчной буквы латинского алфавита и десятичным кодом соответствующей прописной буквы равна 32, то десятичный код прописной буквы С равен 99-32=67.

Аналогичным образом находятся остальные десятичные коды. 111-32=79, 109-32=77, 112-32=80, 117-32=85, 116-32=84, 101-32=69, 114-32=82.

Последовательность десятичных кодов слова COMPUTER составляет 67 79 77 80 85 84 69 82.

Ответ. 67 79 77 80 85 84 69 82.

Задача5. Для кодирования букв А, Б, В, Г решили использовать двухразрядные последовательные числа (от 00 до 11 соответственно). Какая получиться последовательность, если таким способом закодировать последовательность символов ВАБВГАБГ и записать результат шестнадцатеричным кодом?


Используя правила перевода из двоичной системы счисления в шестнадцатеричную, сгруппируем получившиеся двоичные цифры по 4 и вместо каждой группы напишем соответствующую шестнадцатеричную цифру.

Ответ: 86С7.

Задача 6. Для 5 букв латинского алфавита заданы их двоичные коды для некоторых букв из двух бит, для некоторых из трех. Эти коды представлены в таблице:


Определите, какой набор букв закодирован двоичной строкой 0110100011000.

Решение. Так как код записывается начиная с младшего разряда, то необходимо разбить двоичную строку, начиная справа: 0110|100|011|000. При этом видно, что последние три буквы будут C, E, A. Кода 0110 нет, тогда его можно разбить код из двух бит: 01|10, следовательно, 01-В, 10-D. Итак, двоичной строкой 0110100011000 закодирован следующий набор букв BDCEA.

Первые таблицы кодировки, созданные в США, не использовали восьмой бит в байте. Текст представлялся как последовательность байт, но восьмой бит не учитывался (он применялся в служебных целях). Общепризнанным стандартом стала таблица ASCII (American Standard Code for Information Interchange ).

Первые 32 символа таблицы ASCII (от 00 до 1F ) использовались для непечатаемых символов. Они были предназначены для управления печатающим устройством и т.п. Остальная часть – от 20 до 7F – обычные (печатаемые) символы.

Как легко заметить, в этой кодировке представлены только латинские буквы, причём те, которые используются в английском языке. Есть также арифметические и другие служебные символы. Но нет ни русских букв, ни даже специальных латинских для немецкого или французского языка.

Это легко объяснить – кодировка разрабатывалась имено как американский стандарт. Когда компьютеры стали применяться во всём мире, потребовалось кодировать и другие символы.

Для этого было принято решение использовать восьмой бит в каждом байте. Тем самым оказались доступны ещё 128 значений (от 80 до FF), которые можно было использовать для кодирования символов.

Первая из восьмибитных таблиц – “расширенный ASCII” (Extended ASCII) – включала в себя различные варианты латинских символов, применяемые в некоторых языках Западной Европы. Также в ней были другие дополнительные символы, включая псевдографику.

Псевдографические символы позволяют, выводя на экран только текстовые символы, обеспечивать некоторое подобие графики. При помощи псевдографики работает, например, програма для управления файлами FAR Manager.

Во всех кодировках, получивших распространение, первые 127 символов (т.е. значения байта при восьмом бите, равном 0) совпадают с ASCII. Таким образом, файл в формате ASCII работает в любой из этих кодировок; буквы английского языка в них представлены одинаково.

Однако по историческим причинам кодировка ISO 8859-5 не прижилась. Реально для русского языка применяются следующие кодировки:

– Code Page 866 (CP866), она же “ DOS ”, она же “альтернативная кодировка ГОСТ”. Широко применялась до середины 90-х годов; теперь используется ограниченно. Практически не применяется для распространения текстов в Интернете .

– Code Page 1251, CP1251, Windows-1251. Разработана компанией Microsoft для поддержки русского языка в системе Windows.

Основным достоинством CP866 было сохранение символов псевдографики на тех же местах, что и в Extended ASCII; поэтому могли без изменений работать зарубежные текстовые программы, например, знаменитый Norton Commander. Ныне CP866 используется для программ под Windows, работающих в текстовых окнах или в полноэкранном текстовом режиме, включая FAR Manager.

Тексты в CP866 в последние годы встречаются довольно редко. Поэтому мы подробнее остановимся на двух других кодировках – КОИ-8R и CP1251.

Как можно заметить, в таблице кодировки CP1251 русские буквы расположены в алфавитном порядке (за исключением, правда, буквы Ё). Благодаря такому расположению компьютерным программам очень просто осуществлять сортировку по алфавиту.

А вот в КОИ-8R порядок русских букв кажется случайным. Но на самом деле это не так.

А теперь сравните КОИ-8R с таблицей ASCII (табл.1). Вы обнаружите, что русские буквы поставлены в чёткое соответствие с латинскими. Если исчезнет восьмой бит, строчные русские буквы превращаются в заглавные латинские, а заглавные русские – в строчные латинские. Так, E1 в КОИ-8 – это русское “А”, тогда как 61 в ASCII – латинское “a”.

Из-за того, что распространённых кодировок оказалось две, при работе с Интернетом (почта, просмотр Web-сайтов) иногда можно вместо русского текста увидеть бессмысленный набор букв. Например, “Я СБЮФЕМХЕЛ”. Это всего лишь слова “с уважением”; но они были закодированы в кодировке CP1251, а компьютер декодировал текст по таблице КОИ-8. Если те же слова были, наоборот, закодированы в КОИ-8, а компьютер декодировал текст по таблице CP1251, результатом будет “У ХЧБЦЕОЙЕН”.

Иногда бывает, что компьютер расшифровывает русскоязычные письма и вовсе по таблице, не предназначенной для русского языка. Тогда вместо русских букв появляются бессмысленный набор символов (например, латинские буквы восточно-европейских языков); их часто называют “крокозябрами”.

В большинстве случаев современные программы справляются с определением кодировок документов Интернета (электронных писем и Web-страниц) самостоятельно. Но иногда они “дают осечку”, и тогда можно увидеть странные последовательности русских букв или же “крокозябры”. Как правило, чтобы в такой ситуации вывести на экран настоящий текст, достаточно выбрать кодировку вручную в меню программы.



Условие

210. Закодируйте тексты в коде КОИ-8. с Текст Л Абак Десятичный код ^ Двоичный код J Текст Соробан Десятичный код ^ Двоичный код у Текст Л Суан-пан Десятичный код Двоичный код J Текст IBM Десятичный код ^ Двоичный код J

Решение




209. Используя фрагмент кодовой таблицы КОИ-8, выполните следующие задания. а) Укажите истинное высказывание (отметьте точкой). Русские буквы в кодовой таблице КОИ-8 расположены в лексикографическом порядке. Русские буквы в кодовой таблице КОИ-8 расположены в порядке возрастания их кодов. Русские буквы в кодовой таблице КОИ-8 расположены произвольно. б) Укажите ложное высказывание (отметьте точкой). Десятичный код прописной буквы на 32 больше кода соответствующей строчной буквы. Связи между кодами прописных и строчных букв не существует. Десятичный код строчной буквы на 32 меньше кода соответствующей прописной буквы. О О О О О О

211. Декодируйте тексты с помощью кодовой таблицы КОИ-8. £ г Десятичный код 240 207 208 217 212 203 193 32 206 ^ 197 32 208 217 212 203 193 46 ^ Текст Десятичный код 215 197 203 32 214 201 215 201 44 32 215 197 203 32 213 222 201 211 216 46 ^ Текст J Двоичный код 11110111 11010010 11000101 11001101 11010001 00100000 11001110 11000101 00100000 11010110 11000100 11000101 11010100 00101110 ^ Текст у

Сегодня я хочу поговорить о кодировках. Зачем вообще нужны кодирование текстов и почему это так важно? Какие кодировки текста существуют и какие из них следует использовать?


У вас встречалась ситуация, когда вы получаете электронное письмо, но не можете его прочитать – вместо текста идут какие-то непонятные знаки? То же самое случается и в интернете – открываете страницу, а разобрать ничего не возможно. Причем заметьте, подобное происходит именно с русским текстом, с английским подобные проблемы маловероятны. Причина проблем – открытие файла в неверной кодировке.

В процессе вывода символа на экран производится обратная операция – декодирование, т.е. преобразование кода символа в изображение.

Присвоенный каждому символу конкретный числовой код фиксируется в кодовых таблицах. Причем, в разных таблицах одному и тому же символу могут соответствовать разные числовые коды. Обычно перекодированием текста занимаются специальные программы-конвертеры, они встроены в большинство приложений.

Зачем нужны кодировки

Символы на экране вашего компьютера формируются на основе двух вещей — наборов векторных форм (представлений) всевозможных символов (они находятся в файлах со шрифтами, которые установлены на вашем компьютере) и кода, который позволяет выдернуть из этого набора векторных форм (файла шрифта) именно тот символ, который нужно будет вставить в нужное место.

Кодировка ASCII

Для начала немного посчитаем. Помните, что такое бит? Это минимальный носитель информации, ноль или один. А байт содержит восемь битов. Сколько может быть комбинаций из нулей и единиц длины 8? Ответ – 2*2*2*2*2*2*2*2=256. Именно столько значений может принимать один байт. Иногда еще байт называют символом – потому что как раз для кодировки символа и стали использовать один байт. Даже меньше, изначально была придумана кодировка ASCII, которая использовала 7 битов – в первые 128 значений можно было вольготно разместить английский алфавит в обоих регистрах, диакритические знаки, цифры и набор спец-символов. И эта кодировка действительно стала универсальной, поэтому англоязычные пользователи крайне редко могут испытывать проблемы с кодировкой.

Кодировка КОИ-8R

Среди особенностей кодировки KOI-8R можно отметить то, что русские буквы в ее таблице идут не в алфавитном порядке. В кодировке KOI-8R русские буквы расположены в тех же ячейках таблицы, что и созвучные им буквы латинского алфавита из первой части таблицы ASCII. Это было сделано для удобства перехода с русских символов на латинские путем отбрасывания всего одного бита (два в седьмой степени или 128).

Кодировка Unicode

Перейдем к кириллице. Для нее стали использовать вторую половину кодовой таблицы – символы 129-256. Однако так сложилось, что различные кодировки были изобретены независимо – одни изобретатели располагали буквы, стремясь к соответствию расположения на пишущих машинках, другие – к тому, чтобы одинаково выглядящие кириллические и латинские буквы находились на расстоянии в 128 (что приводило к тому, что даже программы, не умевшие работать со второй половиной таблицы, более-менее читаемо отображали русский текст). Были и другие идеи; появление Windows также принесло свою кодировку. Но главное, такая кодировка принципиально не могла стать универсальной, так как если латиница была нужна везде (хотя бы для командной строки), то кириллица была лишь одним из национальных алфавитов.

У единой, потенциально универсальной кодировки, существует название: Unicode, и придумана она была уже давно, в 1991 году. В Юникоде используется 6 байтов для отображения символа.

Например, в операционной системе Windows вы можете пройти по пути Пуск — Программы — Стандартные — Служебные — Таблица символов. В результате откроется таблица с векторными формами всех установленных у вас в системе шрифтов. Если вы выберите в Дополнительных параметрах набор символов Юникод, то сможете увидеть для каждого шрифта в отдельности весь ассортимент входящих в него символов. Кстати, щелкнув по любому из этих символов вы сможете увидеть его двухбайтовый код в кодировке UTF 16, состоящий из четырех шестнадцатеричных цифр.

Кодировки кириллицы

Поэтому коды символов могут принимать значение от 0 до 255. Такие кодировки называют однобайтными. Они позволяют использовать 256 символов (2 в восьмой степени равно 256). Таблица однобайтных кодов символов ASCII состоит из двух частей. Первая часть таблицы ASCII-кодов (от 0 до 127) стандартна для всех компьютеров и содержит:

  • коды управляющих символов,
  • коды цифр, арифметических операций, знаков препинания,
  • некоторые специальные символы,
  • коды больших и маленьких латинских букв.
  • коды букв национального алфавита,
  • коды некоторых математических символов,
  • коды символов псевдографики.

Поэтому с его помощью можно закодировать 65536 различных символов (2 в шестнадцатой степени равно 65536). Коды символов могут принимать значение от 0 до 65535.

Примеры решения задач

1. С помощью кодировки Unicode закодирована следующая фраза: Я хочу поступить в университет!
Оцените информационный объем этой фразы.
Решение:

В данной фразе содержится 31 символ (включая пробелы и знак препинания). Поскольку в кодировке Unicode каждому символу отводится 2 байта памяти, для всей фразы понадобится 31*2 = 62 байта или 31*2*8 = 496 битов.

2. Статья, набранная на компьютере, содержит 8 страниц, на каждой странице 40 строк, в каждой строке 64 символа. В одном из представлений Unicode каждый символ кодируется 16 битами. Определите информационный объем статьи в этом варианте Unicode. Выберите верный ответ из предложенных: а) 320 байт, б) 35 Кбайт , в) 640 байт, г) 40 Кбайт.

Определим количество символов: 8*40*64 = 20480. Поскольку в кодировке Unicode каждому символу отводится 16 битов памяти, для всей фразы понадобится 20480*16 = 327680 битов.

Читайте также: