
- •Методичний посібник для самостійної роботи
- •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.
- •Література
Зміна властивостей форми
Що таке модуль?. У першому наближенні ми можемо вважати модулем самостійний розділ програми, у чомусь подібний розділу в книзі. Модуль створюється кожного разу, коли ви створюєте нову форму (в програмі може бути і часто буває не одна, а декілька - іноді кілька десятків - форм і пов'язаних з ними модулів). При компіляції програми Delphi створює файли з розширеннями PAS, DFM і DCU для кожного модуля: PAS-файл містить копію тексту з вікна коду програми, у файлі з розширенням DFM зберігається опис вмісту вікна форми, а в DCU-файлі - результат перетворення в машинні інструкції тексту з обох файлів. DCU-файли створюються компілятором і дають необхідну базу для роботи компонувальника, який перетворює їх в єдиний файл завантаження з розширенням ЕХЕ.
Спробуємо модифіковані програму, наприклад, змінимо заголовок її вікна. Отже, простою зміною вмісту рядка у вікні інспектора об'єктів ми домоглися важливої зміни: змінили одну з властивостей вікна програми - Caption - його заголовок. Таким же чином можна змінювати будь-яке інше властивість форми.
Можна буксирувати компонент за формою, домагаючись потрібного його положення.
За допомогою обрамляючих чорних квадратиків можна змінювати розміри компонента. Для цього слід помістити покажчик миші на один з них (в цей момент покажчик змінює свою форму на двонаправлену стрілку), потім натиснути ліву кнопку миші і, не відпускаючи її, буксирувати сторону або кут компонента в потрібному напрямі, після чого відпустити кнопку.
Всі видимі компоненти мають властивості Left (Зліва), Тор (Зверху), Width (Ширина) і Height (Висота), числові значення яких визначають положення лівого верхнього кута компонента і його розміри в так званих пікселах, тобто в мінімальних за розміром точках екрану , світність яких може керувати програма. При буксируванні компонента або зміні його розмірів мишею ці значення автоматично змінюються і навпаки - зміна цих властивостей у вікні інспектора об'єктів призводить до відповідної зміни положення і розмірів компонента. В Delphi 7 значення Left і Тор автоматично з'являються в підказці (невеликому вікні поруч з покажчиком миші) при буксируванні компонента за формою.
Функціональність програми визначається сукупністю її реакцій на ті чи інші події. У зв'язку з цим кожен компонент крім властивостей характеризується також набором подій, на які він може реагувати.
Оброблювач події OnClick
При натисканні на кнопці мишею в працюючій програмі виникає подія OnClick (По клацанню). Поки ця подія ніяк не обробляється програмою і тому клацання на кнопці не призведе ні до яких наслідків. Щоб змусити програму реагувати на клацання, необхідно написати на мові Delphi фрагмент програми, який називається оброблювачем події. Цей фрагмент повинен являти собою послідовність текстових рядків, в яких програміст вказує, що саме має робити програма у відповідь на клацання на кнопці. Фрагмент оформляється у вигляді спеціальної підпрограми мови Delphi - процедури.
Щоб змусити Delphi самостійно зробити заготовку для процедури обробника події Onclick, двічі поспіль без помітної паузи клацніть на знову вставленому компоненті. У відповідь Delphi активізує вікно коду, і ви побачите в ньому такий текстовий фрагмент:
procedure TForml.ButtonlClick(Sender: TObject);
begin
end;
Слово procedure сповіщає компілятор про початок підпрограми-процедури - в Delphi можуть використовуватися також підпрограми-функції; в цьому випадку замість слова procedure (процедура) використовується слово function (функція); різницю між процедурами і функціями ви знаєте. За ним іде ім'я процедури TForml. ButtonlClick. Це ім'я - складене: воно складається з імені класу TForml і власне імені процедури ButtonlClick.
Класами в Delphi називаються функціонально закінчені фрагменти програм, що служать зразками для створення подібних собі примірників. Одного разу створивши клас, програміст може включати його примірники (копії) в різні програми або в різні місця однієї і тієї ж програми. Такий підхід сприяє максимально високої продуктивності програмування за рахунок використання раніше написаних фрагментів програм. До складу Delphi входить кілька сотень класів, створених програмістами корпорації Borland (так званих стандартних класів). Сукупність стандартних класів визначає потужні можливості цієї системи програмування.
Кожен компонент належить до чітко певного класу, а всі конкретні екземпляри компонентів, що вставляються у форму, отримують ім'я класу з доданим числовим індексом. По використовуваному в Delphi угодою всі імена класів починаються з літери Т. Таким чином, ім'я TForml означає ім'я класу, створеного за зразком стандартного класу TForm.
Якщо ви подивитеся початок тексту у вікні коду, то побачите наступні рядки:
type
TForml = class(TForm)
Buttonl: TButton; Labell: TLabel;
procedure ButtonlClick(Sender: TObject);
private
f Private declarations }
public
{ Public declarations }
end;
var
Forml: TForml;
Представлений нижче рядок визначає новий клас TForml: TForml = class (TForm)
Цей клас породжений від (створений за зразком) стандартного класу TForm. А наступний рядок створює екземпляр цього класу з ім'ям Forml:
Forml: TForml;
Стандартний клас TForm описує пусте вікно програми, у той час як клас TForml описує вікно з уже вставленими в нього компонентами мітка і кнопка. Опис цих компонентів містять рядки:
Buttonl: TButton; Labell: TLabel;
Ці рядки вказують, що компонент Buttonl (Кнопка!) являє собою екземпляр стандартного класу TButton, а компонент Labell (Метка1) - екземпляр класу TLabel.
За ім'ям процедури TForml. ButtonlClick в круглих дужках слід опис параметра виклику:
Sender: TObject
Цей опис означає, що параметр з ім'ям Sender належить класу TObject. Як ми побачимо далі, процедури можуть мати не один, а кілька параметрів виклику або не мати їх зовсім. Параметри виклику (якщо вони є) служать для настройки реалізованого в процедурі алгоритму на виконання конкретної роботи. Параметр Sender вставлений Delphi «на всякий випадок»: з його допомогою програміст може, при бажанні, визначити, який саме компонент з'явився джерелом події OnClick.
Весь рядок в цілому називається заголовком процедури:
procedure TForml.ButtonlClick(Sender: TObject);
Її завершує символ крапки з комою (;), який грає важливу роль в Delphi, так як показує компілятору на кінець речення мови. З окремих речень складається весь текст програми. В кінці кожного речення потрібно ставити крапку з комою - це обов'язкова вимога синтаксису мови.
наступні рядки визначають тіло процедури:
begin
end;
Слово begin (початок) сигналізує компілятору про початок послідовності пропозицій, що описують алгоритм роботи процедури, а слово end (кінець) - про кінець цієї послідовності. У нашому випадку тіло процедури поки що не містить опису будь-яких дій, що й не дивно: середовище Delphi лише створило заготівку для процедури, але вона нічого «не знає» про те, для чого ця процедура призначена. Наповнити тіло потрібними пропозиціями - завдання програміста.
Для нас важлива та обставина, що кожен раз при натисканні на кнопці Buttonl управління буде передаватися в тіло процедури, а значить між словами begin і end ми можемо написати фрагмент програми, який буде виконуватися у відповідь на цю подію.
Висновки:
Процес створення програми в Delphi розбивається на дві фази: фазу конструювання форми і фазу кодування.
Конструювання форми здійснюється шляхом вибору компонентів в палітрі і розміщення їх на формі.
Програміст може переміщати будь розміщений на формі компонент і змінювати його розміри за допомогою миші.
Щоб надати компоненту потрібні властивості, використовується вкладка Properties інспектора об'єктів.
Щоб компонент міг відгукуватися на ту чи іншу подію, програміст повинен створити обробник події і вказати його ім'я на вкладці Events інспектора об'єктів.
Обробник події оформляється у вигляді процедури, яка має складене ім'я. Перша частина імені являє собою ім'я класу для форми, друга частина відокремлюється від першої точкою і може бути довільною. Якщо Delphi автоматично формує заготовку для обробника, то друга частина імені являє собою об'єднання імені компонента та імені події без префікса On.
Тіло процедури обмежено словами begin і end і складається з окремих пропозицій (операторів) мови Delphi. В кінці кожного речення ставиться крапка з комою.
Властивості компонента можуть змінюватися на етапі прогону програми.