
- •Методичний посібник для самостійної роботи
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •Затверджено методичною радою коледжу
- •Мета та задачі предмету. Історія створення та розвитку мови Pascal. Етапи розробки програми. Інтегроване середовище Turbo Pascal 7.0. Основні розділи теми.
- •Помилки. Компілятор. Синтаксис і семантика
- •Типи помилок
- •Інтегроване середовище Turbo Pascal 7.0.
- •Рядок меню.
- •Меню Compile
- •Питання для самоконтролю.
- •Алфавіт мови. Структура програми. Типи даних. Основні розділи теми.
- •Алфавіт мови
- •Типи даних
- •Стандартні типи даних.
- •Цілі типи
- •Дійсні типи
- •Нестандартні прості типи.
- •Наприклад
- •Завдання 1:
- •Типізовані константи.
- •Структура програми.
- •Перша програма.
- •Питання для самоконтролю.
- •Лінійні програми. Команди присвоювання. Команди введення та виведення даних. Форматоване виведення даних. Основні розділи теми.
- •Лінійні програми.
- •Команда присвоювання.
- •Основні операції, стандартні функції і процедури. Основні операції
- •Основні стандартні функції і процедури
- •Правила запису арифметичних виразів.
- •Правила запису стандартних функцій.
- •Команди введення даних (read, readln).
- •Команди виведення даних (write, writeln).
- •Форматоване виведення даних.
- •Х.ХхххххххххЕзнакхх
- •Питання для самоконтролю.
- •Завдання 2:
- •Розгалуження: складена команда, логічний вираз, команда розгалуження if. Команда case. Основні розділи теми.
- •Розгалуження
- •Складений оператор.
- •Логічний вираз
- •Умовний оператор if.
- •Задача2:
- •Задача 3.
- •Оператор goto.
- •Вкладений if
- •Слід знати:
- •Задача 4.
- •Задача 5.
- •Оператор вибору case.
- •Задача 6.
- •Питання для самоконтролю.
- •Завдання 3. Написати і відладити наступні програми.
- •Цикли. Команда циклу з параметром (for), команда циклу з передумовою (while), команда циклу з після умовою (repeat). Основні розділи теми.
- •Оператор циклу з параметром (for).
- •Ця команда діє, як і попередня, але крок зміни лічильника рівний -1.
- •Задача 7.
- •Задача 8.
- •Задача 9.
- •Команда циклу з передумовою (while).
- •Задача 10.
- •Команда циклу з післяумовою (repeat).
- •Задача 11.
- •Задача 12.
- •Задача 13.
- •Завдання 4:
- •Завдання 5:
- •Завдання 6:
- •Завдання 7.
- •Дайте відповідь на питання, скільки разів ця цифра зустрічається в числі Задача 17:
- •Завдання 8
- •Вкадені цикли.
- •Задача 18
- •Завдання 9
- •Питання для самоконтролю.
- •Масиви. Опис масивів. Дії над масивами. Масиви. Основні розділи теми.
- •Опис масивів.
- •Опис меж
- •Дії над масивами.
- •Заповнення масиву даними
- •Виведення масиву.
- •Обробка масиву
- •Дії з одновимірними масивами
- •Завдання 10:
- •Питання для самоконтролю.
- •Завдання для самоконтролю.
- •Сортування масивів. Двовимірні масиви. Сортування масиву Основні розділи теми.
- •Лінійне сортування (сортування відбором)
- •Програма лінійного сортування по не зростанню
- •Бульбашковий метод.
- •Підсумовування елементів кожного рядка.
- •Програма транспонування матриці.
- •Завдання 12:
- •Питання для самоконтролю.
- •Підпрограми. Процедури, функції. Рекурсивні функції. Основні розділи теми.
- •Процедури (procedure) і функції (function).
- •Виклик процедур і функцій.
- •Оператор виклику працює так:
- •Область дії параметрів:
- •Завдання 13:
- •Рекурсивні функції.
- •Завдання 14:
- •Задачі, з постановки якиїх можна витягнути рекурсію.
- •Задачі, які можна розв’язати як окремий випадок узагальненої.
- •Задачі, в яких можна використати характеристику або властивість функції.
- •Відкриті масиви.
- •Завдання 15:
- •Питання для самоконтролю.
- •Дані рядкового типу string. Основні розділи теми.
- •Тип даних char.
- •Рядковий тип
- •Задача 28.
- •Операції над рядками
- •Задача 29.
- •Операції відношення
- •Рядкові процедури і функції
- •Задача 30.
- •Задача 31.
- •Питання для самоконтролю.
- •Завдання 16:
- •Модулі. Модулі користувача. Стандартні модулі. Основні розділи теми.
- •Поняття модуля
- •Структура модуля
- •Компіляція модулів
- •Стандартні модулі Короткий опис модулів.
- •Графіка
- •Запитання
- •Оператор with
- •Питання для самоконтролю.
- •Завдання 18:
- •Файли і робота з ними. Основні розділи теми.
- •Текстові файли
- •Типізовані файли.
- •Процедури і функції для типізованих файлів:
- •Питання для самоконтролю.
- •Завдання 19:
- •Інтегроване середовище розробки Delphi 7. Мова програмування Delphi. Структура програми Delphi: структура проекту, структура модуля, елементи програми. Основні розділи теми.
- •Інтегроване середовище розробки.
- •Головне вікно
- •Інструментальні кнопки
- •Палітра компонентів
- •Вікно форми
- •Вікно дерева об'єктів
- •Вікно інспектора об'єктів
- •Вікно коду програми
- •Зміна властивостей форми
- •Оброблювач події OnClick
- •Структура програм Delphi
- •Структура проекту
- •Структура модуля
- •Питання для самоконтролю.
- •Класи. Складові класу. Методи та властивості. Питання для самоконтролю.
- •Методи.
- •Властивості.
- •Оголошення класу.
- •Питання для самоконтролю.
- •Форми. Різновид форм. Створення і використання форм. Основні розділи теми.
- •Різновиди форм.
- •Методи форми
- •Події форми.
- •Робота з формою.
- •Питання для самоконтролю.
- •Компоненти. Властивості компонентів. Основні розділи теми.
- •Знайомство з компонентами.
- •Вкладка Standard
- •Вкладка Additional
- •Вкладка Win32
- •Вкладка System
- •Вкладка Dialogs
- •Вкладка Win31
- •Вкладка Samples
- •Вкладка ActiveX
- •Робота з об’єктами.
- •Питання для самоконтролю.
- •Delphi 7. Файли. Доступ до файлу. Текстові файли. Основні розділи теми.
- •Теоретичні відомості.
- •Хід роботи
- •Практична робота № 2.
- •Тема: Створення гри «Спіймай кнопку».
- •Мета: Вивчення особливостей компонента Timer.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 3
- •Тема: Створення логічної гри.
- •Мета: Вивчення можливостей використання властивості Tag і об'єкта Sender.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 4.
- •Тема: Генератор функцій.
- •Мета: Вивчення компонента PaintBox і методів малювання на канві. Компонент TrackBar.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 5
- •Тема: Створення елементів інтерфейсу найпростішого графічного редактора.
- •Мета: Вивчення компонентів ColorGrid, SpinEdit, RadioGroup, ListBox, ColorDialog.
- •Короткі теоретичні відомості.
- •Хід роботи. Частина 1
- •Частина 2.
- •Література
Методи.
Інкапсульовані в класі процедури і функції називаються методами. Вони оголошуються так само як і звичайні підпрограми:
type
TMyClass = class
Function MyFunc(aPar: Integer): Integer;
Procedure MyProc;
end;
Доступ до методів класу, як і до його полів, можливий за допомогою складених імен:
var
aObject: TMyClass;
begin
aObject.MyProc;
end;
Методи класу можуть перекриватися в нащадках.
Наприклад:
type
TParentClass = class
Procedure DoWork;
end;
TChildClass = class (TParentClass)
Procedure DoWork;
end;
До складу будь-якого класу входять два спеціальні методи - конструктор і деструктор. У класі TObject ці методи називаються Create і Destroy, також вони називаються в переважній більшості його нащадків. Конструктор розподіляє об'єкт в динамічній пам'яті(розміщуються лише поля об'єкту, його методи є загальними для усіх об'єктів цього класу і в купу не переносяться) і поміщає адресу цієї пам'яті в змінну Self, яка автоматично оголошується в класі. Деструктор видаляє об'єкт з купи. Звернення до конструктора повинне упереджати будь-яке звернення до полів і деяких методів об'єкту. По своїй формі конструктори і деструктори є процедурами, але оголошуються за допомогою зарезервованих слів Constructor і Destructor :
type
TMyClass = class
IntField: Integer;
Constructor Create(Value: Integer);
Destructor Destroy;
end;
Властивості.
Властивості - це спеціальний механізм класів, регулюючий доступ до полів. Властивості оголошуються за допомогою зарезервованих слів property, read і write(слова read і write вважаються зарезервованими тільки в контексті оголошення властивості). Зазвичай властивість пов'язана з деяким полем і вказує ті методи класу, які повинні використовуватися при записі в це поле або при читанні з нього.
Наприклад:
type
TaClass = class
IntField: Integer;
Function GetField: Integer;
Procedure SetField(Value: Integer);
Property IntegerValue: Integer-read GetField
write SetField;
end;
У контексті програми властивість поводиться як звичайне поле.
Оголошення класу.
Будь-який новостворюваний клас може містити секції(розділи), визначувані зарезервованими словами published(опублікований), private(закритий), protected(захищений), public(відкритий) і automated(автоматизований). Усередині кожної секції спочатку визначаються поля, а потім методи і властивості. Секції визначають зони видимості елементів опису класу.
Секція public не накладає обмежень на зону видимості перераховуваних в ній полів, методів і властивостей - їх можна викликати у будь-якому іншому модулі програми.
Секція published також не обмежує зону видимості, проте в ній перераховуються властивості, які мають бути доступні не лише на етапі виконання, але і на етапі конструювання програми(тобто у вікні інспектора об'єктів). Секція published використовується тільки при розробці нестандартних компонентів. Середовище Delphi поміщає описи компонентів, вставлених у форму, в спеціальну секцію без назви, яка розташовується відразу за заголовком класу і триває до першої оголошеної секції. Ця секція – published. Програмістові не слід поміщати в неї власні елементи опису класу або видаляти з неї елементи, вставлені середовищем.
Секція private звужує зону видимості до мінімуму: закриті елементи опису доступні тільки усередині методів цього класу і підпрограмах, що знаходяться в тому ж модулі, де описаний клас. Елемент, оголошений в секції private, стає недоступним навіть найближчим нащадкам класу, якщо вони розміщуються в інших модулях.
Секція protected доступна тільки методам самого класу, а також будь-яким його нащадкам, незалежно від того, чи знаходяться вони в тому ж модулі або ні.
Секція automated використовується тільки для оголошення властивостей і методів, які будуть додані до так званого інтерфейсу OLE- об'єктів автоматизації; зона видимості членів цієї секції не обмежена.
У Delphi дозволяється скільки завгодно раз оголошувати будь-яку секцію, причому порядок дотримання секцій не має значення. Будь-яка секція може бути порожньою.
Наступний фрагмент коду пояснює різні зони видимості :
Unit Unitl;
Interface
Uses Controls, Forms;
type
TForml = class(TForm)
Buttonl: TButton; // Ця секція обслуговується Delphi Її елементи доступні усім
private // Ця секція доступна в модуле Unitl
FIntField: Integer;
Procedure SetValue(Value: Integer);
Function GetValue: Integer;
published // Ця секція доступна у будь-якому модулі
Property IntField: read GetValue write SetValue; protected //Ця секція доступна класам-нащадкам
Procedure Procl; public // Ця секція доступна у будь-якомумодулі
Procedure Ргос2;
end;
var
Forml: TForml;
Implementation
Procedure TForml.Procl;
Buttonl.Color := clBtnFace; // Так можна FIntField := 0; // Гак можна
IntField := 0; // Так можна
Procl; // Так можна
Ргос2; // Так можна
end;
begin
Forml.Buttonl.Color := clBtnFace; // Гак можна Forml.FIntField := 0; // Так можна
Forml.IntField := 0; // Гак можна
Forml.Procl; // Гак неможна!
Forml.Proc2; // Так можна
end.
Unit Unit2;
Interface
Uses Controls, Unitl;
type
TForm2 = class(TForml) Button2: TButton;
Procedure Button2Click(Sender: TObject); end;
var
Form2: TForm2;
Implementation
Procedure TForm2.Button2Click(Sender: TObject);
begin
Buttonl.Color := clBtnFace; // Так можна FIntField := 0; // Так неможна!
IntField := 0; // Так можна
Procl; , // Так можна
Ргос2; // Так можна
end;
begin
Forml.Buttonl.Color := clBtnFace; // Так можна Forml.FIntField := 0; // Так неможна!
Forml.IntField := 0; // Гак можна
Forml.Procl; // Так неможна!
Forml.Proc2; // Так можна
end.