C++ course delivered in mech-math KNU
Full lectures and presentations, examples. Pt 1 manual: LectC.pdf
Old projects: https://github.com/mecchmatProjects/C-Projects
methodicCPP.pdf
Модуль 1. Основні елементи синтаксису Сі
lect 1: Лекція 1. Історія Сі та Сі++. План курсу. Вигляд мінімальної програми на Сі. Програмні блоки. Як створити проект та компіляція програми. Введення-виведення для стандартного Сі на Сі++. Базові операції. Лінійні програми. Дійсні типи даних. Використання опцій для різного типу вводу/виводу та точності вхідних і вихідних параметрів.
lect 2: Лекція 2. Цілі типи даних. Логічні операції. Бітові операції. Оператори керування на Сі та Сі++. Типи циклів та їх реалізація.
lect 3: Лекція 3. Вказівники. Робота з масивами на Сі. Виділення памяті на Сі. Рядковий тип даних на Сі. Передача даних через аргументи функції. Вказівники на функції.
lect 4: Лекція 4. Типи даних на Сі. Модифікатори доступу та зберігання. Особливості переводу одого типу в інший. Визначення функцій на Сі. Головна функція. Області доступу змінних. Статичні змінні.
lect 5: Лекція 5. Структури на Сі. Створення власних типів. Робота з файлами на Сі. Особливості роботи з бінарними та текстовими файлами.
lect 6: Лекція 6. Модульні структура програм, загловочні файли, типовий вигляд проекту на Сі та його компіляція. Препроцесорні команди (макроси). Створення та використання бібліотек.
Модуль 2. Основи Сі++
lect 7: Лекція 1. Введення-виведення для потоків виведення Сі++. Використання опцій для різного типу виводу та точності вхідних і вихідних параметрів (iomanip). Відмінності мінімальної прогами на Сі++ від Сі. Робота з файлами на Сі++. Вказівники та посилання.
lect 8: Лекція 2. Загальні принципи обєктно-орієнтованого програмування. Абстракція. Інкапсуляція. Наслідування. Обєктно-орієнтоване програмування на Сі++. Параметри доступу, типи наслідування. Статичні члени та методи класу. Варіанти роботи з рядковим типом даних на Сі++.
lect 9: Лекція 3. Конструктори та деструктори класів. Варіанти їх створення. Поліморфізм. Невіртуальні методи, віртуальні методи та абстрактні класи. Спеціальні методи, конструктори копіювання та присвоєння. Перезавантаження операторів. Множинне наслідування. Проблеми множинного наслідування. Вступ до паттернів програмування. Типовий вигляд проекту.
lect 10: Лекція 4. Виключення та їх обробка на Сі++. Створення власного виключення. Оператори приведення static_cast, dynamic_cast, const_cast, reinterpret_cast, C-style cast.
lect 11: Лекція 5. Простори імен. Їх визначення та застосування. Шаблони функцій та їх застосування. Шаблони класів та їх застосування.
lect 12: Лекція 6-8. Стандартна бібліотека шаблонів. Контейнери. Пакети vector, array. Deque, list. Ітератори. Set/Multiset. Map/Multimap. Функтори та алгоритми