X Код для використання на сайті:
Ширина px

Скопіюйте цей код і вставте його на свій сайт

X Для завантаження презентації, скористайтесь соціальною кнопкою для рекомендації сервісу SvitPPT Завантажити собі цю презентацію

Презентація на тему:
Парадигми програмування

Завантажити презентацію

Парадигми програмування

Завантажити презентацію

Презентація по слайдам:

Слайд 1

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

Слайд 2

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

Слайд 3

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

Слайд 4

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

Слайд 5

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

Слайд 6

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

Слайд 7

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

Слайд 8

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

Слайд 9

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

Слайд 10

double root (double x, double eps) 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; };

Слайд 11

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

Слайд 12

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

Слайд 13

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

Завантажити презентацію

Презентації по предмету Інформатика