Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SAOD..doc
Скачиваний:
142
Добавлен:
11.05.2015
Размер:
959.49 Кб
Скачать

2.3 Массивы

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

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

Индекс массива – это имя его компоненты. Он должен быть скалярного типа (т.е. неструктурированного, на котором определено отношение порядка).

Индексы могут вычисляться и результат определяет выбираемую компоненту. Значит, вместо индексной константы можно использовать индексное выражение. (Что приводит к самым частым ошибкам).

Если базовый тип массива так же, как и тип индекса упорядоченный, то на таком регулярном типе имеется естественное отношение порядка.

Представление массивов в памяти ЭВМ

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

Если массив одномерный (вектор), то переход от его логической структуры к физической несложен.

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

Например, 2-мерный массив

b11 b12 b13

b21 b22 b23

можно распределять в памяти по строкам

b11 b12 b13 b21 b22 b23 или по столбцам

b11 b21 b12 b22 b13 b23 или по спирали (редко)

b11 b12 b13 b23 b22 b21 Преобразование логической структуры массива в физическую осуществляется с помощью подходящей функции упорядочения. Аргументом этой функции является набор (упорядоченный) индексов элемента, а зна­чением – номер соответствующего слота в физической структуре.

2.4 Строки

Строки играют важную роль в современных языках программирования и информационных системах.

Строка – конечная, линейно упорядоченная последовательность простых данных символьного типа, рас­сматриваемая как единое целое.

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

Доступ может осуществляться, в принципе, не только к отдельному элементу, но и к цепочке символов, в том числе и ко всей строке в целом.

В Турбо Паскале представление строк следующее. Длина строкового типа в байтах равна его максималь­ной длине + 1. Первый байт содержит текущую длину строки, следующие – символы строки. Байт длины и символы представлены беззнаковыми значениями. Максимальная длина строки 255 символов + байт длины (string[255]).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]