Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / Uchpos / Gl_1.doc
Скачиваний:
24
Добавлен:
27.04.2015
Размер:
124.42 Кб
Скачать

1. Оперативные структуры данных Типы данных

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

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

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

В языках программирования чаще всего используются следующие типы данных: INTEGER(целый), REAL(вещественный), CHARACTER(символьный), BOOLEAN(логический, или булевский), POINTER(указательный).

К типу INTEGERотносится конечное множество целых чисел, причем наибольшее по модулю целое число определяется конкретной ВС. Следовательно, значением данного типа INTEGERявляется некоторый элемент конечного множества целых чисел. Характеристикой этого типа данных может быть длина, выражаемая, например, максимальным объемом памяти, отводимой для хранения данного, или максимальным числом десятичных позиций для записи данного. Типичные операции над целыми числами— сложение, вычитание, умножение, целочисленное деление (с отбрасыванием остатка), вычисление по заданному модулю (нахождение остатка от деления), определение максимального или минимального числа в заданном множестве чисел, возведение в целую степень, определение следующего или предыдущего по значению числа. Результаты выполнения всех этих операций являются также целыми числами. В отличие от абстрактного множества целых чисел, изучаемого в арифметике, множество целых чисел, представимое в ЭВМ, не замкнуто относительно некоторых от перечисленных выше операций. Например, при сложении двух целых чисел результат может выйти за допустимый в ЭВМ диапазон, т. е. произойдет переполнение.

Над целыми числами можно выполнять также бинарные реляционные операции.Однако результат любой из таких операций относится не к типу INTEGER,а к типу BOOLEAN.

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

К типу REALотносится конечное множество вещественных чисел. Причиной того, что это множество конечное, является ограниченная точность выражения вещественных чисел в ЭВМ. Значение данного типа REAL — число, содержащее в общем случае целую и дробную части. Типичные операции над вещественными числами — сложение, вычитание, умножение, деление, вычисление тригонометрических функций, возведение в степень, извлечение квадратного корня, логарифмирование, нахождение максимального или минимального числа в конечном множестве чисел и др. Результат выполнения каждой из этих операций — данное типа REAL.Сделанное выше замечание о незамкнутости множества целых чисел, представимых в ЭВМ, относительно некоторых операций справедливо и для конечного множества вещественных чисел. Как и над целыми числами, над вещественными числами можно выполнять реляционные операции с результатом, относящимся к типу BOOLEAN.

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

х=М*ЕР,

где М—мантисса со знаком; Е—фиксированное основание (например, 10или 16);р—целый порядок со знаком.

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

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

Каждому символу ставится в соответствие определенный цифровой код, который используется не только при выполнении операций над символами, но и для представления символов на внешних устройствах и в памяти ЭВМ. Нередко даже в одной и той же ВС системы кодирования символов различны для различных устройств ВС.

Тип BOOLEANпредставляет одно из двух истинностных логических значений, имеющих различное выражение в разных языках программирования. Например, в языке ПАСКАЛЬ логические значения имеют вид true(истина) и false(ложь), в языке ФОРТРАН—.TRUE.и .FALSE.,в языке ЛИСП—Т и NIL. Над логическими данными можно выполнять основные логические операции конъюнкции (И), дизъюнкции (ИЛИ) и отрицания (НЕ), а также более сложные операции: эквивалентности, импликации, исключающего ИЛИ и др. Результат выполнения любой из таких операций—логическое значение. Кроме того, как уже упоминалось выше, логическое значение получается в результате выполнения реляционных операций над целыми и вещественными числами, символьными и другими данными, для которых эти операции имеют смысл.

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

Особенностью данного того или иного типа является простота организации (неструктурированность). Поэтому ниже будем называть данное любого типа простым (неструктурированным).

Соседние файлы в папке Uchpos