Вопрос 15
Массив — это составной тип данных, состоящий из фиксированного числа элементов одного и того же типа. Для описания массива предназначено словосочетание array of. После слова array в квадратных скобках записываются границы массива, а после слова of — тип элементов массива.
Статический массив представляет собой массив, границы индексов и, соответственно, размеры которого задаются при объявлении, т. е. они известны еще до компиляции программы. Формат описания типа статического массива:
Определение типа статического массива
Type tm = Array[1 .. 10, 1 .. 100] of real;
Определение типа статического массива
var
arr1, arr1 : tm;
arr3 : Array[20 .. 100] of char;
arr4 : Array['a' .. 'z'] of integer;
Динамический массив представляет собой массив, для которого при объявлении указывается только тип его элементов, а размер массива определяется при выполнении программы. Формат описания типа динамического массива:
Формат описания динамического массива
Array of <Тип элементов>;
Во время выполнения программы размер динамического массива задается процедурой SetLength(var S; NewLength: Integer), которая для динамического массива S устанавливает новый размер, равный NewLength. Выполнять операции с динамическим массивом и его элементами можно только после задания размеров этого массива.
После задания размера динамического массива для определения его длины, а также минимального и максимального номеров элементов используются функции Length(), Low() и High() соответственно. Нумерация элементов динамического массива начинается с нуля, поэтому функция Low() для него всегда возвращает значение 0
Приведем пример использования динамического массива.
Динамический массив
var
n : integer;
m : array of real;
SetLength (m, 100);
for n:=0 to 99 do m[n] :=n;
SetLength (m, 200);
Вопрос 16
Переменная — это область памяти, в которой находятся данные, которыми оперирует программа. Когда программа манипулирует с данными, она, фактически, оперирует содержимым ячеек памяти, т. е. переменными.
Чтобы программа могла обратиться к переменной (области памяти), например, для того, чтобы получить исходные данные для расчета по формуле или сохранить результат, переменная должна иметь имя. Имя переменной придумывает программист.
В общем виде инструкция объявления переменной выглядит так:
Имя : тип;
где:
имя — имя переменной;
тип — тип данных, для хранения которых предназначена переменная.
Пример:
а : Real; b : Real; i : Integer;
Область видимости переменных зависит от места их объявления. Если переменная была объявлена внутри процедуры, то ею могут пользоваться только операции и вызываемые функции этой процедуры. Область её видимости становится локальной, а сама переменная становится переменной уровня процедуры. Если переменная была объявлена вне процедуры, то она становится доступной для всех процедур этого скрипта. Такая переменная называется переменной уровня скрипта, а её видимость –видимостью на уровне скрипта.
Время жизни переменной зависит от времени её существования. Время жизни скриптовой переменной начинается с момента её объявления, и заканчивается моментом завершения выполнения этого скрипта. Процедурная переменная «живёт» только во время выполнения её процедуры. По окончании выполнения процедуры, переменная уничтожается. Локальные переменные идеальны в плане временного хранилища для данных в процессе выполнения какой-либо процедуры. Имена процедурных переменных в разных процедурах могут совпадать, поскольку обращение к ним идёт только внутри процедуры их объявления.