
- •Розділ 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. Типи даних та пошук в діапазоні.
- •Список літератури
2. Пошук в масиві заданого елементу.
При вирішенні багатьох завдань|задач| виникає необхідність визначити, чи містить|утримує| масив певну інформацію чи ні|або ні|. Наприклад, перевірити, чи є в списку студентів прізвище Петров. Завдання|задачі| такого типу|типа| називаються пошуком в масиві.
Для організації пошуку в масиві можуть бути використані різні алгоритми. Найбільш простій – це алгоритм простого перебору. Пошук здійснюється послідовним порівнянням елементів масиву із|із| зразком|взірцем| до тих пір, поки не буде знайдений елемент, рівний зразку|взірцю|, або не будуть перевірені всі елементи. Алгоритм простого перебору застосовується, якщо елементи масиву не впорядковані.
Питання для самоконтролю:
Яка суть методу пошуку мінімального (максимального) елемента масиву?
Як здійснити пошук в масиві заданого елемента?
Тема 3.3. Робота з файлами.
Помилки відкриття файла. Приклади застосування.
Спроба відкрити файл може завершитися невдачею і викликати помилку часу виконання програми. Причин невдачі при відкритті файлів може бути дещо. Наприклад, програма спробує відкрити файл на гнучкому диску, який не готовий до роботи (не закрита шторка накопичувача, або диск не вставлений в накопичувач). Інша причина – відсутність файла, що відкривається в режимі додавання (файла немає – додавати нікуди).
При запуску програми з Delphi у разі помилки під час відкриття файла виникає виключення, і на екрані з'являється діалогове вікно з повідомленням.
Приклад повідомлення про помилку відкриття файла (програма Delphi)
Якщо програма запускається з Windows, то вікно з повідомленням про помилку виглядає інакше.
Приклад повідомлення про помилку відкриття файла (програма Windows)
Програма може узяти на себе задачу контролю за результатом виконання інструкції відкриття файла. Зробити це можна, перевіривши значення функції IOResult (input-Output Result – результат введення/виведення). Функція IOResult повертає 0, якщо операція введення/виведення завершилася успішно; інакше – код помилки (не нуль).
Для того, щоб програма змогла перевірити результат виконання операції введення/виведення, потрібно дозволити їй це робити. Для цього треба перед інструкцією виклику процедури відкриття файла помістити директиву компілятору – рядок {$І-}, який забороняє автоматичну обробку помилок введення/виведення. Ця директива повідомляє компілятор, що програма бере на себе контроль помилок. Після інструкції відкриття файла слід помістити директиву {$І+}, поновлюючу режим автоматичної обробки помилок введення/виведення.
Нижче приведена блок-схема алгоритму відкриття файла для додавання, що забезпечує створення файла (і тим самим знімаючого помилку, що виникає при спробі відкрити неіснуючий файл) у випадку, якщо що відкривається для додавання файла на диску ще немає.
Алгоритм відкриття файла з обробкою можливої помилки
Нижче приведений фрагмент програми, що реалізував приведений вище алгоритм відкриття файла.
AssignFile(f,filename);
{$І-}
Append(f) // відкрити для додавання
{$І+}
if IOResult<> 0 // помилка відкриття
then Rewrite(f); // відкрити для запису
// тут відкритий існуючий або новий файл
Питання для самоконтролю:
Чи може завершитися спроба відкриття афйла невдачею?
Які помилки при цьому виникають?
Назвіть їх причини.
Для чого призначена функція IOResult?