Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tema11_1.doc
Скачиваний:
2
Добавлен:
25.11.2019
Размер:
219.14 Кб
Скачать

13

Конспект уроку з основ інформатики в 10 класі

Тема Ідеї подійно-орієнтованого програмування. Особливості та принципи об'єктно-орієнтованого середовища програмування. Робота в об'єктному середовищі програмування. Запуск програм на виконання.

Мета: Ознайомити учнів з поняттям об’єктно-орієнтовного програмування. Формувати навички роботи в середовищі програмування Delphi. Виховувати самостійність та відповідальність.

Тип уроку: вивчення нового матеріалу.

Обладнання: персональний комп’ютер, середовище програмування Borland Delphi7.

Хід уроку

  1. Організаційний момент.

  2. Мотивація навчальної діяльності учнів, оголошення теми, мети уроку.

  3. Вивчення нового матеріалу.

Подійно-орієнтоване програмування - метод програмування, в якому виконання програми визначається подіями - діями користувача (клавіатура, миша), повідомленнями інших програм і потоків, подіями операційної системи (наприклад, надходженням мережевого пакета).

ПОП можна також визначити як спосіб побудови комп'ютерної програми, при якому в коді (як правило, в головній функції програми) явним чином виділяється головний цикл програми, тіло якого складається з двох частин:отримання повідомлення про подію і обробки події.

Як правило, в реальних завданнях виявляється неприпустимим тривале виконання обробника події, оскільки при цьому програма не може реагувати на інші події. У зв'язку з цим при написанні подійно-орієнтованих програм часто застосовують автоматне програмування.

Подійно-орієнтоване програмування, як правило, застосовується в трьох випадках:

  1. При побудові користувацьких інтерфейсів (в тому числі графічних);

  2. При створенні серверних застосунків у разі, якщо з тих чи інших причин небажано породження обслуговуючих процесів;

  3. При програмуванні ігор, в яких здійснюється управління значною кількістю об'єктів.

Об'єктно-орієнтоване програмування - це метод програмування, оснований на поданні програми у вигляді сукупності взаємодіючих об'єктів, кожен з яких є екземпляром певного класу, а класи є членами певної ієрархії наслідування.

На думку Алана Кея, розробника мови Smalltalk, якого вважають одним з «батьків-засновників» ООП, об'єктно-орієнтований підхід полягає в наступному наборі основних принципів:

  • Все є об'єктами.

  • Всі дії та розрахунки виконуються шляхом взаємодії (обміну даними) між об'єктами, при якій один об'єкт потребує, щоб інший об'єкт виконав деяку дію. Об'єкти взаємодіють, надсилаючи і отримуючи повідомлення. Повідомлення — це запит на виконання дії, доповнений набором аргументів, які можуть знадобитися при виконанні дії.

  • Кожен об'єкт має незалежну пам'ять, яка складається з інших об'єктів.

  • Кожен об'єкт є представником (екземпляром, примірником) класу, який виражає загальні властивості об'єктів.

  • У класі задається поведінка (функціональність) об'єкта. Таким чином усі об'єкти, які є екземплярами одного класу, можуть виконувати одні й ті ж самі дії.

  • Класи організовані у єдину деревовидну структуру з загальним корінням, яка називається ієрархією успадкування. Пам'ять та поведінка, зв'язані з екземплярами деякого класу, автоматично доступні будь-якому класу, розташованому нижче в ієрархічному дереві.

Таким чином, програма являє собою набір об'єктів, що мають стан та поведінку. Об'єкти взаємодіють використовуючи повідомлення. Будується ієрархія об'єктів: програма в цілому — це об'єкт, для виконання своїх функцій вона звертається до об'єктів що містяться у ньому, які у свою чергу виконують запит шляхом звернення до інших об'єктів програми. Звісно, щоб уникнути безкінечної рекурсії у зверненнях, на якомусь етапі об'єкт трансформує запит у повідомлення до стандартних системних об'єктів, що даються мовою та середовищем програмування. Стійкість та керованість системи забезпечуються за рахунок чіткого розподілення відповідальності об'єктів (за кожну дію відповідає певний об'єкт), однозначного означення інтерфейсів міжоб'єктної взаємодії та повної ізольованості внутрішньої структури об'єкта від зовнішнього середовища (інкапсуляції).

Об'єктно-орієнтоване програмування (ООП) зародилося в мовах програмування Паскаль, Ада, С++. До появи ООП технологія створення комп'ютерних програм базувалася на процедурному програмуванні, в якому основою програм були функції і процедури, тобто дії. Створена таким чином комп'ютерна програма відрізнялася чітким алгоритмом роботи - послідовністю дій для досягнення поставленої мети. У ООП основною точкою опори при проектуванні програми є - об'єкт. Програма ООП - це не послідовність операторів, а сукупність об'єктів і способів їх взаємодії. Обмін інформацією між об'єктами відбувається за допомогою повідомлень.

1) Об'єктом назвемо поняття, абстракцію або будь-який предмет з чітко окресленими кордонами, який має сенс у контексті розглянутої прикладної проблеми. Об'єкти можуть успадковувати характеристики і поведінку інших об'єктів, званих батьківськими або предками. Наявність механізму наслідування є самим істотним розходженням між звичайним програмуванням на Pascal ООП програмуванням в Delphi.

2) Основним поняттям ООП є поняття класу: класом - називають особливу структуру, яка може мати у своєму складі поля, методи і властивості. Клас - це безліч об'єктів, які володіють внутрішніми властивостями, притаманними будь-якому об'єкту класу. Причому специфіка клас проводиться шляхом визначення його внутрішніх властивостей (классообразующій ознаки). Клас виступає в якості об'єктного типу даних. Класи мають поля (як тип даних Record), властивості (що нагадують поля, але мають додаткові описи) та методи (підпрограми, які обробляють поля і властивості класу). Базовим класом для всіх об'єктів у Delphi, є класTObject. Цей клас інкапсулює основні функції, властиві всім об'єктам Delphi. Всі класи в Delphi є прямими або непрямими спадкоємцями цього класу.

3) Ієрархія об'єктів класу. Кожен конкретний клас має свої особливості поведінки і характеристик, що визначають цей клас.

При використанні ООП слід пам'ятати, що якщо характеристика одного разу визначена, то всі категорії, розташовані нижче від цього визначення, теж будуть містити цю характеристику. Тому, якщо визначено коло, то немає потреби дізнаватися скільки у неї вершин, тому що вона відноситься до підкласу фігур, які не мають вершин.

4) Успадкування. У термінах Паскаль об'єкт найбільш схожий з типом Record, який є структурованим типом для об'єднання декількох пов'язаних елементів під одним ім'ям. Припустимо, що потрібно написати програму, яка підраховує розмір стипендій та заробітної плати в інституті чи університеті. Змінна (назвемо її TPerson),що містить дані про імена студентів і співробітників, дату та розміри виплат, могла б виглядати таким чином:

TPerson = Record

Name: String [30]; {поле - ім'я}

Date: String [10]; {полі - дата}

RazV: Real; {полі - розмір виплати}

End;

Кожне значення, присвоєне змінній TPerson, є екземпляром типу record, представляє два рівня абстракції, тобто можна розглядати поля Ім'я, Дата, Розмір_виплат окремо, або в сукупності для опису конкретної людини як TPerson.

Припустимо, що програма повинна враховувати виплати грошей студентам і співробітникам. У кожній групі виплати проводяться особливим способом. Можна створити інший тип запису для групи студент. Для отримання даних про те, скільки грошей має отримувати студент, необхідно знати його середній бал, можна побудувати запис TStudent види:

TStudent = Record

Name: String [30];

Date: String [10];

RazV: Real;

Ball: Real; {середній бал}

End;

Однак можна зберегти тип TPerson шляхом створення поля Student типу TPerson всередині типу TStudent.

TSudent = Record

Student: TPerson;

Ball: Real;

End;

Така конструкція зручна і проста, тому постійно використовується в програмуванні. Для студента тип TStudent повинен містити всі поля, які є в записі TPerson, при цьому тип TStudent є типом нащадком для типу TPerson. TStudent успадковує все, що належить TPerson, і крім того, містить нові поля, які роблять TSudent унікальним.

Процес, за допомогою якого один тип успадковує характеристики іншого типу, називається спадкуванням. У Delphi всі класи є нащадками класу TObject. У прикладі два пов'язаних типу об'єктів могли б визначатися наступним чином:

TPersonal = Object

Name: String [30];

Date: String [10];

RazV: Real;

End;

5) Операції та методи. Функція (або перетворення), яку можна застосовувати до об'єктів даного класу, називається операцією. Якщо одна і та ж операція застосовується до об'єктів різного класу, то її називають поліморфною. Зазвичай при роботі з записами виникає проблема ініціалізації полів запису. Для присвоєння полів, в розглянутому раніше прикладі, початкових значень можна використовувати оператор With, але при необхідності ініціалізувати більше одного запису доведеться використовувати велику кількість операторів With, які будуть виконувати одні й ті ж дії. Тому природним є створення ініціалізація процедури, яка узагальнює застосування оператора with до будь-якого примірника типу TPerson, переданого як параметр:

Procedure Init (var Person: TPerson; N, D: String; R: Real);

Begin

With Person do begin

Name: = N;

Date: = D;

RazV: = R;

End;

End;

Процедура Init, включена в об'єкт спеціально для обслуговування типу TPerson, називається методом, тобто метод - це процедура або функція, зазначена в об'єкт таким чином, що екземпляр даного типу стає доступним для неї зсередини. Поля і методи є двома складовими частинами нової структури, званої об'єктом. З облік вищесказаного об'єкт TPerson можна описати таким чином:

Type

Tperson = Object;

Name: String [30];

Date: String [10];

RazV: Real;

Procedure Init (N, D: String; R: Real);

End;

Procedure TPerson. Init (N, D: String; R: Real);

Begin

Name: = N;

Date: = D;

RazV: = R;

End;

Таким чином, кожній операції відповідає метод - реалізація цієї операції для об'єктів даного класу. Кожна операція має один неявний аргумент - об'єкт, до якого вона застосовується. Вибір методу пов'язаний тільки з класом і об'єктом. Тепер для ініціалізації примірника типу TStudent досить просто викликати його метод:

Var Person: TPerson;

Person. Init (»Микола Іванович ', '25-06-1995', 40000);

6) Визначення методів. Процес визначення методів нагадує створення модулів в Turbo Pascal. Усередині об'єкту метод визначається заголовком процедури або функції, що діє як метод:

Type

Tperson = Object;

Name: String [30];

Date: String [10];

RazV: Real;

Procedure Init (N, D: String; R: Real);

Function GetName: String;

Function GetDate: String;

Function GetRazV: Real;

End;

Поля даних повинні бути оголошені перед оголошенням методів. Самі методи описуються поза визначення об'єкта як окрема процедура або функція. При визначенні методу його імені повинно передувати ім'я типу об'єкта, якому належить даний метод, з наступною точкою:

Procedure TPerson. Init (N, D: String; R: Real);

Begin

Name: = N;

Date: = D;

RazV: = R;

End;

Function TPerson. GetName: String;

Begin

GetName: = N;

End;

Function TPerson. GetDate: String;

Begin

GetDate: = D;

End;

Function TPerson. GetRazV: Real;

Begin

GetRazV: = R;

End;

7) Властивості об'єкта. Сукупність даних і методів їх читання і запису називаються властивістю. Властивості об'єктів можна встановлювати в процесі проектування, а також можна змінювати програмно під час виконання програми. (В процесі проектування додатків в середовищі програмування Delphi можна переглядати значення деяких із цих даних у вікні Інспектора Об'єктів і змінювати ці значення).

8) Події та їх обробка. Середовищем взаємодії об'єктів є повідомлення, що генеруються в результаті настання різних подій. Подія - це взаємодія на об'єкт. Подія настає в результаті дій користувача (переміщення курсору, натискання кнопки і т.п.). У кожному об'єкті визначено безліч подій, на які він може реагувати. У конкретних об'єктах можуть бути визначені обробники якихось із цих подій. До написання цих обробників і зводиться основне програмування за допомогою Delphi.

Таким чином, можна визначити об'єкт як сукупність властивостей і методів, а також подій, на які він може реагувати. Зовнішнє управління об'єктом здійснюється через обробники подій. Ці обробники звертаються до методів та властивостей об'єкта. Початкові значення даних об'єкта можуть задаватися також у процесі проектування установкою різних властивостей. В результаті виконання методів об'єкта можуть відбуватися нові події, що сприймаються іншими об'єктами програми або користувачем. 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]