Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Указатели    >>    d_array
   
 
 Dynamic Array - Динамические Массивы   Constantin Pivovarov 03.11.1997

Модуль, pеализующий динамический массив.
- "постепенное" фоpмиpование массива (добавлением в конец, если не известно количество элементов).
- оpганизация всего массива "сpазу", если количество элементов заpанее известно.
- удаление элемента (с освобождением памяти, остальные элементы "сдвигаются" назад).
- два метода соpтиpовки.
- поиск.
- огpаничение по памяти - conventional.



7k 
 

Hi! По просьбам трудящихся :) кидаю версию организации динамических массивов. --- Terminate 5.00/Pro * Origin: Все течет, все из меня... (2:467/84.1) Вкратце, как этим пользоваться. Например, самый тривиальный случай - нужно организовать массив из Word. Что делаем: 1. Описываем переменную типа MemoryType (Var MyArray: MemoryType) 2. _Обязательно_ инициализиpуем ее. (MyArray.Init(SizeOf(Word)). Word - это, в данном случае, наш тип. 3. Если известно число элементов заранее - делаем MyArray.InitArray(Count), где Count - число элементов. 4. Для того, чтобы добавить элемент в конец - MyArray.AddElement(@MyVar), где MyVar - переменная типа Word (в нашем примере). 5. Количество элементов в массиве - MyArray.RecCount. 6. Самое мерзкое - как получить элемент массива: Word(MyArray.TopPtr(I)^), где Word - наш тип, I - порядковый номер. 7. Записать элемент на конкретное место можно двумя способами: а) Рекомендуемый - MyArray.UpDateElement(@MyVar,I) б) Не рекомендуемый (может не поддерживаться в следующих версиях при использовании XMS/EMS/Disk) - Word(MyArray.TopPtr(I)^):=MyVar 8. После использования желательно выполнить MyArray.Done