КАТЕГОРИИ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) П Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военно дело (14632) Висока технологиите (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къщи- (47672) журналистика и SMI- (912) Izobretatelstvo- (14524) на външните >(4268) Informatika- (17799) Iskusstvo- (1338) История- (13644) Компютри- (11121) Kosmetika- (55) Kulinariya- (373) култура (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23,702) Matematika- (16,968) инженерно (1700) медицина-(12,668) Management- (24,684) Mehanika- (15423) Naukovedenie- (506) образование-(11,852) защита truda- (3308) Pedagogika- (5571) п Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) oligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97182) от промишлеността (8706) Psihologiya- (18,388) Religiya- (3217) с комуникацията (10668) Agriculture- (299) Sotsiologiya- (6455) спортно-(42,831) Изграждане, (4793) Torgovlya- (5050) превозът (2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596 ) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Telephones- (8441) Elektrotehnika- (4623) Мощност инженерно (12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Динамичните масиви в Паскал




ЗАПОЧНЕТЕ

Динамични структури от данни. Динамичните масиви (едномерни и двумерни), които работят с тях

Основната разлика от статичните динамични масиви е способността да променят своите размери в програмата.

Може да се отбележи следните предимства динамична памет:

1) ефикасността и ефективността на неговото използване;

2) способността да се променя динамично броят на елементите в съответните структури, като например списъци;

3) статични променливи съществуват само за живота на блока, в който са декларирани, а динамиката - и след затваряне на блока за програмиране.

4) Clear, динамично разпределение, не е обявен в секцията VAR и няма име в програмата. компилаторът не планира разпределението на място в паметта за тези променливи.

В Делфи:

Един динамичен масив - масив от паметта, за която се разпределя динамично. Размерът на динамичния масив по време на компилация не е известна. За да се декларира като масив обикновено се използва описание, но без измерение. Основната разлика от статичните динамични масиви е способността да променят своите размери в програмата.

Dynamic massivy- е тип данни с контролиран живот, така че не може да се мисли за своевременното освобождаване на паметта, определена за тях - това ще бъде освободено автоматично, когато променливата напуска обхвата.

Описание Dynamic Array:

Вид <име тип масив> = Array от <тип елемент>

Памет за динамични елементи масив разпределени чрез обаждане SetLength стандартни процедури. Първият параметър е името на масива и втори предварително определен брой елементи, необходими. Използването на такива масиви е удобно, когато първоначално не може да се определи точно размера му.

Пример динамичния спектър:

ТИП КОДОВЕ = масив от цяло число;

VAR A: КОДОВЕ;

SetLength (А, 30);

А [0]: = "POOH ХАРЕСВА Hunny"

END;

Моля, имайте предвид, че динамичен масив индексирани ценности, която започва от 0. За да се отнасят до първия елемент на масива, трябва да използвате индекс 0, а последният - на 29.

Ако е необходимо, заделена памет за масив, можете да се освободите (например, ако масива се използва прекалено много от неговото количество). За да направите това, трябва само да зададете на масива до нула. Например: А: = нула;

Пример многомерен динамичния спектър:

Тип код = масив от масив от масив от цяло число;

Var A: код;

започвам

SetLength (А, 10,20,30);

приключи;

Масивът А има 10 елемента, всеки масив А [Ь] има 20 елемента, и масиви А [Ь] [й] - 30 елементи



Достъп до програма част на динамична памет е снабдена със специално позоваване променлива, която се нарича указател (за справка). Променливата от тип "указател" включва поставяне на адреса на динамична памет част, която е свързана с този указател. Компилаторът присвоява на променлива от тип "показалка" 4 байта на SRAM.

Стил Описание Индекс:

В Тип <индекс идентификатор> = <тип>;

P = ^ Word; P - тип идентификатор "показалка", за да напишете думата данни.

Динамична памет могат да бъдат разпределени по два начина:

New (р), където Р - променлива от тип "указател от тип"

Getmem (Р, размер), където Р - променлива от тип "указател" на желания тип и размер - цяло число експресия на искания размер памет в байтове. Тази процедура създава нова динамична променлива до желания размер и свойства, както и въведете адреса на тази променлива се създава в "показалка" тип променлива П. Достъп до променлива стойност, създадена могат да бъдат достъпни с помощта на Р ^.

При работа с масиви, почти винаги има за задача настройките на програмата за действителния брой на елементите в масива. В зависимост от използваните средства решение на този проблем е по-различно.

Първият вариант - използването на константи за определяне размерите масив. Такъв метод изисква прекомпилиране на програма при всяка промяна на броя на обработените елементи.

ПРОГРАМА ПЪРВИ;