Тема 1. Вступ. Парадигми і
мови програмування. Методологія
програмування. Структурний та об’єктно-орієнтований
підходи у програмуванні.
Парадигми і мови програмування: імперативне програмування; об'єктно-орієнтоване
програмування;декларативне програмування. Методологія програмування: процедурне
програмування та структурне програмування. Перетворення неструктурованих
програм у структуровані. Структурний та об’єктно-орієнтований підходи у
програмуванні.
Література [1;2; 4; 5; 10; 13]
Тема
2. Основні поняття та типи даних мови
програмування С++. Реалізація різних алгоритмічних структур на мові С++. Програмне середовище розробника.
Історія створення та загальна характеристика
С++. Алфавіт. Ідентифікатори. Ключові слова. Команди. Перша програма
мовою С++. Загальна структура програми. Коментарі. Типи даних. Константи.
Оператори. Реалізація алгоритмічних структур розгалуження та циклу.
Література [1; 4; 6-9; 11;
13-16]
Лабораторна робота №1. Складання
простих програм з алгоритмами циклу та розгалуження.
Мета: повторення
раніш вивченого матеріалу щодо складання і реалізації алгоритмів циклу та
розгалуження мовою С++ в середовищі С++ Builder.
1.
Запустити середовище програмування С++ Builder
2.
Створіть новий документ та збережіть його.
3.
У вікні редагування введіть текст програми:
Завдання 1.
Постановка задачі: знайти суму парних чисел з діапазону цілих чисел
від 1 до 40. Кінець діапазону (число 40)
ввести з екрану, надавши підказку " Input end of
cycle".
Використовуючи оператор вибору switch вивести проміжне значення підсумку
для кінця діапазону 1, 12, 22, 33.
Результат вивести на екран.
Завдання 2.
Постановка задачі: Модифікуйте
програму, зберігши кожен з підсумків (1, 12, 22, 33) і кінцеве значення до
масиву. Після виведення суми парних чисел розрахуйте суму елементів масиву (позначивши,
наприклад, R) та виведіть її на екран.
Завдання 3.
Постановка задачі: Модифікуйте
програму, додавши після розрахунку суми
елементів масиву R цикл з оператором while, в якому значенню R присвоюється значення √ R і ця дія
повторюється доки R > 2.
Виведіть на екран значення R та кількість ітерацій для отримання цього значення.
Примітка. Значення на екран
виводиться у вигляді <ідентифікатор>=<значення>
ВИМОГИ до оформлення реферату див.
https://ru.calameo.com/read/002828893b19e88726053
та https://helpiks.org/5-99435.html, до оформлення списків літератури - .http://vippo.org.ua/files/pedposhyk/spuslit-1557135224.pdf
Тема 3.
Використання масивів. Покажчики та масиви.
Одновимірні
та багатовимірні масиви. Покажчики. Операція взяття адреси.
Операція розіменування. Обмеження на застосування операції взяття адреси. Дозволені операції для змінних-покажчиків.
Масиви покажчиків. Динамічні масиви. Особливості використання циклу з умовою (збільшення та зменшення, інструкції циклу з передумовою
та післяумовою, переривання та продовження циклу).
Література [1; 4; 6-9; 11;
13-16]
Лабораторна робота №2. Складання простих програм з використанням масивів та покажчиків.
Мета: навчитись складати й
реалізовувати алгоритми та програми мовою С++ для обробки табличних величин одновимірних
та двовимірних масивір, використовуючи покажчики та динамічну пам‘ять.
Завдання:
1.
Запустити середовище програмування С++ Builder
2.
Створіть новий документ. Збережіть під іменем <Номер групи><Номер
лабораторної><Прізвищеанглійською>.срр. Наприклад,102buts.cpp
3.
У вікні редагування введіть текст програми (без коментарів):
Постановка задачі: користувач
вводе з клавіатури масив А розміром (3×4).
Програма виводить на екран введений масив у вигляді
матриці (по рядках, елементи рядка відокремлюються один від одного табуляцією).
В елементи динамічного масиву записується підрахована сума елементів рядку масиву А. Виводяться на
екран елементи динамічного масиву з
використанням покажчиків.
Подальші лекції, практичні і лабораторні роботи розташовуються на платформі коледжу за адресою:
https://github.com/omc-college/ipz3-introduction_to_object-oriented_programming
Тематика рефератів
Тема 4. Особливості
використання функцій. Рекурсія. (6 годин).
Особливості використання функцій. Пам'ять виклику функції. Огляд процесу
виконання виклику. Автоматична пам'ять або програмний стек. Типи виклику функцій: виклик функції з передачею параметрів
за допомогою формальних аргументів-значень; з передачею адрес за допомогою
параметрів-покажчиків; з використанням посилань, коли доступ до переданих
параметрів забезпечується за допомогою альтернативного імені (синоніма); з
передачею даних за допомогою глобальних змінних; з застосуванням параметрів, що
задані за замовчуванням. Масиви як параметри
функцій. Параметри
функцій - багатовимірні масиви. Передача масиву
у функцію за допомогою покажчиків. Покажчики на
функцію. Основні функції обробки символьних типів. Поняття та приклади рекурсії. Глибина рекурсії й загальна кількість рекурсивних
викликів. Масиви як параметри функцій. Швидке
сортування з використанням рекурсії.
Література
[1; 4; 6-9; 11; 13-16]
Лабораторна робота
№3. Створення програм для опрацювання функцій мовою С++
Мета: навчитись складати й реалізовувати алгоритми та програми
мовою С++, які використовуюсь функції, створені користувачем
Завдання:
1. Необхідно створити
функцію Min, в якій потрібно знайти мінімальний з двох елементів. В головному
модулі вводяться два числа, викликається
функція Min за результатами дії якої виводиться співвідношення
чисел.
2. Написати програму
для сортування одномірного масиву a[n] за спаданням елементів, використовуючи рекурсивну функцію швидкого
сортування.
1 3. Написати програму, де виконуються такі дії:
a) заповнюється матриця 3х4 випадковими числами х діапазону [-100;100];
a) заповнюється матриця 3х4 випадковими числами х діапазону [-100;100];
b) з використанням масиву функцій виконуються розрахунки:
·
середнього
значення величин першого рядка;
· квадратного
кореня підсумку величин другого рядка, при від‘ємному підкореневому виразі
видається повідомлення «Помилка 1»;
· натурального
логарифму від підсумку величин третього рядка, при від‘ємному значенні підсумка
видається повідомлення «Помилка 2»;
c)
отримані
результати виводяться з відповідним визначенням (наприклад, «розрахунок для
першого рядка»).
Тема 5. Використання рядків типу string. Використання
структур.
Основні відомості щодо типу
string. Деякі функції для
обробки рядків типу string. Основні відомості щодо типу структура. Доступ до
полів структури. Приклади коду. Опитування.
Для самостійного вивчення: Поглибити матеріал лекції за
наданою літературою.
Література [1; 4; 6-9; 11; 13-16]
Лабораторна
робота №4. Створення програм обробки рядків типу string та структур мовою
С++
Мета: навчитись складати й реалізовувати алгоритми та програми
мовою С++ з використанням символьних величин різного типу, а також структур в середовищі програмування С++ Builder.
Контрольні запитання.
1. Які оператори введення-виведення символьних масивів ви знаєте?
В яких випадках вони використовуються?
2. Як визначається кінець рядка?
2. Як описуються дані типу структура?
3. Які типи полів може містити структура?
4. Які існують способи ініціювання полів структури?
5. Що таке «вкладеність» структур?
6. Як здійснюється робота з типом struct з використанням покажчиків?
7. Як реалізується доступ до елементів масиву типу структура?
Постановка
задачі: виконати 2 завдання.
1. Скласти програму оброблення рядків типу string.
a)
Ввести для двох рядків
такі речення,
Better late than never.
It is never too late to
learn.
b)
Визначте довжину кожного рядка і виведіть на екран разом
з відповідним текстом.
c)
Знайдіть у першому реченні позицію слова «than» і поставте перед ним
слово «learn», не забувши розділити їх пробілом.
d)
Об‘єднайте
отриманий результат з другим реченням і запишіть результат до третього рядка,
знайдіть його довжину і виведіть як перші два рядка.
Додаткові бали за виконання цього ж завдання ще і у
варіанті, коли рядки розглядаються як символьні масиви (без використання рядків
типу string).
2. Скласти програму формування показників
успішності студентів, використовуючи змінні типу структура.
a)
Ввести в комп’ютер відомість успішності студентів, які
здали сесію з дисциплін: «Математика», «Фізика» і «Програмування», та
обчислити:
- середній бал кожного студента;
- середній бал групи за кожним
предметом;
- вивести на екран прізвища
відмінників з програмування.
b)
Розробіть структуру, що містить відомості про результати
екзаменів по предмету:
Прізвище та ініціали,
Число балів по першому предмету,
Число балів по другому предмету,
Число балів по третьому предмету.
Прізвище та ініціали,
Число балів по першому предмету,
Число балів по другому предмету,
Число балів по третьому предмету.
c)
Розрахуйте середній результат по групі, визначте
відмінників з програмування. і Виведіть результати: введена інформація про студента,
середні результати по групі по кожному предмету, список відмінників з
програмування.
Тема
6. Базові поняття програмування мови ООП. Інкапсуляція та
приховання інформації. Синтаксис оголошення класу. Специфікатори доступу. (4 години)
Визначення ООП. Поняття об'єкта в ООП. Організація програми з точки зору
ООП моделі. Поняття повідомлення. Поняття класу. Принципи
об'єктно-орієнтованого підходу: інкапсуляція, успадкування, поліморфізм.
Поняття інтерфейсу і реалізації. Відмінності між процедурним і
об'єктно-орієнтованим підходами. Переваги ОО підходу.
Оголошення
класу. Члени класу. Специфікатори доступу до членів класу. Правила
створення розділів класу. Зображення класу на мові UML. Операція розв’язання видимості ::. Простір імен – namespace. Різниця між struct і class.
Для самостійного вивчення: Поглибити матеріал лекції за
наданою літературою.
Література [3; 9, 17, 18]
Контрольні запитання.
1. Назвіть основні засади об’єктно-орієнтованого
програмування
2. Дайте визначення об’єкта
та чим він характеризується?
3. Назвіть фундаментальні
властивості об'єктно-орієнтованого програмування.
4. Дайте визначення
інкапсуляції, спадкуванню та поліморфізму
5. Назвіть переваги
об'єктно-орієнтованого програмування.
6. Дайте визначення класу та
об’єкту в ООП
7. Що може містити
оголошення класу?
8. Як оголосити клас на мові
С++?
9. Де може бути визначена
(описана) функція класу?
10. Порівняйте виклик
члена-функції класу у функціях класу та поза функціями цього класу.
11. Назвіть специфікатори
доступу до членів класу.
12. Чи може з'являтися у
визначенні класу один і той же специфікатор доступу багато разів?
13. У якому порядку можуть
з'являтися специфікатори доступу до членів класу?
Лабораторна
робота №5. Складання програм
з використанням найпростіших класів та об’єктів.
Мета: Набуття навичок в розробці найпростіших
класів та роботі з об’єктами класів.
Порядок виконання роботи
1. Ознайомитися з теоретичними основами та принципами С++ як мови ООП, поняттями інкапсуляція та приховування
інформації, синтаксисом оголошення класу, встановленням специфікаторів доступу.
2. Створити клас Person, який
вміщує інформацію про деяку людину. Тіло класу включає дані (члени-дані),
функції (члени-функції) і специфікатори доступу до членів класу. Змінна типу Person повинна вміщувати наступну: код
особи, прізвище, ім’я та по–батькові; рік народження; телефон; стать. На цьому
етапі створити один екземпляр класу Person.
Створити методи-члени класу для операцій: заповнення членів-даних значеннями по
замовчуванню (для початкового тестування), консольне введення і виведення
значень екземплярів класу Person,
причому код особи задавати програмно.
Винесіть оголошення класу (інтерфейсу) у файл
заголовка, який зазвичай має розширення «.h». Реалізацію ( визначення
функцій-членів) запишете у файл з розширенням «.cpp».
3. Розробити тест для перевірки правильності
роботи даної програми.
Вимоги до програм
Програми здаються у вигляді
вихідних текстів програми (*.cpp,
*.h) з
іменами у фоматі <Номер
групи><Номер лабораторної>[-<Номер завдання>]<Прізвищеанглійською>. Наприклад,3102-1buts.cpp.
Програмне
забезпечення лабораторної роботи повинно бути основане на принципах
об’єктно-орієнтованого та структурного програмування. Програма повинна
включати:
- опис структури кожного класу, яка містить
блок опису даних класу; конструктори, деструктори, функції введення даних
класу, функції виведення результатів розв’язання задачі та функції обробки
даних класу,
- опис всіх функцій кожного класів;
- функцію main(), в якої описані декілька
об’єктів розроблених класу та програмний код використання цих об’єктів для
розв’язання поставленої задачі з доцільними коментарями.
Контрольні
запитання
1. В чому полягають основні принципи
ООП?
2. Що таке об’єкт та клас?
3. Чим відрізняються поняття класу та структури у С++? Дайте загальне
визначення класу?
4. Структура класу в С++? Формат типу
class в С++.
5. В чому сутність принципу інкапсуляції?
6. Для чого використовують
інкапсуляцію?
7. Які ви знаєте специфікатори доступу.
8. Як описуються функції-члени класу?
9. Що таке екземпляр класу?
10. Що таке інтерфейс класу та його реалізація?
11. Що відносять до даних-членів класу?
12. Які специфікатори доступу
використовують для даних-членів класу?
13. Вкажіть способи опису класів.
14. Що таке закриті члени класу?
15. Що таке відкриті члени класу?
16. Як організувати доступ до закритих
членів класу?
17. Скільки об'єктів класу може бути
використано в програмі, яка застосовує клас?
18. Які специфікатори доступу використовують для даних-членів класу?
Тема 7. Розподіл поведінки та реалізації (Конструктори.
Ініціалізації даних. Аксессори ). (4 години)
Директива using. Inline функція.
Селектори і модифікатори. Покажчик This. Конструктори. Визначення.
Дії, які
виконують конструктори. Основні
правила роботи з конструкторами. Види конструкторів. Конструктор і оператор копіювання. Явний та
неявний виклик конструкторів. Конструктори екземпляра. Деструктори. Аксессори.
Для самостійного вивчення: Розібрати приклад з комплексними числами в главі 4 та задачу в главі 5 [18],
оформити і здати відповідні програми. Поглибити матеріал лекції за наданою
літературою.
Література [3; 9, 12, 17, 18]
Контрольні запитання.
1. Що таке
конструктор?
2. Які бувають
типи конструкторів?
3. Що таке
Конструктор за замовчуванням?
4. Що таке
перевантаження конструкторів?
5. Дайте визначення
конструктора класу.
6. Для чого призначений
конструктор класу?
7. Які види конструкторів ви
знаєте?
8. Скільки конструкторів
можна оголосити у класі?
9. Як у класі оголосити
конструктор з параметрами?
10. Для чого призначений
деструктор класу?
11. Скільки деструкторів
можна оголосити у класі?
12. Як викликається
конструктор і деструктор?
13. Якщо клас має декілька
конструкторів, то який з конструкторів викликається при створенні об’єкта цього
класу?
14. Чи завжди необхідно
описувати в класі деструктор? Якщо ні, то в яких випадках?
Лабораторні роботи №7-8. Складання програм з використанням різних
типів конструкторів, аксесорів та модифікаторів.
Мета: Набуття навичок
в розробці програм, де використовуються класи та об’єкти класів.
Контрольні запитання
1. Якщо в
програмі повинні виконуватися якісь дії по обробленню введених даних перед
створенням/модифікацією об‘єкта певного класу або по перетворенню даних перед
записом до файлу, чи доцільно створювати в цьому класі методи читання / запису
даних до файлу?
2. Як здійснюється
ініціалізація даних-членів класу?
3. Що таке об’єкт
класу?
4. Наведіть приклад
об’єкту класу.
5. Як задати початкові
значення даним-членам класу (всі способи)?
6. У чому полягає роль конструкторів та
деструкторів у класі?
7. Які способи можна застосувати для
ініціалізації об’єкта класу? Як для цього застосовуються конструктори?
8. Уява об’єкта у пам’яті.
9. В чому різниця між inline-функціями та іншими функціями-членами класу?
10. Чи можна
присвоювати значення одного об’єкта іншому.
11. Які
специфікатори видимості для членів класу ви знаєте?
12. Чи
можливо створювати масиви об’єктів?
13. Для чого
використовується покажчик this?
14. Чи
можливо передавати об’єкти як аргументи функціям?
15. Чи
можливо щоб функція повертала значення типа клас?
Порядок виконання роботи
1. Продовжити працювати над
програмою минулих лабораторних робіт клас Person.
2. Замінити методи запису/читання даних до/з
файлу класу Person відповідними
функціями.
3.Створити для класу Person три конструктори (порожній, ініціалізації, копіювання) та
деструктор.
4. Створити аксесори та модифікатори до всіх
членів класу.
5. До створеного раніш файлу (дані з
розділювачем ";" та позначкою кінця "#") в текстовому
редакторі додати декілька нових рядків, які разом зі створеними раніше,
прочитати, сформувати екземпляри класу, вивести на консоль використовуючи
аксесори.
6. Ввести ще дані (з консолі) та записати їх
до файлу, додавши після "#" поточну дату.
Вимоги до
програм
Програми здаються у вигляді вихідних текстів
програми (*.cpp, *.h) з іменами у фоматі <Номер групи><Номер лабораторної>[-<Номер
завдання>]<Прізвищеанглійською>. Наприклад,3102-1buts.cpp.
За такими ж правилами формувати імена файлів
даних з додаванням тексту щодо призначення. Наприклад, 3102-1butsPerson.txt.
Програмне забезпечення
лабораторної роботи повинно бути основане на принципах об’єктно-орієнтованого
та структурного програмування. Програма повинна включати:
- опис структури кожного класу, яка містить блок опису
даних класу; конструктори, деструктори, функції введення даних класу, функції
виведення результатів розв’язання задачі та функції обробки даних класу,
- опис всіх функцій кожного класів;
- функцію main(), в якої описані декілька об’єктів
розроблених класу та програмний код використання цих об’єктів для розв’язання
поставленої задачі з доцільними коментарями. Перед кожною функцією повинно бути
визначено її призначення. Першим записом в текстах повинен бути коментар з
номером групи та прізвищем розробника.
Тема 8. Класи та підкласи (Відношення
клас-підклас. Дружні функції та класи.) (4 години)
Статичні елементи класу. Статичні
члени класів. Константні функції-члени класу. Mutable. Внутрішні методи та зовнішні функції. Вкладені класи. Відношення
між класами. Типи відношень. Дружні класи. Дружні функції /
методи. Приклади. Використання заголовочних файлів.
Для самостійного вивчення: Поглибити матеріал лекції за наданою літературою. Вивчення лекційного
матеріалу та додаткових джерел. Розгляд запитань і виконання завдань для
самостійної роботи, запропонованих на лекції.
Література [3; 9, 12, 17, 18]
Контрольні запитання.
1.
Для чого використовуються так звані “друзі” класу?
2.
Яка загальна форма оголошення “дружнього” класу?
3.
Яка загальна форма оголошення “дружньої” функції до деякого класу?
4. В
якому місці (розділі) оголошення класу можна оголошувати дружній клас або
функцію?
5.
Скільки “дружніх” функцій та “дружніх” класів можна оголошувати у тілі класу?
6.
Як
отримати об’єкт потрібного класу у “дружній” функції, щоб мати доступ до усіх
його членів?
cЛабораторна робота №9. Розробка програм із використанням
дружніх функцій та класів.
Тема 9. Процедурно-орієнтоване програмування, об’єктне програмування та об’єктно-орієнтоване програмування
Парадігми
програмування. Історія розвитку мов програмування. Процедурне програмування. Об’єктне
(модульне) програмування. Об’єктно-орієнтована парадигма.
Для самостійного вивчення: Процедурно-орієнтоване
програмування. Поняття підпрограми. Організація підпрограм. Принцип локалізації.
Концепція розподілу пам’яті. Класифікація способів передачі параметрів.
Загальне поняття перевантаження функцій та шаблонів функцій.
Література [3; 4, 13, 17, 21, 22]
Контрольні запитання.
1.Визначте
основні парадигми мов програмування.
2.Які з мов програмування зробили суттєвий внесок у розбудову сучасних
парадигм?
3.В
чому полягає головний доробок об’єктно-орієнтованої парадигми?
4.Процедурне програмування та структурне програмування – що
їх об’єднує і в чому різниця?
5.Визначте основні принципи об’єктного (модульного)
програмування.
6.В чому полягає розвитокок об’єктно-орієнтованаою
парадигмою інших парадигм програмування?
7. Дайте
визначення підпрограми.
8.В
чому полягає принцип локалізації?
9. Як
розподіляється пам’ять при активізації програми?
10.Визначте способи передачі параметрів.
Тема 10. Проблеми
розробки програмних систем
Причини складності програмних систем. Основні характеристики програм. Показники
якості програми. Проблеми розробки ПЗ. Категорії
помилок в програмному забезпеченні. Оцінка
вартості помилок. Наладка програмного
забезпечення. Засоби і методи наладки. ООП - технологія
створення складного ПЗ.
Для самостійного вивчення: Поглибити матеріал лекції за наданою літературою. Вивчення лекційного
матеріалу та додаткових джерел. Розгляд запитань і виконання завдань для
самостійної роботи, запропонованих на лекції.
Література [3; 13, 17, 21, 22]
Контрольні запитання.
1.
Визначте основні причини складності програмних систем.
2.
Визначте показники якості програм.
3.
Які найбільш поширені проблеми виникають в процесі
розробки ПЗ?
4.
Як можна систематизувати помилки за етапами розробки
програмного продукту?
5.
Визначте найбільш поширені помилки при розробці ПЗ.
6.
Як
визначити вартість помилки ПЗ?
7.
Визначте
найбільш поширені засоби і методи наладки.
8.
Які механізми ООП суттєво спрощують створення складних
систем?
Тема 11. Наслідування. (4 години)
Лекція 1.
Відношення між класами.
Основні принципи наслідування. Принцип підстановки. Форми наслідування. Синтаксис спадкування. Специфікатори доступу. Просте спадкування. Поля і методи при спадкуванні. Спеціальні методи при
спадкуванні. Конструктори при спадкуванні. Деструктори при спадкуванні.
Для самостійного вивчення: Поглибити матеріал лекції за наданою літературою. Вивчення лекційного
матеріалу та додаткових джерел. Розгляд запитань і виконання завдань для
самостійної роботи, запропонованих на лекції.
Література [1; 4, 5, 12, 18]
Контрольні запитання.
1.
Які типи відношень між класами Ви знаєте?
2.
Як пов’язані відношення агрегації і композиції?
3.
Наведіть приклад відношення узагальнення.
4.
Визначте основні концепції наслідування.
5.
В чому полягає принцип підстановки?
6.
Які форми наслідування Ви можете визначити?
7.
В чому полягає просте спадкування?
8.
Як визначається поведінка конструкторів та деструкторів при
спадкуванні?
7. В чому полягає наслідування реалізації?
Лекція 2.
Закрите та відкрите спадкування. Специфікатор
доступу protected. Типи спадкування та доступ до членів. Вирішення конфлікту імен. Оголошення
доступу using.
Приховування імен. Відкриття доступу. Правила відкриття/приховування імен.
Розгляд прикладів.
Для самостійного вивчення: Поглибити матеріал лекції за наданою літературою. Вивчення лекційного
матеріалу та додаткових джерел. Розгляд запитань і виконання завдань для
самостійної роботи, запропонованих на лекції.
Література [1; 4, 5, 12, 18]
Контрольні запитання.
1.
Як
спадкування подано в C++?
2.
Що таке
клас-нащадок/похідний
клас і базовий клас?
3.
Що визначає тип спадкування?
4.
Що таке
публічне, захищене й приватне спадкування?
5.
В яких випадках рекомендується використовувати
відкрите спадкування?
6.
В чому полягає наслідування інтерфейсу?
Лабораторна робота №10.
Розробка програм із використанням простого спадкування.
Подальші лекції, практичні і лабораторні роботи розташовуються на платформі коледжу за адресою:
https://github.com/omc-college/ipz3-introduction_to_object-oriented_programming
Тематика рефератів
1. ООП як інструмент створення складних програмних систем (ІПЗ-31 Савченко М..ІПЗ-32 Щеголь)
2. Сутність і компоненти об'єктного підходу (ІПЗ-32 Яремко Д.)
3. Парадігми і мови програмування. Історія створення С++.(ІПЗ-31 Горбатюк В., ІПЗ-32 Панченко)
4. Структурний та об'єктно-орієнтований підходи у С++ (ІПЗ-31 Мельник Т., Цибенко)
5. Вирішення
неоднозначності перетворенні типів при конструюванні об’єктів (ІПЗ-31 Ващук, ІПЗ-32 Денисенко)
6. Реалізація
черги, стеку, списку в стандартній бібліотеці std (ІПЗ-31Рудчик, Цибенко )
7. Алгоритми
сортування в стандартній бібліотеці std (Мельник,, ІПЗ-32 Непорада)
8. Елементи управління і менеджери компонування в
С++ (ІПЗ-31 Зеленіна)
9. Багатопотокове програмування в С++ (ІПЗ-31 Краснопьоров)
10.Програмне
середовище розробника С++ Builder. Інтегроване середовище розробки програм. Елементи
інтерфейсу, налагодження параметрів.(IПЗ-31 Король Ю.)
11.Програмне
середовище розробника С++ Builder. Проект програми. Багатофайлові проекти.
Програмні модулі. (ІПЗ-З1 Горбатюк В)
12.Програмне
середовище розробника С++ Builder. Налагодження програм, режими покрокового виконання, перегляд
локальних змінних.(ПЗ-31 Горбатюк, ІПЗ-32 Непорада)
13.Адресація, вказівники та масиви в мові С/C++ (з прикладами використання) (IПЗ-31 Король Ю., ІПЗ-32 Пономаренк о)
14.Функції в мовах С/C++ (з прикладами використання) (ІПЗ-31 Зеленіна, ІПЗ-32 Римарук)
15.Випадкові числа. Клас Random. Дата і час. (з прикладами використання)(ПЗ-31 Савченко, Горський)
16. Порівняння можливостей мов С++ та С# (з прикладами використання)( ІПЗ-32 Римарук, ІПЗ-31 Щербатюк Максим)
17.Місце С++ та ООП в сучасному світі створення програмного забезпечення. Перспективи розвитку.(ПЗ-31 Сваріч, ІПЗ-32 Щеголь)
18. C++11 - історія створення, нові можливості і перспектива розвитку.(ІПЗ-32 Денисенко, ПЗ-31 Джура)
19. Роль процедурно-орієнтованого та об’єктне -орієнтованого програмування у вирішенні проблем побудови складних систем (ІПЗ-32 Пономаренк о, ПЗ-31 Джура)
20. * Довершений код. Правила оформлення коду в С++ (Ващук, Івженко)
21. * Довершений код. Використання файлів. (Яремко)
22.*Довершений код. Проектування класів та успадкування (Мельник,Гаращенко)
23. * Довершений код. Дії, яких потрібно уникати при розробленні програм на С++
13.Адресація, вказівники та масиви в мові С/C++ (з прикладами використання) (IПЗ-31 Король Ю., ІПЗ-32 Пономаренк
14.Функції в мовах С/C++ (з прикладами використання) (ІПЗ-31 Зеленіна, ІПЗ-32 Римарук)
15.Випадкові числа. Клас Random. Дата і час. (з прикладами використання)(ПЗ-31 Савченко, Горський)
16. Порівняння можливостей мов С++ та С# (з прикладами використання)( ІПЗ-32 Римарук, ІПЗ-31 Щербатюк Максим)
17.Місце С++ та ООП в сучасному світі створення програмного забезпечення. Перспективи розвитку.(ПЗ-31 Сваріч, ІПЗ-32 Щеголь)
18. C++11 - історія створення, нові можливості і перспектива розвитку.(ІПЗ-32 Денисенко, ПЗ-31 Джура)
19. Роль процедурно-орієнтованого та об’єктне -орієнтованого програмування у вирішенні проблем побудови складних систем (ІПЗ-32 Пономаренк
20. * Довершений код. Правила оформлення коду в С++ (Ващук, Івженко)
21. * Довершений код. Використання файлів. (Яремко)
22.*Довершений код. Проектування класів та успадкування (Мельник,Гаращенко)
23. * Довершений код. Дії, яких потрібно уникати при розробленні програм на С++
24. В яких випадках краще не
використовувати ООП (Киричок)
25. Використання класів
колекцій стандартної бібліотеки (з прикладами) (Рудчик)
26. Використання поліморфізму
та шаблонів у С++ (з прикладами) (Король,Тищенко)
27. С++. Переваги та недоліки
у порівнянні з іншими сучасними мовам (Рудчик)
28. Роздільна компіляція на
С++. Проблеми, що виникають та шляхи їх подолання (Горбатюк)
29. Переваги та недоліки ООП (Савченко)
30. Порівняння
об’єктно-орієнтованого та процедурно-орієнтованого програмування (Зеленіна)
31 Інтерфейси та абстрактні
класи в С++ (з прикладами)
32. ООП типові проблеми та
помилки при проектуванні та розробці програм на с+
* За позначеними темами студенти
підбирають матеріал щодо правил хорошого стилю програмування,
прийнятого в спільноті розробників С++
(перелік джерел надається нижче). Матеріал оформлюється у вигляді
реферату, де кожна позиція правил супроводжується прикладом і поясненням щодо
доцільності цього правила (позитивні та негативні сторони застосування), а
також, в разі потреби, рекомендаціями щодо його застосування. Підготовлений
матеріал обговорюється (в рамках проведення ЛР або лекції) та формулюються
зведення правил, яких в подальшому дотримуються при розробці власних програм (в
рамках ЛР, або курсових проектів).
Джерела до
рефератів
Скотт Мейерс. Эффективное
использование C++. 50 рекомендаций по улучшению ваших программ и проектов. "ДМК", 2000; 240 с.
Скотт Мейерс. Наиболее
эффективное использование C++. 35 новых рекомендаций по улучшению ваших
программ и проектов."ДМК",2000;304 с.
Інформаційні
ресурси
ВИМОГИ до оформлення реферату див.
https://ru.calameo.com/read/002828893b19e88726053
та https://helpiks.org/5-99435.html, до оформлення списків літератури - .http://vippo.org.ua/files/pedposhyk/spuslit-1557135224.pdf
Індивідуальні завдання - Програма С++
1.Програма «Послуги фітнес-центру»
2.Програма «Облік в приватному медичному центрі»
3.Програма «Послуги мережі салонів краси»
4.Програма «Послуги піцерії (з урахуванням доставки на дом)»
5.Програма «Готель (облік клієнтів, послуги)»
6.Програма «Облік товарів на складі»
7.Програма «Послуги турагентства»
Програма розробляється на основі об’єктно-орієнтованої парадигми програмування зі створенням системи класів, яка моделює обрану предметну область і може служити основою для повноцінної інформаційної системи, а також в подальшому використовуватися основою для курсових робіт. Функціональне наповнення обговорюється з викладачем.
1.Програма «Послуги фітнес-центру»
2.Програма «Облік в приватному медичному центрі»
3.Програма «Послуги мережі салонів краси»
4.Програма «Послуги піцерії (з урахуванням доставки на дом)»
5.Програма «Готель (облік клієнтів, послуги)»
6.Програма «Облік товарів на складі»
7.Програма «Послуги турагентства»
Програма розробляється на основі об’єктно-орієнтованої парадигми програмування зі створенням системи класів, яка моделює обрану предметну область і може служити основою для повноцінної інформаційної системи, а також в подальшому використовуватися основою для курсових робіт. Функціональне наповнення обговорюється з викладачем.
Немає коментарів:
Дописати коментар