Змінна, що містить значення Квартира Петроване є звичайною статичною змінною – вона динамічна.
- так будемо позначати змінну-вказівник.
| |
Зауваження!!!
Запам’ятайте!!!
- Статична змінна має назву.
- Динамічна змінна назви не має.
- До статичної змінної можна звернутися по її назві.
- До динамічної змінної – по її адресі (тобто по вказівнику, де ця адреса знаходиться)
- Змінна-вказівник може вказувати лише на динамічну змінну. І не може вказувати на статичну.
У «формі можна розмістити в довільному порядку ряд елемен-тів. Елементи форми можуть бути зв'язаними й незв'язаними. Зв'язані -прив'язані до вихідної таблиці поля чи запиту. Незв'язані (вільні) - як правило, відображають результат обчислень або є даними (текстами, малюнками й ін.) які залишається незмінними незалежно від того, який запис у цей момент переглядають у формі.
- Динамічні структури даних. Зв’язані динамічні дані. Списки, стеки, черги, дерева.
Динамічні дані, в яких елементи зв’язані друг з другом за допомогою покажчиків називають зв’язаними динамічними даними.
Лінійний список – це сукупність однотипних компонентів які послідовно
зв'язані між собою за допомогою покажчиків.
Кожен компонент списку, крім останнього, містить покажчик на наступний (або на наступний і попередній) компонент. Доступ до першого компонента здійснюється за допомогою покажчика на нього, а доступ до кожного наступного компонента – з використанням покажчика, який зберігається у попередньому компоненті. Перший компонент списку називається його вершиною, або головою.
Над зв'язними лінійними списками виконуються такі дії:
· додавання нового компонента на початок списку;
· додавання нового компонента в кінець списку;
· вставка нового компонента між двома будь-якими компонентами списку;
· видалення будь-якого компонента зі списку.
Зв'язні лінійні списки поділяють на такі різновиди:
· однозв'язний лінійний список;
· двозв'язний лінійний список;
· однозв'язний циклічний список;
· двозв'язний циклічний список;
· стек;
· черга.
Однозв'язний лінійний список – це список, в якому попередній компонент посилається на наступний.
Двозв'язний лінійний список – це список, в якому попередній компонент посилається на наступний, а наступний – на попередній.
Однозв'язний циклічний список – це однозв'язний лінійний список, в якому останній компонент посилається на перший.
Двозв'язний циклічний список – це двозв'язний лінійний список, в якому останній компонент посилається на перший, а перший компонент – на останній.
Стек – це однозв'язний лінійний список, в якому компоненти додаються та видаляються лише з його вершини, тобто з початку списку.
Черга – це однозв'язний лінійний список, в якому компоненти додаються в кінець списку, а видаляються з вершини, тобто з початку списку.
Опишемо тип компонентів однозв'язного лінійного списку. Кожний його компонент складається з кількох інформаційних полів та покажчика на наступний компонент. Отже, компонент зв'язного лінійного списку є записом. Інформаційні поля компонента списку можуть бути змінними будь-яких типів, а покажчик повинен бути покажчиком на запис того типу, якому належать компоненти списку. Покажчик в останньому компоненті лінійного списку має значення nil – так позначається кінець списку.
Наведемо прикладоголошення типу компонента однозв'язного лінійного списку. У найпростішому випадку компонент містить одне інформаційне поле.
Type
TPtr=^TElem; // тип покажчика на компонент списку
TElem=record //тип компонента
Inf:Byte; //інформаційне поле
Link:TPtr; //покажчик на наступний компонент
end;
Правило послідовності оголошень в ОР вимагає, щоб кожен ідентифікатор був описаний, раніш ніж він буде використовуватися для інших оголошень. Однак в наведеному прикладі як би не розташовувались оголошення типів покажчика TPtr та елемента TElem, це правило виконано не буде. Тому для оголошення типів компонентів динамічних структур зроблено виключення з правил: