Зміст
Java
Теорія
- I. Базовий курс Java
- 1. Java. Загальні відомості
- 2. Типи даних. Літерали. Ключові слова. Змінні
- 3. Операції
- 4. Керуючі оператори
- 4.1. Оператор умовного переходу if
- 4.2. Оператор вибору switch. Вкладені оператори switch
- 4.3. Конструкція if-else-if
- 4.4. Цикли for, while, do..while. Приклади використання. Розв’язки задач з використанням циклів.
- 4.5. Розширений цикл for в стилі foreach. Загальна форма. Приклади. Обробка масивів, колекцій об’єктів ArrayList, LinkedList
- 4.6. Оператори break, continue. Приклади застосування
- 5. Масиви
- 6. Рядки символів
- 7. Класи. Методи в класах
- 7.1. Класи та об’єкти
- 7.1.1. Застосування класів у програмах на Java. Визначення класу та об’єкту класу. Приклади
- 7.1.2. Об’єкти. Створення та збереження об’єктів класів. Оператор new. Області зберігання даних в пам’яті. Використання масивів посилань на об’єкти
- 7.1.3. Область дії об’єктів (scope). Видалення об’єктів. Переваги використання підходу “збору сміття” (garbage collection) для об’єктів
- 7.2. Конструктори
- 7.3. Ініціалізація в класах
- 7.4. Методи у класах
- 7.4.1. Поняття методу. Загальна форма. Параметри методу. Повернення з методу. Оператор return. Повернення об’єкту з методу. Приклади методів
- 7.4.2. Методи. Передача параметрів у методах класу. Передача змінних простих типів та об’єктів у метод в якості параметру
- 7.4.3. Перевантаження методів у класах. Перевантаження конструкторів
- 7.4.4. Аргументи змінної довжини у методах. Перевантаження методів з аргументами змінної довжини. Властивість length
- 7.4.5. Рекурсія
- 7.5. Статичні члени даних класу. Статичні методи. Ключове слово static
- 7.6. Специфікатор final. Незмінні дані, методи, класи. Пусті константи. Статичні незмінні дані
- 7.1. Класи та об’єкти
- 8. Вкладені класи
- 8.1. Вкладені та внутрішні класи. Статичні вкладені класи. Приклади
- 8.2. Створення об’єктів вкладених статичних та нестатичних класів. Конструкції .this та .new
- 8.3. Приклади застосування внутрішніх класів в поєднанні з інтерфейсами. Низхідне та висхідне перетворення. Переваги застосування висхідного перетворення
- 9. Інкапсуляція. Управління доступом. Пакети
- 9.1. Інкапсуляція. Управління доступом в класі. Модифікатори private, protected, public
- 9.2. Пакети. Використання пакетів у Java. Директиви import та package. Компільовані модулі (.java). Проміжні .class файли. Використання стандартних бібліотек Java
- 9.3. Управління доступом до класів у пакетах. Пакетний рівень доступу до класу. Загальнодоступний(public) рівень доступу до класу
- 10. Спадковість у класах. Поліморфізм
- 10.1. Повторне використання коду в класах. Поняття композиції, спадковості, делегування. Ключове слово extends. Приклади
- 10.2. Спадковість. Основні поняття. Суперклас та підклас. Ключове слово extends. Приховування даних в успадкованих класах. Модифікатори доступу private, protected, public
- 10.3. Спадковість. Посилання на об’єкт підкласу. Виклик конструктора суперкласу. Ключове слово super
- 10.4. Перевизначення та перевантаження успадкованих методів. Приклади. Динамічна диспетчеризація методів. Поліморфізм
- 11. Абстрактні класи. Інтерфейси
- 12. Виключення
- 13. Зчислення (перерахунки). Автоупакування. Анотації
- 13.1. Зчислення (enumeration). Загальні поняття. Ключове слово enum. Приклади
- 13.2. Використання зчислень як класів. Приклади оголошення зчислень, що містять конструктори, внутрішні поля, методи
- 13.3. Автоупакування та авторозпакування. Загальні поняття. Використання при присвоєнні (=) та в методах. Приклади
- 13.4. Автоупакування та авторозпакування у виразах та операторі switch. Використання автоупакування та авторозпакування значень для типів boolean та char
- 14. Система вводу/виводу. Робота з файлами
- 14.1. Система вводу/виводу Java. Потік. Байтові потоки. Символьні потоки. Стандартні потоки
- 14.2. Робота з консоллю в Java. Класи InputStreamReader, PrintStream. Створення потоку вводу/виводу зв’язаного з консоллю. Перенаправлення потоків вводу виводу
- 14.3. Робота з файлами в Java. Клас File. Основні методи роботи
- 14.4. Байтові потоки. Класи DataInputStream, DataOutputStream, FileInputStream, FileOutputStream. Приклади використання
- 14.5. Приклади реалізації операцій, які модифікують текстові файли. Класи FileReader, FileOutputStream, PrintStream
- 14.6. Автоматичне закриття файлу. Оператор try з ресурсами. Приклади
- 14.7. Серіалізація об’єктів. Ключове слово transient. Приклади
- 15. Узагальнення
- 16. Додаткові можливості Java
- 17. Лямбда-вирази. Функціональні інтерфейси. Посилання на методи
- 17.1. Лямбда-вирази. Основні поняття. Функціональний інтерфейс. Приклади
- 17.2. Лямбда-вирази для узагальнених функціональних інтерфейсів. Приклади
- 17.3. Передача лямбда-виразу в метод в якості параметру. Приклади
- 17.4. Генерування виключень у лямбда-виразах. Приклади
- 17.5. Доступ до елементів класу з лямбда-виразу. Захоплення змінних у лямбда-виразах. Приклади
- 17.6. Види посилань на методи. Посилання на статичні методи. Посилання на методи екземпляру
- 17.7. Посилання на конструктори класу
- 17.8. Стандартні (наперед визначені) функціональні інтерфейси Java
- 18. Потоки даних. Stream API
- 18.1. Потоки даних. Stream API. Загальна інформація
- 18.2. Поняття кінцевої та проміжної операції
- 18.3. Інтерфейс BaseStream. Приклади використання методів інтерфейсу
- 18.4. Інтерфейс Stream<T>. Проміжні методи filter(), map(), mapToDouble(), mapToInt(), mapToLong(), sorted(). Приклади
- 18.5. Інтерфейс Stream<T>. Кінцеві методи collect(), count(), foreach(), max(), min(), reduce(), toArray(). Приклади
- 19. Потоки виконання (Threads)
- 19.1. Багатозадачність. Потоки виконання. Основні поняття
- 19.2. Засоби Java для роботи з потоками виконання. Клас Thread. Інтерфейс Runnable. Головний потік. Створення дочірнього потоку
- 19.3. Методи класу Thread: getName(), run(), start(), sleep(). Приклади
- 19.4. Методи класу Thread: join(), isAlive(), getPriority(), setPriority(). Приклади
- 19.5. Синхронізація. Монітор. Загальні поняття. Ключове слово synchronized
- 19.6. Взаємодія між потоками. Методи wait(), notify(), notifyAll(). Приклади
- 19.7. Стани потоку виконання. Метод getState(). Приклад
- II. Бібліотека Java
- 1. Пакет java.lang
- 1.1. Пакет java.lang. Загальні відомості. Огляд класів та інтерфейсів
- 1.2. Класи пакету java.lang
- 1.2.5. Клас Character
- 1.2.11. Клас Enum. Методи класу Enum: clone(), compareTo(), getDeclaringClass(), hashCode(), name(), ordinal(), toString()
- 1.2.16. Клас Math
- 2. Пакет java.util
- 2.1. Java Collection Framework
- 2.1.1. Загальні відомості про Java Collection Framework
- 2.1.2. Клас ArrayList
- 2.1.2.1. Клас ArrayList. Динамічний масив. Загальні відомості. Створення масиву
- 2.1.2.2. Методи, що змінюють дані в масиві. Методи add(), addAll(), clear(), remove(), removeAll(), removeIf(), replaceAll(), set(), sort()
- 2.1.2.3. Методи, що визначають інформацію про елементи масиву. Методи get(), contains(), containsAll(), indexOf(), lastIndexOf(), iterator(), listIterator()
- 2.1.2.4. Методи, що визначають загальні характеристики масиву. Методи ensureCapacity(), isEmpty(), size(), trimToSize()
- 2.1.2.5. Методи, що перетворюють масив у цілому. Методи clone(), sublist(), toArray(), retainAll()
- 2.1. Java Collection Framework
- 1. Пакет java.lang
Практика
- 1. Розробка класів
- 2. Stream API
- 3. Розв’язування задач. Приклади
- 4. JUnit
Pascal/Delphi
Pascal. Теорія
- I. Структурне програмування. Базовий курс
- 1. Розробка програм на ПК. Алгоритми
- 1.1. Розробка програм на ПК. Етапи підготовки програми на ПК. Компілятори, інтерпретатори
- 1.2. Поняття алгоритму. Способи запису алгоритмів. Класифікація алгоритмів за структурою. Властивості алгоритмів
- 1.3. Принципи структурного програмування. Модульна побудова програм
- 1.4. Алгоритмічна мова. Склад алгоритмічної мови. Опис мови
- 2. Базові поняття мови Паскаль. Типи даних. Змінні, константи
- 2.1. Структура програми на мові Паскаль
- 2.2. Типи даних. Стандартні типи даних
- 2.3. Користувацькі типи даних
- 3. Базові синтаксичні конструкції мови Паскаль
- 3.1. Елементарні конструкції мови Паскаль
- 3.2. Оператори управління обчислювальним процесом
- 3.4. Масиви
- 3.5. Рядки символів типу String
- 3.6. Записи. Записи з варіантами
- 1. Розробка програм на ПК. Алгоритми
Delphi. Практика
1. Delphi – 7.
- 001 – Створення таблиць баз даних з допомогою утиліти Database Desktop.
- 002 – Створення перехресних таблиць в Delphi.
2. Embarcadero RAD Studio 2010.
- 001 – Приклад програмування події в Delphi 2010
- 002 – Програма розрахунку площі круга та об’єму кулі
- 003 – Приклад створення нового проекту як Windows-додатку в Embarcadero RAD Studio 2010
- 004 – Створення нової форми та підключення її до основної форми програми
- 005 – Розробка додатку “Магазин” (курсова робота)
- 006 – Встановлення порядку табуляції елементів управління на формі
- 007 – Створення меню. Компонент TMainMenu
- 008 – Приклад підключення бази даних Microsoft Access до додатку в Delphi
- 009 – Приклад створення розрахункових полів в компоненті TDBGrid в Delphi
- 010 – Приклад сортування в базі даних з використанням компонента TADOQuery
- 011 – Розробка програми формування SQL-запитів до таблиці бази даних
- 012 – Приклад обчислення загальної суми в таблиці бази даних MS Access без використання SQL-запиту
- 013 – Приклад обчислення загальної суми в таблиці бази даних Microsoft Access з використанням SQL-запиту. Компонент TDBText
- 014 – Розробка програми рисування графіку функції двох змінних (3D графіку).
- 015 – Демонстрація методів оперування даними в таблиці базі даних Microsoft Access з допомогою компонента TADOTable
- 016 – Керування відображенням поточного часу в програмі. Компонент TTimer
- 017 – Розв’язок задачі розміщення N ферзів на дошці розміром N×N. Курсова робота
C#
Теорія
- 1. C#. Загальні відомості
- 2. Складові C#. Елементи мови. Типи даних. Ключові слова. Літерали
- 2.1. Ключові слова C#
- 2.2. Категорії (групи) типів даних у C#. Типи-значення. Посилальні типи
- 2.3. Базові типи даних мови C#
- 2.4. Літерали
- 2.5. Змінні та константи. Ініціалізація змінної. Динамічна ініціалізація. Неявно-типізовані змінні
- 2.6. Тип string
- 2.7. Символьний тип даних char. Структура System.Char. Методи структури System.Char
- 2.8. Значення null. Типи даних, допускаючих значення null. Операції ?, ??
- 3. Операції
- 4. Управляючі оператори
- 4.1. Оператор умовного переходу if. Повна та скорочена форми. Конструкція if-else-if
- 4.2. Оператор вибору switch. Вкладені оператори switch
- 4.3. Оператор циклу while. Приклади
- 4.4. Оператор циклу for. Приклади
- 4.5. Оператор циклу do-while. Приклади
- 4.6. Оператор циклу foreach. Приклади
- 4.7. Оператори break, continue, goto
- 5. Масиви
- 5.1. Одновимірні масиви. Приклади розв’язку задач з одновимірними масивами. Масиви структур. Масиви класів. Ініціалізація масиву
- 5.2. Багатовимірні масиви. Ступінчаті масиви. Ініціалізація багатовимірних масивів
- 5.3. Посилання на масиви. Властивість Length. Присвоювання масивів
- 5.4. Неявно типізовані масиви. Ключове слово var
- 5.5. Масиви рядків. Приклади розв’язку найбільш поширених задач
- 6. Структури. Зчислення
- 6.1. Структури. Загальні поняття. Структурна змінна. Модифікатори доступу до структурної змінної. Приклади використання структур в програмі
- 6.2. Структури і методи. Ініціалізація структур. Конструктори в структурах. Властивості в структурах
- 6.3. Використання масивів у структурах. Масиви структур. Вкладені структури. Копіювання структур
- 6.4. Зчислення
- 7. Індексатори. Властивості
- 8. Інтерфейси. Використання інтерфейсів у програмах на C#
- 9. Класи
- 9.1. Загальні поняття. Об’єкти. Дані та методи в класах
- 9.1.1. Поняття класу. Загальна форма оголошення класу. Об’єкт класу. Поля класу. Приклади. Ключове слово this
- 9.1.2. Константні поля в класах. Ключові слова const, readonly
- 9.1.3. Ключове слово this. Призначення. Випадки застосування this у класах. Приклади
- 9.1.4. Ініціалізація в класах. Способи ініціалізації даних в класах. Ініціалізація змінних базових типів. Ініціалізатори об’єктів
- 9.2. Спеціальні функції класу
- 9.3. Динамічне виділення пам’яті. Оператор new. Виділення пам’яті для типів-значень, структур, перечислень, об’єктів класів. Виділення пам’яті для масивів
- 9.4. Методи в класах. Рекурсія
- 9.4.1. Поняття методу. Методи в класах. Повернення з методу. Оператор return. Методи без параметрів. Ключове слово void
- 9.4.2. Передача параметрів у методи
- 1. Передача параметрів у метод. Аргументи і формальні параметри. Приклади. Передача посилання на об’єкт класу в метод
- 2. Модифікатори параметрів ref і out. Приклади. Відмінності між модифікаторами ref і out
- 3. Змінна кількість аргументів у методах. Модифікатор params. Переваги. Приклади методів зі змінною кількістю аргументів
- 4. Передача масивів у методи за значенням. Приклади. Передача масивів структур, класів, зчислень у методи. Передача двовимірних масивів у методи. Повернення масиву з методу
- 5. Передача в метод одновимірних та багатовимірних масивів екземплярів класу як ref та out параметрів
- 6. Необов’язкові аргументи. Переваги. Приклади застосування необов’язкових аргументів. Неоднозначність в необов’язкових аргументах
- 7. Іменовані аргументи. Переваги використання. Приклади
- 9.4.3. Перевантаження методів у класах. Приклади. Переваги. Перевантаження конструкторів
- 9.4.4. Рекурсія. Приклади рекурсивних методів (функцій) в C#
- 9.4.5. Метод Main(). Способи оголошення. Передача аргументів у Main()
- 9.5. Інкапсуляція в класах. Ключові слова private, protected, public, internal
- 9.6. Статичні класи, методи, змінні. Статичні конструктори. Ключове слово static
- 9.7. Вкладені класи. Вкладені статичні класи. Оголошення та використання вкладених класів. Приклади
- 9.1. Загальні поняття. Об’єкти. Дані та методи в класах
- 10. Відношення між класами
- 11. Спадковість. Поліморфізм. Абстрактні класи
- 11.1. Спадковість. Основні поняття. Переваги та недоліки. Загальна форма. Найпростіші приклади. Модифікатор доступу protected
- 11.2. Використання конструкторів у класах при спадковості. Ключове слово base. Приклади
- 11.3. Доступ до елементів базового класу з успадкованого класу. Ключові слова base, new. Приклади
- 11.4. Приклади створення ієрархій класів з використанням успадкування
- 11.5. Поліморфізм
- 11.5.1. Використання посилання на базовий клас. Ключові слова as, is. Способи виклику методів з однаковими іменами в ієрархіях успадкування
- 11.5.2. Приклад доступу до методів та властивостей успадкованих класів з допомогою посилання на базовий клас
- 11.5.3. Поліморфізм. Пізнє та раннє зв’язування. Приклади. Передача в метод посилання на базовий клас. Ключові слова virtual, override, new
- 11.6. Абстрактні класи
- 11.7. Заборона успадкування. Ключове слово sealed. Особливості застосування
- 14. Делегати
- 14.1. Поняття делегату. Оголошення типу делегату. Використання делегатів у програмі. Групове перетворення методів
- 14.2. Використання делегатів, які посилаються на методи екземпляру класу. Приклад
- 14.3. Делегати. Групова адресація. Створення списків викликів методів
- 14.4. Анонімні функції. Анонімні методи. Повернення значення. Передача параметрів
- 14.5. Приклади передачі масивів, структур, класів анонімному методу
- 15. Лямбда-вирази
- 16. Події
- 17. Засоби вводу/виводу. Потоки
- 17.1. Поняття потоку. Архітектура потоків у C#. Потоки з опорними сховищами. Потоки з декораторами. Адаптери потоків
- 17.2. Клас Stream
- 17.3. Потоки з опорними сховищами
- 17.5. Адаптери потоків
- 17.5.1. Класи StreamReader, StreamWriter
- 17.5.2. Класи BinaryReader, BinaryWriter
- 18. Узагальнення (Generics)
- 18.1. Узагальнення. Основні поняття. Узагальнені класи та структури
- 18.2. Узагальнені інтерфейси. Синтаксис оголошення. Реалізація узагальнених інтерфейсів у класах
- 18.3. Узагальнені методи в класах. Синтаксис оголошення. Способи виклику
- 18.4. Узагальнені делегати
- 18.5. Упакування та розпакування. Необхідність застосування узагальнень
- 18.6. Обмежені типи в узагальненнях
- 18.7. Порівняння екземплярів узагальнених типів. Інтерфейси IComparable<T> та IEquatable<T>
- 18.8. Застосування узагальнень при успадкуванні та поліморфізмі
- 18.9. Ієрархії узагальнених типів. Коваріантність. Контраваріантність
- 20. Рефлексія, динамічно завантажувані збірки, пізнє зв’язування
- 20.1. Динамічна ідентифікація типів. Оператори is, as. Приклади
- 20.2. Рефлексія типів. Отримання метаданих типу. Простір імен System.Reflection. Клас System.Type. Способи отримання інформації про тип. Оператор typeof
- 20.3. Приклади отримання інформації про методи, інтерфейси, класи, структури, зчислення, делегати, поля типів, параметри методів, статистичні дані про типи
- 20.4. Динамічно завантажувані збірки. Клас Assembly. Методи Load() та LoadFrom()
- 20.5. Пізнє зв’язування. Виклик методу. Клас System.Activator. Метод Invoke()
- 20.6. Приклади застосування рефлексії на основі пізнього зв’язування
- 21. Атрибути
- ІІ. Бібліотека C#
- III. Елементи управління (Windows Forms Application)
C# – Практика
- Microsoft Visual Studio 2017 – 2019
- Шаблон Console App (.NET Framework)
- 001 – Приклад створення Unit-тесту в MS Visual Studio 2017
- 002 – Приклад розробки програми, яка розміщується в різних файлах. Реалізація успадкування. Засоби Visual Studio 2019 розбиття програми на частини
- 003 – Розробка класу, що реалізує алгоритм лінійного пошуку
- 004 – Розробка узагальненого класу, що реалізує алгоритм сортування вибором
- 005 – Приклади застосування класу FileStream без використання додаткових потоків (декораторів, адаптерів)
- Шаблон Windows Forms
- 001 – Створення п’ятикутної форми
- 009 – Приклад створення немодальної форми. Модальні та немодальні форми
- 016 – Створення документу для роздруку. Елементи управління PrintDocument, PageSetupDialog, PrintDialog, PrintPreviewDialog
- 017 – Розробка програми демонстрації роботи з потоками виконання. Елемент управління BackgroundWorker. Сортування в потоках алгоритмами вставки, бульбашки, вибором
- Шаблон Console App (.NET Framework)
- Microsoft Visual Studio 2010
- Шаблон Windows Forms Application
- 001 – Створення додатку типу Windows Forms Application.
- 002 – Як вивести таблицю бази даних Microsoft Access в компонент DataGridView.
- 003 – Підключення бази даних Microsoft Access в MS Visual Studio.
- 004 – Перевід бази даних Microsoft Access у формат MS SQL Server
- 005 – Приклад програмування події в C#. Розробка програми визначення площі поверхні кулі.
- 006 – Приклад створення та виклику нової форми в C#.
- 007 – Приклад створення Web-додатку в MS Visual Studio – C#.
- 008 – Приклад створення меню в C#. Елемент управління MenuStrip.
- 009 – C#. Курсова робота. Розробка програми автоматизації роботи диспетчера автовокзалу.
- 010 – C#. Розробка додатку копіювання файлів. Клас FileStream.
- 011 – C#. Приклад створення двовимірної матриці на формі. Аналог компоненту TStringGrid в Delphi.
- 012 – C#. Розробка програми читання та запису текстових файлів. Класи StreamWriter та StreamReader.
- 013 – Розробка програми рисування графіку функції двох змінних z = f(x, y) або 3D-графіку
- 014 – Приклад програми демонстрації основних операцій над даними таблиці бази даних MS SQL Server (SQLEXPRESS)
- 015 – Керування відображенням поточного часу в програмі. Компонент TTimer.
- 016 – Приклад розробки додатку демонстрації роботи списків та асоціативних масивів. Класи Dictionary, List, StreamRader.
- 017 – Реалізація концепцій “спадковості” та “поліморфізму” в об’єктно-орієнтованому програмуванні на прикладі побудови двох класів. Інтерфейси ICloneable та IEquatable.
- 018 – Розробка програми, яка демонструє використання запитів на мові LINQ.
- 019 – C# + Бази даних. Приклад створення звіту в локальній базі даних, яка розміщується в “*.mdf”-файлі. База даних типу Microsoft SQL Server
- 020 – Курсова робота. Розробка програми моніторингу забруднення навколишнього середовища
- 021 – Приклад розв’язку задачі, що обчислює характеристики геометричних фігур з використанням делегатів
- 022 – Приклад використання делегату для виклику анонімного методу. Розробка програми знаходження площі трикутника за формулою Герона
- 023 – Приклад створення звіту в додатку. Елемент управління Report Viewer. База даних Microsoft Access
- 024 – Розробка програми демонстрації роботи елементу управління DataGridView
- 025 – Курсова робота. Розробка програми ведення обліку матеріальних засобів (“Інвентаризація”). База даних Microsoft Access
- 026 – Приклад створення Unit-тесту в Microsoft Visual Studio 2010
- 028 – Розв’язок задачі про N ферзів. Курсова робота
- Шаблон WPF Application
- Шаблон ASP .NET Web Application
- Розподілені додатки
- Шаблон Windows Forms Application
Розв’язування задач
- Одновимірні масиви. Цикли for, while, do..while
- Одновимірні масиви. Цикли for, while, do…while в поєднанні з оператором умови if
- Рекурсія. Приклади розв’язку задач
- Приклад рішення задач, що використовують статичні дані та методи в класі
- Текстові файли. Розв’язування задач на зміну текстових файлів. Класи File, StreamReader, StreamWriter
C++, C++/CLI
Теорія
- I. Базовий курс C++
- 1. Загальні відомості про мову C++
- 2. Основні складові C++
- 2.1. Основні (базові) типи даних C++
- 2.2. Ідентифікатори, зарезервовані слова, літерали, управляючі послідовності
- 2.3. Поняття змінної. Оголошення змінної. Операція розширення області видимості :: . Виділення пам’яті для змінної. Константи
- 2.4. Поняття виразу. Операція присвоєння. Перетворення та приведення типів. Ініціалізація. Уніфікована ініціалізація
- 3. Операції
- 4. Управляючі оператори
- 5. Масиви і рядки символів
- 6. Класи для роботи з рядками символів
- 7. Покажчики. Посилання
- 7.1. Загальні поняття. Типи покажчиків. Керовані та некеровані покажчики. Покажчик на функцію. Приклади використання
- 7.2. Некеровані покажчики. Операції над покажчиками. Покажчик на тип void. Виділення пам’яті. Нульовий покажчик. Операція взяття адреси &
- 7.3. Некеровані покажчики і масиви. Покажчик на структуру. Покажчик на клас
- 7.4. Покажчики і рядки символів. Використання покажчиків при перетворенні і конвертуванні рядків (char, string, wchar_t, System::String)
- 7.5. Виділення пам’яті для покажчика. Масиви покажчиків на базові типи, функції, структури, класи
- 7.6. Складені native та managed типи даних. Керовані покажчики (^) в середовищі CLR. Виділення пам’яті. Кваліфікатори ref та value. Керовані покажчики (^) на структури, класи
- 7.7. Посилання (references). Посилання на змінні, структури, об’єднання та об’єкти класів. Відмінності між посиланнями та покажчиками. Приклади
- 8. Функції
- 8.2. Функції і масиви. Передача одновимірного та багатовимірного масиву в функцію. Передача структури і класу в функцію
- 8.3. Аргументи за замовчуванням у функціях
- 8.4. Перевантаження функцій у класах. Перевантаження конструкторів. Доступ до перевантаженої функції за покажчиком. Приклади
- 8.5. Передача у функцію константних параметрів. Повернення функцією константи
- 8.6. Узагальнення в функціях. Шаблонні функції. Ключові слова template, class, typename. Явне “перевантаження” шаблонної функції
- 8.7. Рекурсія. Приклади розв’язку задач. Переваги та недоліки рекурсії
- 9. Структури. Об’єднання. Зчислення
- 9.3. Робота з managed-структурами в середовищі CLR. Кваліфікатори ref і value. Оголошення структурних змінних. Масиви managed-структурних змінних. Ініціалізація managed-структур
- 9.4. Структури і функції. Передача структури в функцію в середовищі CLR. Повернення структури з функції
- 9.5. Структури. Використання методів у структурах. Конструктори в структурах
- 9.6. Структури і спадковість. Структури і поліморфізм. Абстрактна структура. Перевантаження операторів у структурах. Статичні методи в структурах
- 9.7. Об’єднання. Ключове слово union. Приклади використання об’єднань
- 9.8. Зчислення. Ключове слово enum. Переваги використання зчислень. Приклади
- 9.9. Бітові поля в структурах. Приклади
- 10. Динамічне виділення пам’яті
- 11. Препроцесор. Директиви препроцесора
- II. Об’єктно-орієнтоване програмування на C++
- 2. Класи
- 2.1. Поняття класу. Оголошення класу. Об’єкт класу. Класи в середовищі CLR. Інкапсуляція даних в класі
- 2.2. Спеціальні функції класу
- 2.2.1. Конструктор класу. Конструктор за замовчуванням. Параметризовані конструктори. Приклади класів, що містять конструктори
- 2.2.2. Конструктор копіювання. Приклади використання. Передача об’єкту класу в функцію. Повернення об’єкту класу з функції
- 2.2.3. Деструктори. Визначення деструктора. Загальнодоступні та приватні деструктори. Приклади. Відмінності між конструкторами та деструкторами
- 2.2.4. Задавання методів за замовчуванням. Видалені методи. Ключові слова default, delete
- 2.2.5. Конструктор переносу. Оператор переносу
- 2.3. Члени даних класу
- 2.3.1. Використання членів даних класу. Статичні (static) члени даних в класі. Статичні члени даних для native-класів та managed-класів в середовищі CLR
- 2.3.2. Об’єкти класу як члени даних класу. Ініціалізація внутрішнього об’єкту класу з допомогою конструктора. Приклади
- 2.3.3. Посилання на об’єкт класу. Доступ до об’єкту класу за посиланням. Посилання як члени даних класу. Приклади
- 2.4. Функції-члени класу
- 2.4.1. Види функцій-членів класу. Звичайні функції-члени класу. Статичні (static) функції-члени класу. Приклади використання
- 2.4.2. Константні функції-члени класу. Функції-члени volatile
- 2.4.3. Функції-члени класу, що оголошені з константним (const) покажчиком this та непостійним (volatile) покажчиком this
- 2.4.4.Inline функції-члени класу. Ключове слово inline
- 2.5. Інкапсуляція
- 2.6. Класи пам’яті, що можуть оголошуватись при роботі з класами та об’єктами класів. Ключові слова register, extern, static, mutable
- 2.7. Managed та unmanaged класи у Visual C++. Огляд відмінностей роботи. Приклад реалізації managed та unmanaged класів
- 2.8. “Друзі класу”. “Дружні” класи та функції. Ключове слово friend. Приклади
- 2.9. Шаблон класу. Ключове слово template. Переваги використання шаблонів. Аргументи в шаблонах. Приклади
- 2.10. Класи і масиви
- 2.10.1. Масиви об’єктів в unmanaged та managed класах. Приклади. Масив unmanaged–покажчиків на об’єкт класу
- 2.10.2. Ініціалізація масивів значеннями даних з об’єктів класу. Приклади
- 2.10.3. Масиви покажчиків на методи, що є членами класу. Приклади
- 2.9.4. Покажчик на статичний член даних класу. Масиви статичних членів даних. Масиви покажчиків на статичні члени даних класу. Приклади
- 2.11. Поняття побітового копіювання. Приклад. Необхідність використання конструктора копіювання та оператора копіювання для класів, в яких пам’ять виділяється динамічно
- 4. Перевантаження операторів
- 4.1. Перевантаження операторів у C++. Операторна функція. Ключове слово operator. Перевантаження арифметичних операторів +, –, *, /. Приклади реалізації вбудованих операторних функцій
- 4.2. “Дружні” операторні функції: відмінності, реалізація особливості застосування. Перевантаження операторів +, –, *, / з допомогою “дружніх” операторних функцій
- 4.3. Клас DoubleArray. Перевантаження оператора +. Додавання масивів. Динамічне виділення пам’яті у класі. Конструктор копіювання. Недоліки побітового копіювання
- 4.4. Перевантаження інкрементних та декрементних операторів ++, – –. Приклади
- 4.5. Перевантаження скорочених операторів присвоювання +=, -=, *=, /=, %=. Приклади
- 4.6. Перевантаження операторів new та delete. Приклади
- 4.7. Перевантаження оператору присвоювання =. Приклади
- 4.8. Перевантаження оператора індексування елементів масиву [ ]
- 4.9. Перевантаження оператора ( ) виклику функції. Приклади
- 4.10. Перевантаження операторів -> та ‘ , ‘ (кома). Приклади
- 5. Агрегація, композиція, спадковість, поліморфізм, абстрактні класи
- 6. Виключення (exceptions)
- 7. Простори імен. Ключові слова namespace, using. Правила створення просторів імен. Глобальний простір імен
- 9. Динамічна ідентифікація типів. Розумні покажчики
- 10. Файлова система
- 10.1. Файлова система. Загальні принципи роботи. Відкриття закриття файлу. Приклади
- 10.2. Приклади використання засобів C++ для роботи з файлами
- 10.3. Приклади роботи з текстовими файлами. Модифікація файлів. Сортування даних у файлах. Конвертування рядків файлу в масив. Заміна/видалення рядка у файлі. Вставка рядка у файлі
- 10.4. Приклади збереження/читання об’єктів класу. Серіалізація
- 11. Динамічні структури даних
- 11.1. Стек. Способи реалізації. Операції над стеком. Приклад реалізації стеку у вигляді динамічного масиву
- 11.2. Черга. Способи реалізації черги. Представлення черги у вигляді динамічного масиву
- 11.3. Черга з пріоритетами. Приклад реалізації черги з пріоритетами для шаблонного класу. Представлення у вигляді динамічного масиву
- 11.4. Кільцева черга. Розробка шаблонного класу, що реалізує кільцеву чергу
- 11.5. Розробка шаблонного класу, що реалізує стек у вигляді однозв’язного списку
- 11.6. Лінійний однозв’язний список. Загальні відомості. Базові операції над списком
- 11.7. Приклад реалізації лінійного однозв’язного списку для узагальненого типу T
- 11.8. Лінійний двозв’язний список. Загальні відомості. Базові операції над списком
- 11.9. Лінійний двозв’язний список. Приклад шаблонного класу
- 2. Класи
- ІІІ. Бібліотека стандартних функцій і класів C++
- IV. Приклади розробки класів
- 1. Розробка класу, що реалізує масив рядків типу char*
- 2. Розробка класу Random для генерування випадкових чисел
- 3. Розробка шаблонного класу, що реалізує лінійний пошук в одновимірному масиві
- 4. Розробка класу що реалізує алгоритм сортування вибором
- 5. Розробка класу що реалізує “розумний” покажчик
- V. Бібліотека стандартних шаблонів STL
- 1. Бібліотека STL (Standard Template Library). Загальні поняття. Контейнери. Алгоритми. Ітератори. Функтори
- 2. Контейнери
- 2.1. Клас vector. Динамічний масив
- 2.1.1. Загальні відомості про клас vector. Огляд методів. Створення масиву. Способи доступу до елементів вектору
- 2.1.2. Методи, що визначають та змінюють загальні характеристики масиву: size(), max_size(), capacity(), empty(), shrink_to_fit(), resize(), reserve()
- 2.1.3. Методи, що змінюють дані в масиві. Методи push_back(), pop_back(), clear(), swap(), operator=(), swap(), erase(), insert(), assign()
- 2.1.4. Методи, що забезпечують доступ до елементів масиву: at(), front(), back(), data(), begin(), end(), cbegin(), cend(), rbegin(), rend(), crbegin(), crend()
- 2.2. Клас map. Асоціативний контейнер
- 2.2.1. Створення контейнера. Конструктори. Створення пари. Огляд функцій та операторів класу
- 2.2.2. Методи, що забезпечують отримання інформації з контейнера: at(), begin(), end(), count(), empty(), find(), size(), max_size(), operator[]()
- 2.2.3. Методи, що змінюють дані в контейнері: clear(), erase(), insert(), swap(), operator=()
- 2.1. Клас vector. Динамічний масив
Практика
Borland C++ Builder
- 001 – Створення Windows-додатку в Borland C++ Builder.
- 002 – Сортування даних в таблиці бази даних.
- 003 – Формування звіту типу Rave Report на основі таблиці Microsoft Access в C++ Builder.
- 004 – Підключення бази даних Microsoft Access до Windows-додатку.
- 005 – Приклад виведення таблиці бази даних в компоненті DBGrid в C++ Builder.
- 006 – Приклад програмування події в C++ Builder.
- 007 – Приклад розробки програми визначення об’єму циліндра в C++ Builder.
- 008 – C++ Builder. Приклад створення та виклику нової форми з головної форми програми
- 011 – C++ Builder. Розробка додатку розв’язування системи лінійних алгебраїчних рівнянь методом Гауса.
- 012 – Розробка програми рисування графіка функції однієї змінної. Функція задана формулою.
Microsoft Visual Studio 2010-2019
- 001 – Створення простого діалогового додатку Windows типу Dialog Based Application з використанням бібліотеки MFC.
- 002 – Приклад створення діалогового вікна в MS Visual Studio 2010 – C++ (MFC Application).
- 003 – Створення додатку типу Windows Forms Application в MS Visual Studio. Огляд основних файлів проекту.
- 004 – Приклад розробки найпростішого додатку типу Windows Forms на мові C++ в MS Visual Studio.
- 005 – Приклад розробки програми обчислення математичного виразу з перехопленням можливих виключних ситуацій. Використання інструкції try…throw…catch
- 006 – Приклад розробки додатку в якому для обчислення виразу використовується оператор умовного переходу if. Огляд основних властивостей форми
- 007 – Приклад використання оператора switch в програмі. Елемент управління ComboBox
- 008 – Демонстрація використання циклу for в програмі. Приклад обчислення суми ряду
- 009 – Розробка програми обчислення суми від’ємних елементів масиву. Використання елементу управління DataGridView
- 010 – Розробка програми обчислення виразу, що реалізований окремою функцією. Елемент управління PictureBox
- 011 – Приклад створення Unit-тесту в Microsoft Visual Studio
- 012 − Розв’язок задачі розміщення N ферзів на дошці розміром N×N. Курсова робота
- 013 – Контрольна робота. Додаток Console Application. Шаблонний клас CArray – динамічний масив даних
Розв’язування задач
- Одновимірні масиви. Цикли for, while, do…while
- Одновимірні масиви. Цикли for, while, do…while в поєднанні з оператором умови if
- Розв’язування задач. Функції та масиви. Прототип функції. Передача масиву у функцію
- Приклади розв’язку задач на шаблони функцій та перевантаження шаблонів функцій. Обробка масивів
- Рекурсія. Приклади розв’язку задач на рекурсію в C++
- Розробка класу, в якому продемонстровано реалізацію виключної ситуації переповнення для вбудованого типу int
- Приклад створення шаблонного класу Матриця з динамічним виділенням пам’яті
Бази даних
- Теорія
- Основні поняття
- Загальні відомості про бази даних. Історія розвитку систем керування базами даних
- Функції систем керування базами даних
- Поняття системи баз даних. Схема бази даних. Дані. Апаратне та програмне забезпечення
- Однокористувацькі та багатокористувацькі системи. Поняття централізованого керування даними
- Перманентні дані. Тимчасові дані
- Модель “сутність-зв’язок” (entity-relationship model)
- Поняття ER-моделі. Поняття сутності. Атрибути. Види атрибутів
- Підтипи сутностей. Супертип. Приклад. Переваги та недоліки застосування підтипів сутностей
- Поняття зв’язку в ER-моделі. Потужність зв’язку. Типи зв’язків. Приклади
- Сильні та слабкі зв’язки між типами сутностей. Унарні зв’язки. Рекурсивний зв’язок
- Реляційна модель даних
- Нормалізація
- Основні поняття
- Практика
- Microsoft SQL Server
- Бази даних Microsoft SQL Server, що розміщуються в “*.mdf”-файлах
- 001 – Приклад створення/підключення локальної бази даних Microsoft SQL Server, яка розміщується в “*.mdf”-файлі
- 002 – Приклад створення нової таблиці в базі даних типу Microsoft SQL Server, яка зберігається в “*.mdf”-файлі
- 003 – Створення поля автоінкременту (лічильника) в таблиці бази даних Microsoft SQL Server, яка розміщується в “*.mdf”-файлі
- 004 – Створення зв’язку (відношення) типу “один до багатьох” між таблицями бази даних MS SQL Server
- 005 – Приклад створення “*.mdf” файлу локальної бази даних Microsoft SQL Server в системі Microsoft Visual Studio
- 006 – Рядок з’єднання з базою даних Connection String. Приклад використання у програмі
- 007 – Приклад створення запиту в базі даних
- 008 – Приклад створення представлення (view) в базі даних. Створення обислювального поля
- Бази даних Microsoft Access