Динамические массивы

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

Объявить одномерный динамический массив можно следующим образом:

var < имя массива >: array of< тип >;

Например:

var

vect: array of real; {вектор}

matr: array of array of integer; { матрица}

cube: array of array of array of char; {трехмерный массив}

Длину массива следует задать при помощи процедуры SetLength. Например:SetLength(vect,6); SetLength(matr,4,5);

Выделяет для массива vect в оперативной памяти 6 элементов и присваивает этим элементам нулевые значения. Индекс первого элемента массива равен 0, поэтому массив vect содержит элементы vect[0], vect[l],..., vect[5]. Начальное значение многомерных массивов, как и для одномерных равно 0.

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

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

 

1. Присвоить переменной значение nil, например: vect:= nil;

2.Использовать процедуру finalize, например: finalize(vect);

3. Установить нулевую длину, например: Setlength(vect,0);

Файлы

Различия: TextFile(f) вместо Text(f), CloseFile(f) вместо Close(f), AssignFile(f,imf) вместо Assign.

При открытии файла полезно использовать логическую функцию FileExists(< имя файла>);

Здесь имя файла - символьная строка, содержащая имя файла на ВЗУ. Если файл существует, то функция возвращает true (1).


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



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