лих чисел.
1 варіант розв'язання задачі
Program Summa;
Uses Crt;
Var A, B, S: LongInt;
Procedure SSS (Var SUM: LongInt; A, B: LongInt);
Begin
SUM: = A + B;
End;
Begin {Основний блок програми}
ClrScr;
Write ('Введіть числа а і b = ');
ReadLn (A, B),
{Виклик процедури SSS для пошуку суми}
SSS (S, A, B); {У глобальну змінну S зчитується значення локальної змінної Sum спричиненої процедури, значення А і В В«поглинаютьсяВ» процедурою для підсумовування}
WriteLn ('Сума А + В =', S);
ReadKey;
End.
2 варіант розв'язання задачі
Program Summa;
Uses Crt;
Var A, B, S: LongInt;
Function SSS (A, B: LongInt): LongInt;
Begin
SSS: = A + B;
End;
Begin {Основний блок програми}
ClrScr;
Write ('Введіть числа а і b = ');
ReadLn (A, B);
{Виклик функції SSS для пошуку суми}
S: = SSS (A, B); {У змінну S зчитується значення функції SSS, змінні A, B - параметри, необхідні для підсумовування}
WriteLn ('Сума А + В =', S);
ReadKey;
End.
Ідея сучасного підходу до програмування - об'єктно-орієнтованого - полягає в об'єднанні даних і оброблюваних їх процедур в єдине ціле - об'єкт. Таким чином, програма представляється у вигляді сукупності об'єктів, кожен з яких є реалізація деякого класу (типу).
Весь навколишній світ складається з об'єктів (предметів живої і неживої природи), а об'єкти, використовувані в програмуванні, є вищим рівнем абстракції даних.
Наведемо приклад: нехай заданий певний клас (тип) під назвою В«геометричний об'єктВ», що включає в себе підкласи геометричних фігур В«плоскаВ» і В«об'ємнаВ». У свою чергу, підкласи можуть підрозділятися на підкласи: В«з вершинамиВ», В«без вершинВ». Підклас В«без вершинВ» може підрозділяться на В«окружністьВ» і В«еліпсВ». Таким чином, представлена ​​ієрархія об'єктів, причому тут дотримується таке правило: властивості та методи, визначені раніше в більш загальному об'єкті (залежно від рівня), успадковуються наступними (більше специфічними об'єктами).
В основі ООП лежать три основні поняття:
- спадкування: даний об'єкт може успадковувати властивості об'єкта і додавати властивості, характерні тільки для даного об'єкта; в розглянутому вище прикладі об'єкт В«геометрична фігура В»є об'єктом-предком, що включає в себе решту ієрархію об'єктів-нащадків. Тут всі властивості і методи об'єкта-предка можуть бути використані об'єктами-нащадками.
- інкапсуляція: об'єднання даних і методів (процедур і функцій) в одне ціле - об'єкт;
- поліморфізм: при описі спадкоємців деякого об'єкту існує можливість модифікувати методи об'єкта-предка всередині об'єкта-спадкоємця, тобто об'єкт-спадкоємець може мати методи з такими ж іменами як і об'єкт-предок, але виконують інші функції.
Об'єкт - визначається користувачем тип, що містить в собі як дані, так і підпрограми для їх обробки. Дані об'єкта називають полями, а підпрограми для їх обробки - методами об'єкта.
Інкапсуляцію називають об'єднання даних і методів обробки в одному типі.
Дані типу об'єкт в програмі описуються в розділі опису типів TYPE:
TYPE
{Опис полів об'єкта}
<Ім'я> = OBJECT
<поле 1>: <Тип 1>;
<поле 2>: <Тип 2>;
....................
<поле N>: <Тип N>;
{Опис методів об'єкта}
PROCEDURE <Ім'я методу 1> [(параметри)];
..........................
FUNCTION <Ім'я методу N> [(параметри)]: <Тип>;
END;
Вимоги, що пред'являються до полів і методів об'єкта:
1) Необов'язкове: поля об'єкта обробляються тільки за допомогою його методів.
2) Обов'язкове: поля об'єкта є параметрами за замовчуванням для його методів, тобто не допускається вказівка ​​в списку параметрів-змінних з такими ж іменами як і поля.
Опис методів об'єктів виробляється по складеному імені:
ім'я об'єкта. ім'я методу:
<ім'я об'єкта>. <ім'я методу> [(параметри)];
Begin
<список команд>;
End;
Мінлива типу об'єкт називається екземпляром об'єкта.
Мінлива типу об'єкт описується в розділі опису змінних VAR:
VAR <ім'я примірника> <ім'я об'єкта>;
В основній програмі доступ до полів і методів примірник а об'єкту проводиться по складеному імені:
<ім'я примірника>: <ім'я методу>; - звернення до методу примірника,
<ім'я екземпляра>: <ім'я поля>; - звернення до поля (змінної) екземпляра.
...