Понятие данных
ПРЕДСТАВЛЕНИЕ ДАННЫХ В КОМПЬЮТЕРЕ
Данные- это сведения, характеризующие какой-то объект, процесс или явление, представленные в определенной форме и предназначенные для дальнейшего использования.
Данным приписываются несколько классификационных признаков.
1. Тип данных, который определяет:
• набор их допустимых значений;
• правила их обработки (преобразования);
• порядок их размещения в ОЗУ и ВЗУ при хранении;
• порядок доступа к ним (т.е. обращение и извлечение при необходимости с места хранения).
Допустимый набор типов данных и их особенности определяются программной системой или языком программирования, на котором система написана. Типизация данных влияет и на компактность самой исполняемой программы.
2. Структура данных.Элементарные (одиночные, простые) и структурированные (сложные).
1). Элементарные данные. Символы, числа (целые и вещественные) и логические данные. Общей и обязательной особенностью одиночных данных является то, каждое из них имеет одно значение и собственное имя. Значение - это содержимое тех ячеек памяти, где данное располагается. Имя (его называют также идентификатор) - это обозначение данного в тексте программы. Правила построения идентификаторов элементарных данных определяются языком программирования написанной программы.
2). Элементарные данные являются «кирпичиками», путем объединения которых строятся сложные данные. Вариантов объединения существует много - это приводит к появлению множества типов структур данных.
а) Информационный массив,объединяющий данные и связи (отношения)между ними называетсяструктурированными данными.
б) Перечень объединяемых одиночных данных, их характеристики, а также особенности связей между ними образуют структуру данных.
Примерами структурированных данных является страница из классного журнала с фамилиями учеников, датами занятий и отметками, телефонный справочник, организационная структура учреждения и т.п.
Сложные данные, как и элементарные, имеют значения и идентификаторы. Правила построения идентификаторов структурированных данных устанавливаются языком программирования или программной системой, а правила формирования имен файлов задаются операционной системой.
3. Динамичность данных. Как простые, так и структурированные данные подразделяются на переменные и постоянные (константы). Переменные могут изменять свое значение по ходу исполнения программы, а константы - нет. Хранятся переменные и постоянные данные в ОЗУ одинаково.
4. Этапы обработки. В зависимости от того, на каком этапе обработки данные используются, они подразделяются на исходные (входные), промежуточные и выходные.
К исходным данным относятся те, которые вводятся в программу в процессе работы.
Промежуточные данные формируются в ходе исполнения программы и существуют в ОЗУ или на ВЗУ.
Выходные данные являются результатом работы программы. Форму выходных данных определяет адресат предназначения.
Таким образом, работу программы можно рассматривать как действия по преобразованию входных данных в выходные через, необходимые для этого, промежуточные. Преобразование данных осуществляется только в соответствии с их типом.
Представление данных при их хранении и обработке требует решения трех основных задач на трех иерархических уровнях:
• на концептуальном уровне - определить способы представления элементарных (простых) данных, т.е. задать общую структуру или модель информационного массива. Модель данных может быть иерархическая, сетевая, реляционная, объектно-ориентированная. Она определяет построение информационной системы и выбор программы обработку данных (манипулирование данными).
• на логическом уровне - определить способы объединения данных в структуры, т.е. определить способы представления элементарных данных, их перечень при объединении в структуру, а также характер связей между ними в рамках выбранной модели данных.
• на физическом уровне - установить способы размещения информации на материальном носителе, т.е. определить форматы размещения созданной логической структуры данных на внешних носителях информации (магнитных или оптических дисках, бумаге, в памяти компьютера).
Различными типами элементарных данных являются символы, целые числа, вещественные числа и логические данные. Логический и физический уровни их представления определяются конструктивными особенностями ОЗУ компьютера.
1. Для представления значений элементарных данных на логическом уровне используется понятие машинного слова -совокупности двоичных элементов, обрабатываемой в устройствах компьютера как единое целое и хранящейся в одной ячейке памяти запоминающего устройства.
2. Ячейка памятиявляется элементом физического уровня представления данных. Она объединяет запоминающие элементы хранения одного бита кода. Емкость ячейки памяти кратна целому числу байт. Обращение к ячейке памяти осуществляется по ее номеру, который называется адресом ячейки.
Запоминающие устройства, в которых доступ к данным осуществляется по адресу ячейки, где они хранятся, называются устройствами с произвольным доступом (RAM–Random-Access-Memory). Время поиска нужной ячейки, а также продолжительность операций считывания или записи в ЗУ произвольного доступа одинаково для всех ячеек независимо от их адреса.
Элементарные данные на физическом уровне представляются машинными словами определенной и единой для данного компьютера длины, поскольку это определяется конструктивными особенностями ОЗУ (на ВЗУ элементарные данные в качестве самостоятельных не представляются и доступ к ним отсутствует).
Рассмотрим особенности представления всех типов элементарных данных с помощью 16-битного машинного слова.
1.Для представления символов (тип Char) машинное слово делится на два байта. Один байт содержит двоичный код одного символа.
Множество допустимых значений данных этого типа для всех кодировок, при однобайтовом представлении, составляет 28 = 256; при двухбайтовой кодировке (Unicode) - 65536 значений.
Номера разрядов машинного слова
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Второй байт (код второго символа) Первый байт (код первого символа)
2. Представление целых чисел со знаком(тип Integer).
Номера разрядов машинного слова
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 |
Знак числа Двоичный код числа
Старший бит (15-й) отводится под запись знака числа (0 соответствует «+», 1 - «-»), а остальные 15 двоичных разрядов - под запись прямого (для положительного) или обратного (для отрицательного) двоичного кода числа. При этом возможные значения чисел ограничены интервалом (-32768 ¸ 32767).
3. Для представления целых чисел без знака под запись отводятся все 16 двоичных разрядов, и интервал разрешенных значений оказывается (0 ¸ 65535). В PASCALE такой числовой тип называется Word. Помимо математических отношений (>, <, =) над целыми числами определены операции сложения, вычитания и умножения (в тех случаях, когда они не приводят к переполнению разрядной сетки), а также целочисленного деления и нахождения остатка от целочисленного деления.
4. Представление вещественных чисел с плавающей запятой. При записи числа оно переводится в нормализованную форму с выделением и отдельным хранением знака мантиссы, знака порядка, порядка и мантиссы. Для представления числа отводится несколько машинных слов. Ситуация, соответствующая числовому типу Single в языке PASCAL, когда для представления числа отводится два машинных слова, проиллюстрирована на рис.
31 30 29 28 27 26 25 24 23 5 4 3 2 1 0
…. |
Знак порядка Порядок Знак числа Мантисса
Мантисса записывается в 24разряда двойного машинного кода (занимает все первое машинное слово и 0 ¸ 7 разряды второго машинного слова). Этой формой охватывается диапазон модулей мантиссы 1,5*10**(-45)¸3,4*10**38 (7 десятичных цифр).
Так как модуль мантиссы 0,12 £ ½M2 ½ < 1, всегда значение старшего разряда числа 0 (целых), которое не отображается при записи, а значение следующего разряда всегда 1. В процессе выполнения операций может произойти переполнение разрядной сетки (на 1 разряд) или, наоборот, ее освобождение (т.е. в первом отображаемом разряде окажется 0). По этой причине после каждой операции производится нормализация результата, которая состоит в изменении порядка числа и сдвиге мантиссы, чтобы первой значащей цифрой снова оказалась 1. Изменение порядка в представлении числа на -1 эквивалентно сдвигу кода числа на один разряд влево. Сдвиг на один разряд вправо соответствует изменению порядка числа на +1. Такая форма получила название «с плавающей запятой». Благодаря применению плавающей запятой производится автоматическое масштабирование чисел в ходе вычислений, что снижает погрешность их обработки. Над вещественными числами определены все четыре арифметические операции. Помимо этого имеются операции преобразования вещественного типа к целому (например, round и trunc в PASCAL'e).
5.Логические данные могут принимать одно из двух значений - О или 1 (0 соответствует логическому False, 1 - True, причем, принимается False<True). Для их записи было бы достаточно отвести всего один двоичный разряд. Однако в ОЗУ компьютера отсутствует доступ к отдельному биту, поэтому для представления логических данных выделяется 1 машинное слово, в 0 и 8 разряды которого и помещаются значения логической величины.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Над логическими данными определены операции: логическое умножение (конъюнкция, &), логическое сложение (дизъюнкция, v), логическое отрицание (Ø). Примером логических данных может служить тип Boolean в PASCAL'e.
Значения элементарных данных формируются в ходе исполнения программы и имеют физическое представление в ОЗУ. В отличие от них идентификаторы данных существуют только на уровне логического представления- они используются для обозначения данных в тексте программы, однако при трансляции программы с языка программирования в машинный код имена заменяются номерами ячеек, в которых данные размещаются. При исполнении такой программы обращение к данным производится по адресу ячейки, а не идентификатору. Адреса могут быть абсолютными - в этом случае они не изменяются при загрузке программы в ОЗУ - именно такой способ адресации применяется в исполняемыхпрограммных файлах с расширением .соm. Однако в силу некоторых особенностей распределения памяти компьютера размер таких программ не может превышать 64 Кб. В исполняемых файлах с расширением .ехе на этапе трансляции устанавливаются относительные адреса данных, которые конкретизируются при размещении программы в ОЗУ - это несколько замедляет начало исполнения, зато снимает указанное выше ограничение на размер программы.