- •Тема 1. Обєктно - орієнтовне програмування 4
- •Тема 2. Основні концепції парадигми програмування 14
- •Тема 7. Універсальна мова моделювання (Unified Modelling Language або uml) 88
- •Тема 8. Бібліотека стандартних шаблонів stl (Standard Template Library) 91
- •Тема 9. Шаблони проектування stl (Standard Template Library) 104
- •Лекція № 1 Тема 1. Обєктно - орієнтовне програмування План лекції
- •Зміст лекції Вступ.
- •1.1. Поняття те визначення ооп.
- •1.2. Об' єктно - орієнтована методологія (оом).
- •1.3. Об' єктно - орієнтовані мови програмування.
- •1.4. Системи і середовища програмування топ.
- •Лекція № 2 Тема 2. Основні концепції парадигми програмування План лекції
- •Зміст лекції
- •2.1. Парадигми програмування: об' єктно - орієнтована парадигма.
- •2.2. Основні концепції топ.
- •2.3. Моделювання. Об' єктна декомпозиція.
- •2.4. Ідеї топ. Топ принцип - поліморфізм.
- •2.5. Інкапсуляція. Наслідування.
- •2.6. Об' єктний рефакторинг.
- •2.7. Системи і середовища програм.
- •Лекція № 3
- •План лекції
- •Зміст лекції
- •3.1. Абстракції даних
- •3.4. Типи, що перераховують
- •3.5. Вирази
- •3.6. Інструкції
- •Лекція № 4
- •План лекції
- •Зміст лекції
- •4.2. Структура програми, функція main без параметрів.
- •4.3. Основні типи даних.
- •4.4. Константи, змінні, вирази та пріоритет операцій.
- •4.5. Базові конструкції структурного програмування - галуження, цикл, передача управління.
- •4.6. Загальні та бітові логічні операції.
- •4.7. Тернарний опертор.
- •4.8. Вказівники і посилання; масиви.
- •Лекція № 5
- •План лекції
- •Зміст лекції
- •5.1. Користувацькі типи - typedef, enum, struct, union. Функції.
- •5.2. Передача параметрів та повернення значень з функцій.
- •5.3. Рекурсія, перевантаження функцій, функція main з параметрами.
- •5.4. Глобальні і локальні визначення, простори імен та їх використання.
- •5.5. Директиви препроцесора.
- •5.6. Стандартний ввід/вивід - бібліотека stdio.H.
- •5.7. Основи потокового введенню/виводу - бібліотека iostream.H.
- •Лекція № 6
- •План лекції
- •Зміст лекції
- •6.2. Екземпляри класів або об' єкти.
- •6.3. Поля (атрибути) та методи.
- •6.4. Специфікатори доступу (private, protected, public).
- •6.5. Вказівник this.
- •6.6. Перевантаження методів.
- •6.7. Конструктори і деструктори класів.
- •6.8. Перевантаження конструкторів.
- •6.9. Конструктори копіювання та перетворення.
- •6.10. Закон Деметри
- •Лекція № 7 Тема 7. Універсальна мова моделювання (Unified Modelling Language або uml) План лекції
- •2.Основні поняття та принципи.
- •3.Зв'язки між класами (асоціація, агрегація, композиція, узагальнення).
- •4.Uml: діаграми класів. Uml: діаграми взаємодії. Uml: діаграми послідовності. Зміст лекції
- •7.1. Сфера застосування.
- •7.2. Основні поняття та принципи.
- •7.3. Зв'язки між класами (асоціація, агрегація, композиція, узагальнення).
- •7.4. Uml: діаграми класів. Uml: діаграми взаємодії. Uml: діаграми послідовності.
- •Лекція № 8 Тема 8. Бібліотека стандартних шаблонів stl (Standard Template Library)
- •План лекції
- •Зміст лекції
- •8.1. Бібліотека стандартних шаблонів - stl (призначення, основні можливості, сфера застосування).
- •8.2. Стандартні потоки і потокові класи.
- •8.3. Стрічки (основні операції та функції; переваги порівняно із c - стрічками).
- •8.4. Поняття про контейнери, ітератори, функціональні об' єкти та алгоритми stl.
- •Лекція № 9 Тема 9. Шаблони проектування stl (Standard Template Library) План лекції
- •1.Шаблони проектування (designpatterns).
- •Зміст лекції
- •9.1. Шаблони проектування (designpatterns).
- •9.2. Класифікація шаблонів проектування stl (creational, structural, behavior, concurrencypatterns).
- •9.3. Можливості застосування шаблонів проектування stl.
Лекція № 2 Тема 2. Основні концепції парадигми програмування План лекції
1. Парадигми програмування: об' єктно - орієнтована парадигма.
2. Основні концепції ТОП.
3. Моделювання. Об' єктна декомпозиція.
4. Ідеї ТОП. ТОП принцип - поліморфізм.
5. Інкапсуляція. Наслідування.
6. Об' єктний рефакторинг. Системи і середовища програм.
Зміст лекції
Значення - це кінцеве позначення, яку мі можемо розглядати як відповідь або результат обчислення. Кожне значення має відповідний тип. Ми можемо розглядати типи як набори подібних значень.
Змінна - це сутність, що має ім 'я, комірка пам' яті, яка має специфічне значення і зберігає його незмінним під година виконання програми, поки вона не отримає інше значення.
Звичайні програми складалися із змінних та інструкцій для комп'ютера, щоб ними управляти.
Реальний об' єкт - це специфічна сутність, якові мі можемо бачити, відчувати чи сприймати будь-яким іншим чином і відрізняти від інших об' єктів.
Моделюючи реальний світ за допомогою комп' ютерної програми, мі приходимо до поняття комп'ютерного об' єкта (або просто об' єкта). Об' єкт - це специфічна комп'ютерна сутність, яка існує в комп' ютерній пам' яті і може описувати реальний об' єкт.
2.1. Парадигми програмування: об' єктно - орієнтована парадигма.
Незважаючи на ті, що ця парадигма з'явилась ще в 1960-тих роках, вона не мала широкого застосування до 1990-тих. Сьогодні багато мов програмування (зокрема, Java, C#, C++, Python, PHP, Ruby та Objective - C, ActionScript 3) підтримують ТОП.
Парадигма програмування - основні принципи програмування (не плутати з розробленням програм), або, парадигмне програмування. Парадигма програмування надає (та визначає) ті, як програміст розглядає роботові програми. Наприклад, в об' єктно - орієнтованому програмуванні, програміст розглядає програму як множину взаємодіючих між собою об' єктів, водночас як у функційному програмуванні програму можна представити як обчислення послідовності функцій без станів.
Основні парадигми програмування: процедурне програмування (англ. Procedural programming); модульне програмування (англ. Modular programming); об' єктно - орієнтоване програмування (англ. Object - oriented programming); функційне програмування (англ. Functional programming); імперативне програмування (англ. Imperative programming); декларативне програмування (англ. Declarative programming); прототипне програмування (англ. Prototype - based programming); аспектно- орієнтоване програмування (англ. Aspect - oriented programming); предметно- орієнтоване програмування (англ. Subject - oriented programming); функціонально - орієнтоване програмування (англ. Feature - oriented programming).
2.2. Основні концепції топ.
Донедавна більшість професійних програмістів реалізовували свої програмні проекти з використанням технології структурного чи процедурного програмування. Із збільшенням обсягів оброблюваної інформації, зростанням вимог користувачів до програмних продуктів почали значно зростати розміри кодів розроблюваних програм.
Щоразу перед качаном реалізації нового програмного продукту програмістам ставало дедалі очевидніше, що такі підходи є невдалими. Проблема полягала, передусім, у непропорційному зростанні складності процесу розроблення самих кодів програм порівняно зі зростанням вимог до програмного продукту.
Співучо буде справедливим твердження про ті, що досконалі та вишукані програми, без перебільшення, належать до найскладніших творінь людини. Проте, зважаючи на надлишкову складність, такі програми нерідко містять помилки - добрі, якщо не значні. Бо інколи серйозні помилки у програмному забезпеченні потенційно спричиняють матеріальні збитки (наприклад, помилки у бухгалтерських чи банківських розрахунках), а іноді і загрожують життю багатьох людей (наприклад, під година керування атомними реакторами, авіаперельотами чи космічним кораблем).
Внаслідок довготривалої боротьби з проблемою складності процесу написання кодів програм булі вироблені нові концепції розроблення програмних продуктів, а саме:
● об' єктно - орієнтоване програмування (ТОП);
● уніфікована мова моделювання програм (UML);
● спеціалізовані засоби розроблення сучасного програмного забезпечення.
