- •Тема 1. Поняття про об’єктно-орієнтоване програмування. Поняття про об’єктно-орієнтоване програмування
- •Інструмент прискореної розробки програм
- •Список файлів проекту.
- •Деякі важливі принципи візуального програмування.
- •Вікна інспектора об'єктів, форми, модуля.
- •Лабораторна робота №1 «Робота в середовищі Delphi»
- •Тема 2. Основи об’єктно-орієнтованого програмування.
- •Лабораторна робота №2 «Створення типового вікна Windows-додатку. Властивості об’єктів форми.»
- •Теоретичні відомості:
- •I. Властивості об’єкту Форма.
- •Теоретичні питання:
- •Тема 3. Особливості ооп: основні концепції
- •Лабораторна робота №3 Робота з формою та компонентами Panel, Label, Edit, Button.
- •Лабораторна робота №4 Робота над проектом «Альбом картинок» (компонент Image вкладки Additional)
- •Тема 4. Структура програми Структура програми складається з:
- •Структура проекту
- •Структура модуля
- •Елементи програми
- •Елементи мови Алфавіт
- •Лексеми
- •Теоретичні питання
- •Лабораторна робота №5 Робота над проектом «Текстовий редактор»
- •Тема 5. Типи даних. Введення та виведення числових даних. Функції перетворення. Математичні функції
- •Прості типи
- •Порядкові типи
- •Цілі типи
- •Введення та виведення числових даних
- •Допомога 1.
- •Допомога 2.
- •Лабораторна робота №6. «Створення програм лінійної структури. Створення програми «Калькулятор»
- •В аріант завдання для вибору:
- •Тема 6. Оператори мови Delphi
- •Лабораторна робота №7 Створення найпростішого Windows-Додатка в Delphi, з використанням умовного оператора та оператора вибору.
- •1 Спосіб розв’язку квадратного рівняння
- •2 Спосіб розв’язання квадратного рівняння
- •Створити додатки за вказаним варіантом та записати блок-схему алгоритму:
- •Лабораторна робота № 8 «Створення програм з використанням операторів циклів»
- •Лабораторна робота № 9 «Розробка графічного інтерфейсу програми. Основні керуючі елементи.»
- •1. Програмування об’єкту – перемикач (tRadioButton).
- •Програмування об’єкту – прапорець (tCheckBox).
- •Тема 7. Масиви
- •Лабораторна робота № 10 «Структуровані типи даних»
- •Тема 8. Робота з файлами
- •Лабораторна робота №11 «Файлові типи даних»
- •Тема 9. Допоміжні алгоритми
- •Лабораторна робота № 12 «Створення програм з використанням процедур та функцій»
- •Тема 10. Работа з графікою та мультимедіа
- •Реалізація мультимедійних технологій. Відтворення відеокліпів
- •Внимание!
- •Лабораторна робота № 13 «Створення проекту «Побудова графіка функцій»»
- •Тема 11. Створення анімації в Delphi
- •Лабораторна робота № 14 «Створення проекту «Графічний конструктор»»
- •Лабораторна робота № 15 Створення багатовіконного проекту «Тест з географії»
- •Форма «Тестування» — модуль f_Test
- •Форма «Результат» — модуль fRes
- •Форма «Домопога» — модуль fInstr unit f__lnstr;
- •Тема 12. Організація роботи з таблицями та базами даних. Лабораторна робота №16. Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Лабораторна робота № 17 Створення проекту «Довідник по країнах»
- •Лабораторна робота № 18 Створення проекту «Телефонна книга»
- •Лабораторна робота № 19 Створення проекту «Довідник по тваринах»
- •Лабораторна робота № 20 Створення довідкової системи
- •Хід роботи
Тема 9. Допоміжні алгоритми
Підпрограми
Метод послідовної побудови – деталізація алгоритму – з'явився результатом розвитку всієї системи програмування. Суть методу в розділенні складного завдання на ряд простих. Для кожної підзадачі складається свій алгоритм, званий допоміжним. Основна вимога в ієрархічній структурі, що утворилася, – це забезпечення строгого взаємозв'язку між складовими її частинами.
У структурованих програмах легко простежується|просліджує| логіка основного алгоритму, вони лаконічні по суті і зручні у відладці при виявленні помилок. Крім того, введення|вступ| допоміжних алгоритмів ефективно реалізує багатократне|багаторазове| використання підзадач в одній або навіть декількох програмах.
У коді допоміжні алгоритми організовуються в підпрограми, до яких відносяться процедури і функції. Основним принципом такої організації є функціональна цілісність, самодостатність і, як наслідок, самостійність алгоритмічного блоку, направленого на реалізацію вирішення конкретної мети. При цьому зв'язок з головною програмою здійснюється по мінімально необхідних критеріях (параметрам), аж до вказівки лише одного імені допоміжного алгоритму, у разі достатності такої умови виклику. Вибір робить програміст.
Сучасна теорія алгоритмізації ставить принцип структуризації основоположним. Мови, що підтримують схему деталізації програми, називають процедурно-орієнтованими. До їх числа відноситься Object Pascal.
Процедури і функції
При програмуванні в Delphi робота програміста полягає в основному в розробці процедур (підпрограм) обробки подій.
При виникненні події автоматично запускається процедура обробки події, яку і повинен написати програміст. Завдання задачі виклику процедури обробки, при виникненні відповідної події, бере на себе Delphi.
У мові Object Pascal основною програмною одиницею є підпрограма. Розрізняють два види підпрограм: процедури і функції. Як процедура, так і функція, є послідовністю інструкцій, призначеною для виконання деякої роботи. Щоб виконати інструкції підпрограми, треба викликати цю підпрограму. Відмінність функції від процедури полягає в тому, що з ім'ям функції пов'язано значення, тому ім'я функції можна використовувати у виразах.
Структура процедури
Процедура починається|розпочинає| заголовком, за яким слідують|прямують|:
- розділ оголошення констант;
- розділ оголошення типів;
- розділ оголошення змінних;
- розділ інструкцій.
Оголошення процедури в загальному|спільному| вигляді|виді| виглядає таким чином:
procedure| Ім'я (Список параметрів);
const| // початок розділу оголошення констант
type| // початок розділу оголошення типів
var| // початок розділу оголошення змінних
begin| // початок розділу інструкцій
end|;
Заголовок процедури складається із слова Procedure, за яким слідує ім'я процедури. Якщо у процедури є параметри, то вони указуються після імені процедури в дужках. Завершується заголовок процедури символом "крапка з комою".
Якщо в процедурі використовуються іменовані константи, то вони оголошуються в розділі оголошення констант, який розпочинається словом const.
За розділом констант слідує розділ оголошення типів, що розпочинається словом type.
Після розділу оголошення типів йде розділ оголошення змінних, в якому оголошуються (перераховуються) всі змінні, використовувані в програмі. Розділ оголошення змінних розпочинається словом var.
За розділом оголошення змінних розташований розділ інструкцій. Розділ інструкцій розпочинається словом begin і закінчується словом end, за яким слідує символ "крапка з комою". У розділі інструкцій знаходяться виконувані інструкції процедури.
Нижче, як приклад, приведений фрагмент програми підрахунку вартості покупки — процедура summa.
procedure| Summa|;
var|
cena|: real|; // ціна
kol|: integer|; // кількість
s : real|; // сума
mes|: string|[255]; // повідомлення|сполучення|
begin|
cena| := StrToFloat| (Form1|.Edit1.Text);
kol| := StrToInt|(Form1|.Edit2.Text);
s := cena| * kol|;
if| s > 500 then|
begin|
s := s * 0.9;
mes| := 'Надається знижка 10%' + #13|;
end|;
mes| := mes+| 'Вартість покупки|купівлі|: '+ FloatToStrF|(s,ffFixed,4,2|)+' руб|.';
Form1|.Label3.Caption := mes|;
end|;
Структура функції
Функція починається із заголовка, за яким слідують|прямують| розділи оголошення констант, типів і змінних, а також розділ інструкцій.
Оголошення функції в загальному|спільному| вигляді|виді| виглядає таким чином:
procedure| Ім'я (Список параметрів) : Тип;
const| // початок розділу оголошення констант
type| // початок розділу оголошення типів
var| // початок розділу оголошення змінних
begin| // початок розділу інструкцій
result| := Значення; // пов'язати з ім'ям функції значення
end|;
Заголовок функції розпочинається словом function, за яким слідує ім'я функції. Після імені функції в дужках наводиться список параметрів, за яким через двокрапку указується тип значення, повертаного функцією (тип функції). Завершується заголовок функції символом "крапка з комою".
За заголовком функції слідують розділи оголошення констант, типів і змінних.
У розділі інструкцій окрім змінних, перерахованих в розділі опису змінних, можна використовувати змінну result. Після закінчення виконання інструкцій функції значення цієї змінної стає значенням функції. Тому серед інструкцій функції обов'язково має бути інструкція, що привласнює змінною result значення. Як правило, ця інструкція є останньою виконуваною інструкцією функції.
Нижче, як приклад, приведена функція FuntToKg, яка перераховує вагу із фунтів - в кілограми:
// Перерахунок ваги з|із| фунтів|фунт-атомів| в кілограми
function| FuntToKg|(f:real|):real;
const| К=0.4095; // у Росії 1 фунт|фунт-атом| рівний 409,5 гр. коэф|. Перерахунку
begin|
result| := f * K;
end|;
Процедура – частина програми, що має власне ім'я і призначена для виконання послідовності команд допоміжного алгоритму.
Згадка імені процедури в коді називається її викликом. Якщо процедура має параметри виклику, то вони перераховуються в круглих дужках після імені. При виклику виконання поточної черговості дій припиняється, і управління процесом передається процедурі. Коли команди процедури будуть повністю відпрацьовані, управління повертається основній програмі: до оператора, що стоїть безпосередньо після імені процедури.
Опис процедури в програмі проводиться перед операторною частиною Begin..End. Заголовок складається із зарезервованого слова Procedure і ідентифікатора імені. Далі йде виконавчий блок, аналогічний по структурі головній програмі. Завершується процедура крапкою з комою: «;».
У модулі процедури розташовуються в розділі реалізацій – Implementation (2), з обов'язковим попереднім оголошенням свого імені в розділі описів (1).
Приклад|зразок|
unit Unit1;
interface|
uses|
Windows|, Messages|, SysUtils|, Variants|, Classes|, Graphics|, Controls|, Forms|
Dialogs|, StdCtrls|, Buttons|;
type|
TForm1 = class(TForm)
BitBtn1|: TBitBtn|;
procedure BitBtn1Click(Sender: TObject);
private |{ Private| declarations| }
public| { Public| declarations| }
end;
var|
Form1|: TForm1|;
implementation|
{ $R *.dfm}
p rocedure TForm1.BitBtn1Click(Sender: TObject);
begin|
Close|;
end;end.
При описі процедури до ідентифікатора імені можуть додаватися формальні параметри-значення, записані в круглих дужках.
Формальні параметри звернення|звертання| вказуються|вказують| у разі|в разі| використання даних, передаваних процедурі як інформаційні установки для її алгоритму дій, і є оголошенням типу|типа| даних.
Виклик процедури, що має формальні параметри, здійснюється з вказівкою фактичних параметрів, дотримуючи строгу відповідність порядку проходження і заданого типу формальних параметрів, тобто по конкретних значеннях даних, що задаються.
Приклад|зразок|
// процедура малювання годинника:
procedure TForm1.Clock(clhour,clmin,clsec : TColor); {оголошуємо в імені процедури формальні параметри: змінні, «відповідальні» за колір стрілок годинника, перераховуючи їх в круглих дужках з вказівкою типу через двокрапку }
begin|
with Form1.Canvas do
begin| {формальний параметр використовується в коді алгоритму процедури.При виклику процедури Clock замість нього підставлятиметься значення відповідного фактичного параметра}
Pen.Color:=clhour; // задаємо колір олівця перед малюванням годинникової стрілки
MoveTo(cx,cy); // переміщаємося в центр циферблату
Pen.Width:=3; // задаємо товщину ліній
LineTo(cx+Round(hl*sin(ha)), cy-Round(hl*cos(ha))); // креслимо лінію
MoveTo|(cx,cy|);
Pen.Width:=2; // хвилинна стрілка
LineTo|(cx+Round|(ml*sin|(ma|))cy-Round|(ml*cos|(ma|)));
MoveTo|(cx,cy|);
Pen.Color:=clSec; // секундна стрілка
Pen.Width:=1;
LineTo|(cx+Round|(sl*sin|(sa|)), cy-Round|(sl*cos|(sa|)));
end; end;
{блок процедури таймера виконується періодично з|із| частотою властивості Interval| таймера (задаємо 1 раз в секунду)}
procedure TForm1.Timer1Timer(Sender: TObject);
begin // викликаємо|спричиняємо| процедуру Clock| з|із| вказівкою фактичних параметрів:
Clock(clWhite,clWhite,clWhite); // «стираємо» стрілки, малюючи білим
DecodeTime(Time,h,m,s,ms); // визначуваний наступне значення часу
ha:=(h mod 12) /12*(2*Pi)+(m div 12)/60*(2*Pi);
ma:=m/60*(2*Pi);
sa:=s/60*(2*Pi);
Clock(clBlue,clBlue,clSilver); // малюємо нове положення стрілок заданими кольорами
end;
Функція відрізняється від процедури тим, що результат її роботи повертається у вигляді конкретного значення цієї функції (окрім файлового типу), що типізується, яке можна використовувати в операторах виразів разом з іншими операндами. Відповідно при описі функції обов'язково указується її тип.
Формат заголовка: Function <ім'я>(формальні параметри) : <тип результату>;
Формальні параметри можуть бути відсутніми.
Delphi| в своєму складі має багату бібліотеку програмних заготовок - ряд|лава| вбудованих стандартних процедур і функцій, а також середовище|середа| допускає прямий виклик функцій WINAPI|. При їх використанні не потрібний попередній опис, всі необхідні параметри виклику визначені в довідковій літературі.
Індивідуалізовані|індивідуалізуватися| застосування, що включають нестандартні процедури (призначені для користувача підпрограми) програміст розробляє самостійно.