Парадигми програмування Парадигма програмування це спосіб мислення розробника програми. Розглянемо три основних парадигми процедурне, обєктне (модульне)

Презентация:



Advertisements
Похожие презентации
База даних (БД) це структурована сукупність взаємопов'язаних даних певної предметної області (реальних об'єктів, процесів, явищ тощо). це структурована.
Advertisements

МОДУЛЬ АЛГОРИТМІЗАЦІЯ ТА ПРОГРАМУВАННЯ. Тема 1: « Основні поняття алгоритмізації », 4 години Робота вчителя СЗОШ 8 м. Хмельницького Кравчук.
Кожен оточуючий нас обєкт має свої властивості. Обєкт – цілісна частина навколишнього світу. Наприклад, стіл має такі властивості, як розміри, форму,
ІНФОРМАТИКА. 9 КЛАС Програмне забезпечення комп'ютерних систем Навчальна презентація вчителя Большакової Кристини Сергіївни ЗОШ 9 м. Ізмаїл.
Основи алгоритмізації та програмування Надання значень величинам. Вказівки присвоєння та введення.
Основи алгоритмізації та програмування Вказівка повторення. Цикли.
Дипломний проект Виконав: студент гр. П Ярошенко Я.І. Керівник дипломного проекту Сібрін Ю.І. Розробка програми Продаж друкованої продукції.
Загальні відомості про системне, службове та прикладне програмне забезпечення. Класифікація, основні функції та складові операційних систем. Поняття про.
Розробив: Студент 221 грп Олару Дмитро. Залежно від відстані виділяють: Локальні мережі – об'єднання комп'ютерів, що розміщені на невеликих відстанях.
Рекурсія Програми можуть містити виклик однієї або декількох підпрограм. Підпрограми можуть, в свою чергу, викликати інші підпрограми. А чи може підпрограма.
Оператори. Введення і виведення даних. Оператор присвоювання Оператори це команди програми. Оператор присвоювання є основним оператором мови програмування.
Класи пам'яті даних. Клас пам'яті, час існування та видимість об'єкта Кожен обєкт програми (змінна, функція,...) має свій тип і клас памяті. Тип визначає.
Програми з розгалуженнями.Команда IF Підготувала Крилік Анастасія 7-Д.
Основи алгоритмізації та програмування Підпрограми.
Ізяславський НВК 2, Гульчак І.В. Підпрограми. Підпрограми-процедури.
Бази даних Поняття про моделі даних. Види моделей даних Бази даних.
ІНФОРМАТИКА. 9 КЛАС Програмне забезпечення комп'ютерних систем Розділ 6 Навчальна презентація з інформатики для 9 класу вчителя Анрієнко М.А.
Урок 17 7 клас. Електронні таблиці. Табличний процесор MS Excel.
Урок 24 5 клас СЕРЕДОВИЩЕ ОПИСУ SCRATCH Й ВИКОНАННЯ АЛГОРИТМІВ .
Транксрипт:

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

Для процедур і функцій передбачається наявність механізмів передачі параметрів і поверненні результату. Спочатку процедурне програмування користувалося довільними засобами керування, в тому числі, переходом за міткою одним з найбільш вживаних операторів керування в Фортрані. Ось приклад програмного тексту C КВАДРАТНИЙ КОРІНЬ З ДІЙСНОГО ЧИСЛА REAL FUCTION ROOT (A) S=A IF (A.EQ.0) GO TO 20 10T=(S+A/S)*.5 IF (ABS((T-S)/T).LE.1.E-6) GO TO 20 S=T GO TO 10 20ROOT=S END

В 1968 році голландський вчений Е.Дейкстра вперше звернув увагу на проблеми, що виникають у програмах з неконтрольованими переходами, в 1970 році проголосив новий напрямок, який він назвав структур(ова)ним програмуванням. Структурне програмування це варіант процедурного, що вживає три типи структур керування: послідовне виконання дій, розгалуження і цикл. Фортран не підтримував цю парадигму в наборі його засобів не було циклів за умовами. Починаючи з Алголу, а особливо в Паскалі, цикли стають основним засобом організації обчислень в програмі.

Автор Паскалю, професор Н.Вірт, відібрав до створюваної ним мови програмування лише прості в поясненні і легкі в реалізації конструкції. Завдяки сильній типізації програми в Паскалі відзначаються надійністю, вони мобільні завдяки закладеній в них концепції Паскаль-машини, їх легко читати і розуміти завдяки дисципліні програмування, продиктованої вжитою парадигмою. Але разом з цим застосування Паскалю гальмувалося саме складністю виходу за межі віртуальної машини, потребою ефективного використання наявної апаратури. Головним критерієм, вжитим Б.Керніганом і Д.Річі до створеної ними мови С, стала саме гнучкість використання особливостей конкретної апаратури і ефективність виконання програм.

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

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

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

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

Сьогодні в сімействі мов об'єктно-орієнтованого програмування три найбільш відомих представника: С++, Java і C #. Java і C # виросли з С++. Вони мають свою сферу застосування в розподіленому програмуванні. Ще одна перевага С++ його мультипарадигменність. С++ підтримує традиційні для модульного програмування механізми абстракції даних, доповнені можливостями обєктно-орієнтованої парадигми. С++ містить в собі мову С (з деякими застереженнями), а тому підтримує процедурну парадигму. Ось приклад функції для обчислення квадратного кореня в С/С++:

double root (double x, double eps) { double s=0.5*x; double t; do { t=s; s=(s+x/s)*0.5; } while ((fabs(s-t)/s)>eps); return s; };

Принцип інкапсуляції даних і дій Структура дозволяє нам збирати разом декілька видів інформації, представленої її полями. Так структура Employee є абстракцією службовця, до членів якої внесено суттєву с точки зору управління кадрами інформацію атрибути об'єкту const short kMaxNameSize = 20; struct Employee { char name [kMaxNameSize]; unsigned int id; float salary; } Над об'єктами типу Employee виконують якісь дії, наприклад, створюють, роздруковують, нараховують зарплату, тощо. Ці дії забезпечуються функціями, які було б логічно теж розмістити в структурі. Тоді їх називають методами.

Структури дають нам досить простий тип інкапсуляції ( encapsulation ) об'єднання елементів з метою створення нової сутності. Приклад точки площини разом з операціями додавання, порівняння, тощо struct Point { //Атрибути double _x; double _y; //Методи Point operator+(Point); bool operator==(Point); double modulus (); double phi (); }

Інкапсуляція ділить об'єкт на дві частини: інтерфейс і реалізацію. Вище ми записали інтерфейс, а так записується реалізація методів. Читаємо: оператор додавання + із структури Point. Point Point::operator+(Point v) { Point w; w._x = _x + v._x; w._y = _y + v._y; return w; }