Скачать презентацию Вступ до курсу ЛЕКЦІЯ 1 1 План Скачать презентацию Вступ до курсу ЛЕКЦІЯ 1 1 План

l1(p).ppt

  • Количество слайдов: 46

Вступ до курсу ЛЕКЦІЯ 1 1 Вступ до курсу ЛЕКЦІЯ 1 1

План лекції: Основні відомості про курс. Процедурне, структурне, об’єктноорієнтоване та компонентно орієнтоване програмування C, План лекції: Основні відомості про курс. Процедурне, структурне, об’єктноорієнтоване та компонентно орієнтоване програмування C, C++, C# 2

лекції І семестр ІІ семестр разом ІІ семестр лабораторні разом 36 72 108 34 лекції І семестр ІІ семестр разом ІІ семестр лабораторні разом 36 72 108 34 30 64 70 102 172 Курсовий проект 3

Бали за заняття (І семестр) Основні – відвідування 20 балів – МКР 2*10 20 Бали за заняття (І семестр) Основні – відвідування 20 балів – МКР 2*10 20 балів – лабораторні + тести 20 балів – екзамен 20 балів 4

Процедурне , cтруктурне, об’єктно-орієнтоване та компонентне програмування Питання 2 5 Процедурне , cтруктурне, об’єктно-орієнтоване та компонентне програмування Питання 2 5

Процедурне, структурне та об’єктно-орієнтоване програмування 6 Процедурне, структурне та об’єктно-орієнтоване програмування 6

Програми мають два основні аспекти: – набір алгоритмів; – набір даних, якими програми оперують. Програми мають два основні аспекти: – набір алгоритмів; – набір даних, якими програми оперують. Ці аспекти залишалися незмінними за всю недовгу історію програмування зате відносини між ними (парадигма програмування) змінювались. 7

Процедурне програмування У процедурній парадигмі програмування задача безпосередньо моделюється набором алгоритмів – процедур, що Процедурне програмування У процедурній парадигмі програмування задача безпосередньо моделюється набором алгоритмів – процедур, що виконують деякі дії над даними. Дані є відділеними від процедур 8

Приклад – відділ з роботи з користувачами у бібліотеці Дані (передаються як параметри) Процедура Приклад – відділ з роботи з користувачами у бібліотеці Дані (передаються як параметри) Процедура видачі книг Процедура приймання книг До найбільш відомих процедурних мов програмування відносяться FORTRAN, C і Pascal. 9

Структурне програмування отримало свій розвиток у 60 -70 роки ХХ сторіччя завдяки роботам Е. Структурне програмування отримало свій розвиток у 60 -70 роки ХХ сторіччя завдяки роботам Е. Дейкстри. У його основу покладена ідея алгоритмічної декомпозиції – розділення складної системи на окремі частини у яких застосовуються різні алгоритми і реалізуються кожний окремо. 10

В основою методу структурного програмування є: розділення великої програми на кілька малих підпрограм; об’явлення В основою методу структурного програмування є: розділення великої програми на кілька малих підпрограм; об’явлення у програмах змінних та типів значень які вони приймають; використання у малих програмах тільки послідовних команд, команд розгалуження та команд циклу. 11

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

Передумови виникнення об’єктно- орієнтованого програмування – Нелінійність виконання програм ( у зв’язку з переходом Передумови виникнення об’єктно- орієнтованого програмування – Нелінійність виконання програм ( у зв’язку з переходом від командного рядка до програм з віконними інтерфейсами) – Необхідність поєднання даних та дій над ними – Необхідність постійно прописувати процедурні блоки для виконання схожих дій, що повторювались із програми до програми 13

У 70 -і роки процедурну парадигму почала витісняти парадигма абстрактних типів даних ( що У 70 -і роки процедурну парадигму почала витісняти парадигма абстрактних типів даних ( що має назву об'єктного підходу). В рамках цієї парадігми задача моделюється набором абстракцій даних (У С++ ці абстракції отримали назву класів) Алгоритми, що реалізовуються кожним класом, називаються відкритим інтерфейсом класу. Дані “приховані” усередині об'єктів класу. Парадигму абстрактних типів даних підтримують такі мови, доак CLU, Ada и Modula-2 14

Характеристики об’єктноорієнтованого програмування 15 Характеристики об’єктноорієнтованого програмування 15

Об'єктно-орієнтоване програмування розширює парадигму абстрактних типів даних механізмом успадкування (повторного використання існуючих об'єктів) і Об'єктно-орієнтоване програмування розширює парадигму абстрактних типів даних механізмом успадкування (повторного використання існуючих об'єктів) і динамічного зв’язуванняя (повторного використання існуючих інтерфейсів). Вводяться відносини тип-підтип. Три найбільш відомих мови що підтримують об'єктно-орієнтований підхід, – це Simula, Smalltalk і Java. 16

Характеристики ООП абстрагування інкапсуляція модульність поліморфізм спадкування 17 Характеристики ООП абстрагування інкапсуляція модульність поліморфізм спадкування 17

Характеристика ООП - абстрагування Абстрагування — це спрощений опис або виклад системи, при якому Характеристика ООП - абстрагування Абстрагування — це спрощений опис або виклад системи, при якому одні властивості або деталі (істотні для розгляду в цей момент) виділяються, а інші ігноруються. Будь-які моделі об'єктів зовнішнього світу, що зустрічаються в комп'ютерних програмах, теж є абстракціями. – Корзина, що перебуває на робочому столі Windows, імітує дійсний кошик для сміття. – У ньому важливі тільки три аспекти: зовнішній вигляд, можливість викинути документ у кошик можливість дістати його з кошика якщо документ видалили помилково. 18

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

Характеристика ООП - інкапсуляція Інкапсуляція (encapsulation) - це механізм, що поєднує дані й код, Характеристика ООП - інкапсуляція Інкапсуляція (encapsulation) - це механізм, що поєднує дані й код, що маніпулює цими даними, а також захищає те, і інше від зовнішнього втручання або неправильного використання. В об’єктно-орієнтованому програмуванні код і дані можуть бути об'єднані разом; у цьому випадку говорять, що створюється так званий "чорний ящик". Коли коди й дані поєднуються таким способом, створюється об'єкт (object). Інакше кажучи, об'єкт - є те, що підтримує інкапсуляцію. 20

Абстракція неможлива без відокремлення інтерфейсу від реалізації. Лише в цьому випадку її розробник зможе Абстракція неможлива без відокремлення інтерфейсу від реалізації. Лише в цьому випадку її розробник зможе скористатися перевагами об'єктної моделі : – Зміна та покращення поточної реалізації моделі ( за умови незмінності інтерфейсу); – Захист реалізації від редагування (ненавмисног або навмисного) 21

Характеристика ООП - модульність Подання програми у вигляді набору абстракцій придатне лише для невеликих Характеристика ООП - модульність Подання програми у вигляді набору абстракцій придатне лише для невеликих розробок. У серйозних проектах кількість окремих абстракцій може досягати кількох сотень (якщо не більше). У цьому випадку необхідна якась проміжна ланка між окремо взятими абстракціями й системою в цілому. Саме таку роль відіграють модулі. 22

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

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

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

Характеристика ООП - спадкування Спадкування (inheritance) - це процес, за допомогою якого один об'єкт Характеристика ООП - спадкування Спадкування (inheritance) - це процес, за допомогою якого один об'єкт може здобувати властивості іншого. Точніше, об'єкт може успадковувати основні властивості іншого об'єкта й додавати до них риси, характерні тільки для нього. Спадкування є важливим, оскільки воно дозволяє підтримувати концепцію ієрархії класів (hierarchical classification). Застосування ієрархії класів робить керованими більші потоки інформації. 26

Бібліотечні дані Друковані Книги Журнали Візуальні Компакт-диски Відео-касети 27 Бібліотечні дані Друковані Книги Журнали Візуальні Компакт-диски Відео-касети 27

Компонентно орієнтоване програмування С# перша компонентно – орієнтована мова програмування у сімействі С/С++ Компонент Компонентно орієнтоване програмування С# перша компонентно – орієнтована мова програмування у сімействі С/С++ Компонент є блоком в двійковому вигляді (тобто виконуваний код, а не початковий текст), який може використовуватися іншими програмами без необхідності повторної компіляції як самого компоненту, так і програми, що використовує цей компонент. Це означає, що від сторонніх виробників не потрібне надання початкового коду для своїх компонентів. 28

Що таке компонент Компонент – Незалежний модуль, що може використовуватись багаторазово і встановлюватись окремо Що таке компонент Компонент – Незалежний модуль, що може використовуватись багаторазово і встановлюватись окремо – Більш загальна за об’єкт структура (об’єкти є мовно-залежними структурами 29

Компоненти можуть містити кілька класів Компоненти не залежать від мови програмування Розробник і користувач Компоненти можуть містити кілька класів Компоненти не залежать від мови програмування Розробник і користувач компонента зазвичай не знайомі між собою, працюють в різних компаніях і користуються різними мовами програмування 30

C, C++. C# 31 C, C++. C# 31

Основні відомості про С Мова С - універсальна мова програмування, для якої характерна економічність Основні відомості про С Мова С - універсальна мова програмування, для якої характерна економічність виразу, сучасний потік управління та структури даних, великий набір операторів. 32

Мова С була створена Деннісом Рітчі (Dennis Ritchie) в лабораторіях Bell Telephone Laboratories у Мова С була створена Деннісом Рітчі (Dennis Ritchie) в лабораторіях Bell Telephone Laboratories у 1972 році для конкретної задачі розробки операційної системи UNIX на ПЕОМ DEC PDP-11. Багато із найбільш важливих ідей "C" походять від старішої мови BCPL, що була розроблена Мартіном Річардсом. Мова BCPL вплинула на "C" через мову "B", написану Кеном Томпсоном у 1970 році для першої операційної системи "UNIX" для ПЕОМ PDP-7. 33

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

С- популярна мова програмування, якій віддають перевагу багато програмістів, і як наслідок, велика кількість С- популярна мова програмування, якій віддають перевагу багато програмістів, і як наслідок, велика кількість компіляторів та корисних додатків до них. С- мобільна мова - добре переноситься з однієї комп'ютерної системи на іншу, а також з однієї операційної системи на іншу ( Програму розроблену під Windows можна майже без доробок використовувати у Linux 35

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

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

Незважаючи на її низькорівневі можливості, мова проектувалася для машиннонезалежного програмування. Написана мовою C програма Незважаючи на її низькорівневі можливості, мова проектувалася для машиннонезалежного програмування. Написана мовою C програма Сумісна зі стандартами та машинно-незалежно, може легко компілюватися на великій кількості апаратних платформ та операційних систем з мінімальними змінами. Мова стала доступною для великої кількості платформ, від вбудованих мікроконтролерів до суперкомп'ютерів. 38

C++ — універсальна мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктноорієнтованої, узагальненої C++ — універсальна мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктноорієнтованої, узагальненої та процедурної. Розроблена Б'ярном Страуструпом (англ. Bjarne Stroustrup) в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році та названа «С з класами» . Страуструп перейменував мову у C++ у 1983 р. Базується на мові Сі. Визначена стандартом ISO/IEC 14882: 2003 У 1990 -х роках С++ стала однією з найуживаніших мов програмування загального призначення. 39

Нововведеннями С++ порівняно з С є: – підтримка об'єктно-орієнтованого програмування через класи; – підтримка Нововведеннями С++ порівняно з С є: – підтримка об'єктно-орієнтованого програмування через класи; – підтримка узагальненого програмування через шаблони; – доповнення до стандартної бібліотеки; – додаткові типи даних; – обробка винятків; – простори імен; – вбудовані функції; – перевантаження операторів; – перевантаження імен функцій; – посилання і оператори управління вільно 40 розподіленою пам'яттю.

У 1998 році ратифіковано міжнародний стандарт мови С++: ISO/IEC 14882 «Standard for the C++ У 1998 році ратифіковано міжнародний стандарт мови С++: ISO/IEC 14882 «Standard for the C++ Programming Language» . Поточна версія цього стандарту — ISO/IEC 14882: 2003. 41

Назва «Сі++» була вигадана Ріком Масситті (Rick Mascitti) і вперше було використана в грудні Назва «Сі++» була вигадана Ріком Масситті (Rick Mascitti) і вперше було використана в грудні 1983 року. Раніше, на етапі розробки, нова мова називалася «Сі з класами» . Ім'я, що вийшло у результаті, походить від оператора Сі «++» (збільшення значення змінної на одиницю) і поширеному способу присвоєння нових імен комп'ютерним програмам, що полягає в додаванні до імені символу «+» для позначення поліпшень. 42

С# Мова C# з'явилася в червні 2000 р. як результат копіткої роботи великої групи С# Мова C# з'явилася в червні 2000 р. як результат копіткої роботи великої групи розробників компанії Microsoft, очолюваною Андерсом Хейлсбергом (Anders Hejlsberg). Ця людина відома як автор Turbo Pascal. Крім того, під час роботи в корпорації Borland Андерс Хейлсберг прославився створенням інтегрованого середовища Delphi (він керував цим проектом аж до виходу версії 4. 0). 43

 • C# є повністю об'єктно-орієнтованою мовою, де навіть типи, вбудовані в мову, представлені • C# є повністю об'єктно-орієнтованою мовою, де навіть типи, вбудовані в мову, представлені класами; • C# є могутньою об'єктною мовою з можливостями наслідування і універсалізації; • C# є спадкоємцем мов C/C++, зберігаючи кращі риси цих популярних мов програмування. Загальний з цими мовами синтаксис, знайомі оператори мови полегшують перехід програмістів від С++ до C#; зберігши основні риси своїх батьків, мова стала простіша і надійніша. Простота і надійність, головним чином, пов'язані з тим, що у C# хоча і допускаються, але не заохочуються такі небезпечні властивості С++ як показчики, адресація, розіменування, адресна арифметика; 44

 • завдяки каркасу Framework. Net, що став надбудовою над операційною системою, програмісти C# • завдяки каркасу Framework. Net, що став надбудовою над операційною системою, програмісти C# отримують ті ж переваги роботи з віртуальною машиною, що і програмісти Java. Ефективність коду навіть підвищується, оскільки середовище CLR є компілятором проміжної мови, тоді як віртуальна Java-машина є інтерпретатором байт-кода; 45

 • могутня бібліотека каркаса підтримує зручність побудови різних типів додатків на C#, дозволяючи • могутня бібліотека каркаса підтримує зручність побудови різних типів додатків на C#, дозволяючи легко будувати Webслужбы, інші види компонентів, досить просто зберігати і отримувати інформацію з бази даних і інших сховищ даних; • реалізація, що поєднує побудову надійної і ефективного коду, є важливим чинником, що забезпечує успіх C#. 46