Методы представления и кодирования информации

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

Любой носитель можно характеризовать параметром разрешающей способности (количеством данных, записанных в принятой для носителя единице измерения) и динамиче- ским диапазоном (логарифмическим отношением интенсивности амплитуд максимального и минимального регистрируемого сигналов). От этих свойств носителя нередко зависят такие свойства информации, как полнота, доступность и достоверность. Так, например, мы можем рассчитывать на то, что в базе данных, размещаемой на компакт-диске, проще обеспечить полноту информации, чем в аналогичной по назначению базе данных, размещенной на гиб- ком магнитном диске, поскольку в первом случае плотность записи данных на единице дли- ны дорожки намного выше. Для обычного потребителя доступность информации в книге за- метно выше, чем той же информации на компакт-диске, поскольку не все потребители обла- дают необходимым оборудованием. И, наконец, известно, что визуальный эффект от про-


«Информатика». Коломейченко А.С. 5

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

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

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

• сбор данных — накопление данных с целью обеспечения достаточной полноты информа- ции для принятия решений;

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

• фильтрация данных — отсеивание «лишних» данных, в которых нет необходимости для принятия решений; при этом должен уменьшаться уровень «шума», а достоверность и адекватность данных должны возрастать;

• сортировка данных — упорядочение данных по заданному признаку с целью удобства использования; повышает доступность информации;

• группировка данных — объединение данных по заданному признаку с целью повышения удобства использования; повышает доступность информации;

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

• защита данных—комплекс мер, направленных на предотвращение утраты, воспроизведе- ния и модификации данных;

• транспортировка данных — прием и передача (доставка и поставка) данных между уда- ленными участниками информационного процесса; при этом источник данных в инфор- матике принято называть сервером, а потребителя — клиентом;

• преобразование данных — перевод данных из одной формы в другую или из одной струк- туры в другую. В качестве примера можно упомянуть, что для транспортировки цифро- вых потоков данных по каналам телефонных сетей (которые изначально были ориентиро- ваны только на передачу аналоговых сигналов в узком диапазоне частот) необходимо преобразование цифровых данных в некое подобие звуковых сигналов, чем и занимаются специальные устройства — телефонные модемы.

Кодирование данных двоичным кодом Для автоматизации работы с данными, относящимися к различным типам, очень важ- но унифицировать их форму представления — для этого обычно используется прием кодиро- вания, то есть выражение данных одного типа через данные другого типа. Естественные че- ловеческие языки — это не что иное, как системы кодирования понятий для выражения мыс- лей посредством речи. К языкам близко примыкают азбуки (системы кодирования компонен- тов языка с помощью графических символов). История знает интересные, хотя и безуспеш- ные попытки создания «универсальных» языков и азбук. Та же проблема универсального средства кодирования достаточно успешно реализуется в отдельных отраслях техники, науки и культуры. В качестве примеров можно привести систему записи математических выраже- ний, телеграфную азбуку, морскую флажковую азбуку, систему Брайля для слепых и многое другое.

Своя система существует и в вычислительной технике — она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 0 и 1. Эти знаки называются двоичными цифрами, по-английски — binary digit, или, сокра-


«Информатика». Коломейченко А.С. 6

щенно, bit (бит).

Одним битом могут быть выражены два понятия: 0 или 1 (да или нет, черное или бе- лое, истина или ложь и т. п.). Если количество битов увеличить до двух, то уже можно выра- зить четыре различных понятия:

00 01 10 11 Тремя битами можно закодировать восемь различных значений: 000 001 010 011 100 101 110 111 Увеличивая на единицу количество разрядов в системе двоичного кодирования, мы увеличиваем в два раза количество значений, которое может быть выражено в данной систе- ме.

Кодирование целых и действительных чисел Для кодирования целых чисел от 0 до 255 достаточно иметь 8 разрядов двоичного ко- да (8 бит).

0000 0000 = 0 0000 0001 = 1................... 1111 1110 = 254 1111 1111 = 255 Шестнадцать бит позволяют закодировать целые числа от 0 до 65535, а 24 бита — уже более 16,5 миллионов разных значений.

Для кодирования действительных чисел используют 80-разрядное кодирование. При этом число предварительно преобразуется в нормализованную форму:

3,1415926 = 0,31415926 • 101 300 000 = 0,3 • 10

6 123 456 789 = 0,123456789 • 109 Первая часть числа называется мантиссой, а вторая — характеристикой. Большую часть из 80 бит отводят для хранения мантиссы (вместе со знаком) и некоторое фиксирован- ное количество разрядов отводят для хранения характеристики (тоже со знаком).

Кодирование текстовых данных Если каждому символу алфавита сопоставить определенное целое число (например порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информа- цию. Восьми двоичных разрядов достаточно для кодирования 256 различных символов. Это- го хватит, чтобы выразить различными комбинациями восьми битов все символы английско- го и русского алфавитов, как строчные, так и прописные, а также знаки препинания, символы основных арифметических действий и некоторые общепринятые специальные символы, например символ «§».

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

Для английского языка, захватившего де-факто нишу международного средств обще- ния, противоречия уже сняты. Институт стандартизации США (ANSI American National Standard Institute) ввел в действие систему кодирования ASC. (American Standard Code for In- formation Interchange — стандартный код информационного обмена США). В системе ASCII закреплены две таблицы кодирована базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127 а расширенная относится к символам с номерами от 128 до 255.

Первые 32 кода базовой таблицы, начиная с нулевого, отданы производителя аппа- ратных средств (в первую очередь производителям компьютеров и печатающих устройств). В этой области размещаются так называемые управляющие коды которым не соответствуют никакие символы языков, и, соответственно, эти код не выводятся ни на экран, ни на устрой- ства печати, но ими можно управлять теп как производится вывод прочих данных.

Начиная с кода 32 по код 127 размещены коды символов английского алфавит, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов.


«Информатика». Коломейченко А.С. 7

Аналогичные системы кодирования текстовых данных были разработаны и в других странах. Так, например, в СССР в этой области действовала система кодирования КОИ-7 (кой обмена информацией, семизначный. Однако поддержка производителей оборудования и программ вывела американский код ASCII на уровень международного стандарта, и нацио- нальным системам кодирования пришлось «отступить» во вторую, расширенную часть си- стемы кодирования, определяющую значения кодов со 128 по 255. Отсутствие единого стан- дарта в этой области привело к множественности одновременно действующих кодировок. Только в России можно указать три действующих стандарта кодировки и еще два устарев- ших.

Так, например, кодировка символов русского языка, известная как кодировка Windows-1251, была введена «извне» — компанией Microsoft, но, учитывая широкое распро- странение операционных систем и других продуктов этой компании в России, она глубоко закрепилась и нашла широкое распространение. Эта кодировка используется на большинстве локальных компьютеров, работающих на платформе Windows.

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

Международный стандарт, в котором предусмотрена кодировка символов русского алфавита, носит название кодировки ISO (International Standard Organization — Междуна- родный институт стандартизации). На практике данная кодировка используется редко.

На компьютерах, работающих в операционных системах MS-DOS, могут действовать еще две кодировки (кодировка ГОСТ и кодировка ГОСТ-альтернативная). Первая из них считалась устаревшей даже в первые годы появления персональной вычислительной техни- ки, но вторая используется и по сей день.

В связи с изобилием систем кодирования текстовых данных, действующих в России, возникает задача межсистемного преобразования данных — это одна из распространенных задач информатики.

Универсальная система кодирования текстовых данных Если проанализировать организационные трудности, связанные с созданием единой системы кодирования текстовых данных, то можно прийти к выводу, что они вызваны огра- ниченным набором кодов (256). В то же время очевидно, что если, например, кодировать символы не восьмиразрядными двоичными числами, а числами с большим количеством раз- рядов, то и диапазон возможных значений кодов станет намного больше. Такая система, ос- нованная на 16-разрядном кодировании символов, получила название универсальной — UNICODE. Шестнадцать разрядов позволяют обеспечить уникальные коды для 65536 раз- личных символов — этого поля достаточно для размещения в одной таблице символов большинства языков планеты.

Несмотря на тривиальную очевидность такого подхода, простой механический пере- ход на данную систему долгое время сдерживался из-за недостаточных ресурсов средств вы- числительной техники (в системе кодирования UNICODE все текстовые документы автома- тически становятся вдвое длиннее). Во второй половине 90-х годов технические средства до- стигли необходимого уровня обеспеченности ресурсами, и сегодня мы наблюдаем постепен- ный перевод документов и программных средств на универсальную систему кодирования.

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

Поскольку линейные координаты и индивидуальные свойства каждой точки (яркость)


«Информатика». Коломейченко А.С. 8

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

Для кодирования цветных графических изображений применяется принцип декомпо- зиции произвольного цвета на основные составляющие. В качестве таких составляющих ис- пользуют три основных цвета: красный (Red, R), зеленый (Green, G) и синий (Blue, В). На практике считается (хотя теоретически это не совсем так), что любой цвет, видимый челове- ческим глазом, можно получить путем механического смешения этих трех основных цветов. Такая система кодирования называется системой RGB по первым буквам названий основных цветов.

Если для кодирования яркости каждой из основных составляющих использовать по 256 значений (восемь двоичных разрядов), как это принято для полутоновых черно-белых изображений, то на кодирование цвета одной точки надо затратить 24 разряда. При этом си- стема кодирования обеспечивает однозначное определение 16,5 млн. различных цветов, что на самом деле близко к чувствительности человеческого глаза. Режим представления цвет- ной графики с использованием 24 двоичных разрядов называется полноцветным. (True Color).

Каждому из основных цветов можно поставить в соответствие дополнительный цвет, то есть цвет, дополняющий основной цвет до белого. Нетрудно заметить, что для любого из основных цветов дополнительным будет цвет, образованный суммой пары остальных основ- ных цветов. Соответственно, дополнительными цветами являются: голубой (Cyan, С), пур- пурный (Magenta, M) и желтый (Yellow, У). Принцип декомпозиции произвольного цвета на составляющие компоненты можно применять не только для основных цветов, но и для до- полнительных, то есть любой цвет можно представить в виде суммы голубой, пурпурной и желтой составляющей. Такой метод кодирования цвета принят в полиграфии, но в полигра- фии используется еще и четвертая краска — черная (Black, К). Поэтому данная система ко- дирования обозначается четырьмя буквами CMYK (черный цвет обозначается буквой К, по- тому что буква В уже занята синим цветом), и для представления цветной графики в этой си- стеме надо иметь 32 двоичных разряда. Такой режим тоже называется полноцветным (True Color).

Если уменьшить количество двоичных разрядов, используемых для кодирования цве- та каждой точки, то можно сократить объем данных, но при этом диапазон кодируемых цве- тов заметно сокращается. Кодирование цветной графики 16-разрядными двоичными числами называется режимом High Color.

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

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


«Информатика». Коломейченко А.С. 9

Основные структуры данных Работа с большими наборами данных автоматизируется проще, когда данные упоря- дочены, то есть образуют заданную структуру. Существует три основных типа структур дан- ных: линейная, иерархическая и табличная. Их можно рассмотреть на примере обычной кни- ги.

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

Для быстрого поиска данных существует иерархическая структура. Так, например, книги разбивают на части, разделы, главы, параграфы и т. п. Элементы структуры более низ- кого уровня входят в элементы структуры более высокого уровня: разделы состоят из глав, главы из параграфов и т. д.

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

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

При создании любой структуры данных надо решить два вопроса: как разделять эле- менты данных между собой и как разыскивать нужные элементы. В журнале посещаемости, например, это решается так: каждый новый элемент списка заносится с новой строки, то есть разделителем является конец строки. Тогда нужный элемент можно разыскать по номеру строки.

Nn/n Фамилия, Имя, Отчество 1 Аистов Александр Алексеевич 2 Бобров Борис Борисович 3 Воробьева Валентина Владисла-

вовна 27 Сорокин Сергей Семенович

Разделителем может быть и какой-нибудь специальный символ. Нам хорошо извест- ны разделители между словами — это пробелы. В русском и во многих европейских языках общепринятым разделителем предложений является точка.

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

Табличные структуры (таблицы данных, матрицы данных) С таблицами данных мы тоже хорошо знакомы, достаточно вспомнить всем извест-


«Информатика». Коломейченко А.С. 10

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

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

Население 1900

Население 1950

Население Нью-Йорк 696115 3 437 202 7 891 957 1980

7 071 639 Лос-Анжелес 1 610 102479 1 970 358 2 966 850 Чикаго 29963 1 698 575 3 620 962 3 005 072 Хьюстон 2396 44633 596 163 1 595 138 Филадельфия 121 376 1 293 667 2 071 605 1 688210 Рис. 1 - В двумерных таблицах, которые печатают в книгах, применяются два типа раздели- телей — вертикальные и горизонтальные

Если нужно сохранить таблицу в виде длинной символьной строки, используют один символ-разделитель между элементами, принадлежащими одной строке, и другой раздели- тель для отделения строк.

Еще проще можно действовать, если все элементы таблицы имеют равную длину. Та- кие таблицы называют матрицами. В данном случае разделители не нужны, поскольку все элементы имеют равную длину.

Таким образом, табличные структуры данных (матрицы) — это упорядоченные структуры, в которых адрес элемента определяется номером строки и номером столбца, на пересечении которых находится ячейка, содержащая искомый элемент.

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

Номер факультета: 3 Номер курса (на факультете): 2 Номер специальности (на курсе): 2 Номер группы в потоке одной специ- альности:

Номер учащегося в группе: 19

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

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


«Информатика». Коломейченко А.С. 11

В иерархической структуре адрес каждого элемента определяется путем доступа (маршрутом), ведущим от вершины структуры к данному элементу.

Упорядочение структур данных Списочные и табличные структуры являются простыми. Ими легко пользоваться, по- скольку адрес каждого элемента задается числом (для списка), двумя числами (для двумер- ной таблицы) или несколькими числами для многомерной таблицы. Они также легко упоря- дочиваются. Основным методом упорядочения является сортировка.

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

Иерархические структуры данных по форме сложнее, чем линейные и табличные, но они не создают проблем с обновлением данных.

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

С примерами индексации вы, конечно, знакомы. Обычная книга (например такая, как эта) имеет иерархическую структуру.

Адресные данные Если данные хранятся не как попало, а в организованной структуре (причем любой), то каждый элемент данных приобретает новое свойство (параметр), которое можно назвать адресом. Конечно, работать с упорядоченными данными удобнее, но за это приходится пла- тить их размножением, поскольку адреса элементов данных — это тоже данные, и их тоже надо хранить и обрабатывать.

Самое обидное явление — это когда размер адресных данных становится больше, чем размер самих данных, на которые указывает адрес.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: