Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab 12.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
26.77 Кб
Скачать

1. Мета роботи

Мета роботи – ознайомитись із особливостями застосування динамічних

об’єктів, методів формування і обробки динамічних рядків. Набути практичних

навичок програмування з використанням динамічних об’єктів.

2. Теоретичні відомості

2.1. Динамічні об’єкти

До цього часу ми вивчали лише статичні програмні об’єкти, тобто

об’єкти, які породжуються безпосередньо перед виконанням програми та

існують у пам’яті машини протягом усього часу виконання програми. Розмір

таких об’єктів протягом виконання програми не змінюється.

Прикладом статичної змінної може бути масив. Цей статичний об’єкт

породжується за допомогою відповідного опису змінної:

VAR

A : ARRAY [1..20] OF INTEGER;

Місце для зберігання 20-ти значень цілого типу у пам’яті машини

виділяється на етапі трансляції програми.

У алгоритмічній мові Паскаль посилання на конкретний програмний об’єкт

здійснюється через його ім’я. Запис А [5] вказує на п’ятий елемент масиву А.

У машинній мові посилання на об’єкт здійснюється вказуванням місця у

пам’яті машини, яке займає об’єкт, тобто адреси комірки пам’яті, починаючи з

якої розміщено програмний об’єкт.

Алгоритмічні мови високого рівня дають змогу при написанні програми

не замислюватися, де і як розмістяться програмні об’єкти у пам’яті машини. За

програміста це робить транслятор.

Але використання лише статичних програмних об’єктів деколи викликає

труднощі під час розроблення ефективних програм. Деколи, на етапі написання

програми, ми не лише не знаємо розміру якогось програмного об’єкта, але й

того, чи буде він взагалі існувати.

Тому, крім статичних, існують ще й динамічні програмні об’єкти.

Динамічними називаються такі програмні об’єкти, які виникають

під час виконання програми, або розмір яких визначається чи змінюється

під час виконання програми.

Для роботи з динамічними об’єктами у мові Паскаль передбачено спе-

ціальний тип – тип вказівника.

Значення цього типу є вказівник на конкретний програмний об’єкт, за

яким здійснюється доступ до цього об’єкта. Іншими словами вказується адреса

комірки пам’яті, де зберігається відповідний об’єкт.

У мові Паскаль для опису дій над динамічними об’єктами кожному

такому об’єкту зіставляється статична змінна вказівникового типу.

Синтаксис задання вказівникового типу:

<заданий вказівниковий тип> = ↑<ім’я типу>

де ↑ – це ознака вказівникового типу,

<ім’я типу> – ім’я або стандартного, або раніше описаного, створеного

Вами типу.

Значенням змінних типу вказівника є вказівники на динамічні об’єкти

того типу, ім’я якого вказано після стрілки.

Змінні вказівникового типу описуються у розділі опису змінних та їхній

тип визначається або у розділі опису типів, або безпосередньо заданням типу

при описі змінної, але лише іменем.

Наприклад, фрагмент програми:

PROGRAM DINOB (INPUT, OUTPUT);

TYPE

MAS = ARRAY [1..50] OF INTEGER;

DINMAS = ↑MAS;

VAR

P : ↑INTEGER;

Q : ↑CHAR;

AM, BM : DINMAS;

. . .

Значення змінної Р – вказівник на динамічний об’єкт цілого типу; Q –

вказівник на динамічний об’єкт символьного типу; АМ, ВМ – вказівники на

динамічні об’єкти, значення яких є масив цілих чисел.

Якщо вказівник не зв’язаний з жодним об’єктом, таке значення задається

службовим словом NIL

Схематично оператор присвоєння P := NIL; відображається:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]