- •Розділ 1. Об’єктно-орієнтоване програмування
- •Тема 1.1. Візуальне програмування.
- •Тема 1.2. Приклади та застосування інкапсуляції, успадкування, поліморфізму.
- •Тема 1.3. Бібліотека візуальних компонентів vcl та її базові класи.
- •1. Клас tWinControl.
- •2. Клас tСustomControl.
- •3. Клас tGraphicControl.
- •Тема 1.4. Обробка виняткових ситуацій.
- •1. Використовування виняткових ситуацій.
- •2. Протоколювання виняткових ситуацій.
- •3. Коди помилок у виняткових ситуаціях.
- •4. Виняткова ситуація eAbort. Функція Assert.
- •Розділ 2. Мова програмування Object Pascal.
- •Тема 2.1. Середовище Delphi.
- •Тема 2.2. Елементи мови Object Pascal.
- •1. Коментарі.
- •2. Логічні вирази.
- •Тема 2.3. Типи даних, процедури та функції.
- •1. Вказівники та динамічна пам'ять. Динамічна пам'ять
- •Вказівники
- •Виділення і звільнення динамічної пам'яті
- •Процедури і функції для роботи з динамічною пам'яттю
- •Тема 2.4. Управляючі структури Object Pascal.
- •Розділ 3. Програмування в середовищі Delphi.
- •Тема 3.1. Застосування списків. Способи запису/читання зі списків.
- •Є списком CheckBox елементів.
- •Тема 3.2. Масиви.
- •1. Пошук мінімального (максимального) елементу масиву.
- •2. Пошук в масиві заданого елементу.
- •Тема 3.3. Робота з файлами.
- •Тема 3.4. Типи даних визначені програмістом.
- •1. Показники.
- •2. Динамічні змінні.
- •Тема 3.5. Графічні програми.
- •1. Бітові образи.
- •2. Мультиплікація.
- •Властивості компоненту Timer
- •Тема 3.6. Приклади застосування анімацій у Delphi.
- •Тема 3.7. Рекурсія.
- •1. Крива Гільберта.
- •2. Пошук шляху.|колії|
- •Значення властивостей компоненту stringGrid1
- •3. Пошук найкоротшого шляху.|колії|
- •Тема 3.8. Компоненти для інтернету. Компонента tSocketConnection
- •Розділ 4. Бази даних.
- •Тема 4.1. Види баз даних. Структура та зв’язки між таблицями. Бази даних
- •Класифікація баз даних
- •Структура бази даних
- •Модель бази даних в Delphi
- •Тема 4.2. Модифікація структури таблиці в bde.
- •1. Зміна структури таблиці.
- •2. Встановлення перевірок правильності даних.
- •3. Завдання вторинних індексів.
- •Тема 4.3. Об’єкти відображення даних бази даних Delphi.
- •1. Класифікація компонентів відображення даних.
- •2. Елемент керування тdbGrid.
- •3. Компонент tdbEdit.
- •4. Компонент tdNavigator.
- •Тема 4.4. Обчислювальні поля і поля підстановки в Delphi.
- •1. Створення поля підстановки (поля синхронного перегляду).
- •2. Обчислювальні поля.
- •Тема 4.5. Компонента tdbEdit.
- •Тема 4.6. Переміщення по записам таблиці. Набір методів і властивостей tDataSet. Огляд
- •Клас tDataSet
- •Відкриття і закриття DataSet
- •Тема 4.7. Налаштування фільтрів.|
- •Тема 4.8. Приклади застосування пошуку.
- •Тема 4.9. Поєднання різних видів пошуку.
- •Тема 4.10. Типи даних та пошук в діапазоні.
- •Список літератури
Тема 3.4. Типи даних визначені програмістом.
1. Показники.
2. Динамічні змінні.
1. Показники.
До цього моменту ми працювали тільки|лише| з|із| даними, що мають статичну, незмінну під час виконання програми, структуру. Під час роботи програми могли змінюватися тільки|лише| значення змінних, тоді як кількість змінних завжди залишалася постійною (звідси і назва – статичні структури). Це не завжди зручно.
Наприклад, в програмі, призначеній для введення і обробки даних про учнів класу, для зберігання даних використовуються масиви. При визначенні розміру масиву програмістові доводиться орієнтуватися на деяку середню або граничну кількість учнів в класі. При цьому, якщо реально учнів в класі менше передбачуваної кількості, то неефективно використовується пам'ять комп'ютера, а якщо це число більше, то програму використовувати вже не можна (треба внести зміни до початкового|вихідного| тексту і виконати компіляцію).
Завдання|задачі|, оброблювальні дані, які за своєю природою є|з'являються| динамічними, зручно вирішувати|рішати| за допомогою динамічних структур.
Зазвичай|звично| змінна зберігає деякі дані. Проте|однак| окрім звичайних|звичних|, існують змінні, які посилаються на інші змінні. Такі змінні називаються покажчиками. Показник – це змінна, значенням якої є|з'являється| адреса іншої змінної або структури даних.
Показник, як і будь-яка інша змінна програми, має бути оголошений в розділі оголошення змінних. У загальному|спільному| вигляді|виді| оголошення покажчика виглядає таким чином:
Ім'я: ^ Тип;
де:
ім'я – ім'я змінної-покажчика;
Тип – тип змінної, на яку указує|вказує| змінна-покажчик;
значок ^ показує, що оголошувана змінна є|з'являється| показником.
Приведемо приклади|зразки| оголошення покажчиків:
p1|: ^integer; р2|: ^real;
У приведеному прикладі|зразку| змінна p1| – це показник на змінну типу|типа| integer|, а p2| – показник на змінну типу|типа| real|.
Тип змінної, на яку посилається показник, називають типом показника. Наприклад, якщо в програмі оголошений показник р: ^integer, то говорять: ^р – показник цілого типу|типа|" або "р – це показник на ціле".
На початку роботи програми змінна-показник "ні на що не указує|вказує|". В цьому випадку говорять, що значення показника рівне NIL|. Зарезервоване слово NIL| відповідає значенню показника, який ні на що не указує|вказує|.
Ідентифікатор NIL| можна використовувати в інструкціях привласнення і в умовах. Наприклад, якщо змінні pi| і р2| оголошені як показники, то інструкція
p1| := NIL|;
встановлює значення змінної, а інструкція
if| р2| = NIL| then| ShowMessage|('Показник р2| не ініціалізував!');
перевіряє, чи ініціалізував покажчик р2|.
Показнику можна привласнити значення – адресу змінної відповідного типу|типа| (у тексті програми адреса змінної – це ім'я змінної, перед яким коштує оператор @). Нижче приведена інструкція, після|потім| виконання якої змінна р міститиме|утримуватиме| адресу змінної n.
р := @n;
Окрім адреси змінної, покажчику можна привласнити значення іншого покажчика за умови, що|при умові , що| вони є|з'являються| покажчиками на змінну одного типу|типа|. Наприклад, якщо змінні pi| і р2| є|з'являються| показниками типу|типа| integer|, то в результаті|унаслідок| виконання інструкції
p2| := p1|;
змінні pi| і р2| указують|вказують| на одну і ту ж змінну.
Показник можна використовувати для доступу до змінної, адресу якої містить|утримує| показник. Наприклад, якщо р указує|вказує| на змінну 1, то в результаті|унаслідок| виконання інструкції
р^| : = 5;
значення змінної i буде рівне п'яти. У приведеному прикладі|зразку| значок ^ показує, що значення п'ять привласнюється змінною, на яку указує|вказує| змінна-покажчик.
