
- •Лабораторна робота №1
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості Масиви динамічної пам'яті
- •Приклад виконання завдання 1
- •Лістинг програми
- •Приклад виконання завдання 2
- •Лістинг програми
- •Приклад виконання завдання 3
- •Лістинг програми
- •Контрольні запитання
- •Лабораторна робота №2
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Читання і запис текстових файлів
- •Читання і запис бінарних файлів
- •Відкриття бінарних файлів
- •Файли з послідовним доступом
- •Запис даних у файл з послідовним доступом
- •Файли з довільним доступом
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №3
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості
- •Обмеження доступу до членів класу
- •Специфікатори доступу
- •Вбудовані функції-члени
- •Приклад виконання завдання 1.
- •Приклад виконання завдання 2.
- •Приклад виконання завдання 3.
- •Контрольні запитання
- •Лабораторна робота №4
- •Порядок виконання роботи
- •Завдання 2
- •Теоретичні відомості Конструктори і деструктори
- •Правила роботи з конструкторами і деструкторами
- •Варіант 10. Розробити описовий алгоритм, схему алгоритму і написати метод для підрахування кількості слів в текстовому файлі.
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №5
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Принципи спадкування в ооп
- •Оголошення похідних класів
- •Конструктори похідного класу
- •Функції члени похідного класу
- •Заборонені члени класу (Protected)
- •Приклад виконання Завдання 1
- •Контрольні запитання
- •Лабораторна робота №6
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Перевантаження операторів
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Приклад виконання завдання 3
- •Приклад виконання завдання 4
- •Контрольні запитання
- •Лабораторна робота №7
- •Порядок виконання роботи
- •Завдання 1.
- •Завдання 2.
- •Теоретичні відомості
- •Структура наслідування класів
- •Постановка задачі
- •Розробити клас трикутника, чотирикутника, кола, точки
- •Контрольні запитання
- •Лабораторна робота №8
- •Порядок виконання роботи
- •Завдання 1
- •Контрольні запитання
- •Лабораторна робота №9
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Множинне спадкування
- •Контрольні запитання
- •Лабораторна робота №10
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Шаблони
- •Параметризовані класи
- •Визначені об’єкти-потоки
- •Операції поміщення та вилучення
- •Приклад виконання Завдання з варіанту 2
- •Контрольні запитання.
- •Лабораторна робота №11
- •Порядок виконання
- •Завдання 1
- •Завдання 2
- •Завдання 3 Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
- •Ітератори
- •Для роботи з вектором необхідно:
- •Приклад роботи з вектором
- •Алгоритми
- •Застосування алгоритмів до вектора
- •Приклад 1 виконання Завдання 1
- •Приклад 2 виконання Завдання 2
- •Приклад 3 виконання завдання №3
- •Контрольні запитання
- •Завдання 1
- •Теоретичні відомості Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання
- •Завдання 2.
- •Теоретичні відомості
- •Стандартні потоки для базових класів
- •Форматування даних при обмінах з потоками
- •Маніпулятори
- •Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Контрольні запитання
Специфікатори доступу.
Як описуються функції-члени класу?
Що таке екземпляр класу?
Що відносять до даних-членів класу?
Як здійснюється ініціалізація даних-членів класу?
Що таке конструктор? Наведіть приклад.
Що таке деструктор? Наведіть приклад.
Правила роботи з конструктором. Наведіть приклади.
Правила роботи з деструктором. Наведіть приклади.
Правила програмної організації конструктора в С++.
Правила програмної організації деструктора в С++.
Призначення конструктора.
Призначення деструктора.
Структура конструктора.
Структура деструктора.
Вимоги до вхідних даних конструктора та деструктора.
Вимоги до вихідних даних конструктора та деструктора.
Навести приклади використання декількох конструкторів в одному класі.
Лабораторна робота №5
Тема: Розробка програм з використанням принципів простого спадкування.
Мета: Набуття навичок в проектуванні найпростіших ієрархій класів, розробка найпростіших програм з використанням ієрархії класів.
Порядок виконання роботи
Ознайомитися з теоретичними основами розробки ієрархії класів та правилами їх використання.
Розробити ієрархію з мінімум 2 класами для роботи з текстовими даними (масивом рядків) яка складається з:
а) базового класу, який містить: два конструктора, деструктор, функцію визначення довжини тексту, функцію визначення кількості рядків в тексті, функцію визначення кількості слів в тексті, функцію визначення кількості пробілів у тексті, функцію видалення зайвих пробілів з тексту.
б) похідного класу, що містить функцію з завдання 1.
Розробити тести для перевірки вірності даної програми.
Оформити звіт до лабораторної роботи.
Завдання 1
Розробити метод-член похідного класу копіювання заданої кількості символів з заданої позиції в заданий рядок.
Розробити метод-член похідного класу визначення частоти повторення символів.
Розробити метод-член похідного класу видалення заданої кількості символів з заданої позиції.
Розробити метод-член похідного класу видалення символів, які повторюються.
Розробити метод-член похідного класу визначення кількості слів, які повторюються.
Розробити метод-член похідного класу визначення кількості повторювань заданого набору символів.
Розробити метод-член похідного класу визначення кількості слів в заданому тексті.
Розробити метод-член похідного класу вставки заданого рядка в початок тексту.
Розробити метод-член похідного класу вставки заданого рядка в кінець тексту.
Розробити метод-член похідного класу вставки в заданою позицію заданого рядка в текст.
Завдання 2
Номери варіантів наведені в таблиці 5.1.
2.1. Розробити базовий клас «Елемент».
Поля:
ім'я елемента (покажчик на рядок символів);
кількість входів елемента;
кількість виходів елемента.
Методи:
конструктор класу;
деструктор класу;
метод, що задає ім'я елемента.
2.2. На основі класу «Елемент» описати похідний клас «Комбінаційний», що представляє собою комбінаційний елемент (двійковий вентиль), що може мати кілька входів і один вихід.
Поля:
покажчик, використовуваний для динамічного розміщення полів, що містять значення входів.
Методи:
конструктор;
конструктор копіювання;
деструктор;
метод, що задає значення на входах екземпляра класу;
метод, що дозволяє опитувати стан окремого входу екземпляра класу;
метод, що обчислює значення виходу (по варіанту завдання);
2.3. На основі класу «Елемент» описати похідний клас «Пам'ять», що представляють собою тригер. Тригер має входи, що відповідають типу тригера (див. нижче варіант завдання), і входи установки і скидання. Усі тригери вважаються синхронними, сам синхровхід до складу тригера не включається.
Поля:
масив значень входів об'єкта класу (задається статично), у масиві враховуються усі входи (керуючі й інформаційні);
стан на прямому виході тригера;
стан на інверсному виході тригера.
Методи:
конструктор (за замовчуванням скидає екземпляр класу);
конструктор копіювання;
деструктор;
метод, що задає значення на входах екземпляра класу;
методи, що дозволяють опитувати стан окремого входу екземпляра класу;
метод, що обчислює стан екземпляра класу (по варіанту завдання) у залежності від поточного стану і значень на входах;
метод, що перевизначає операцію == для екземплярів класу.
2.4. Створити клас «Регістр», використовуючи клас «Пам'ять» як «вмикаючий» клас.
Поля:
стан входу «Скидання» — один для екземпляра класу;
стан входу «Установка» — один для екземпляра класу;
статичний масив типу «Пам'ять» заданої у варіанті розмірності;
статичний(і) масив(и), що містить значення на відповідних входах елементів масиву типу «Пам'ять».
Методи:
метод, що задає значення на входах екземпляра класу (бажано як параметри передавати методу покажчики на масиви значень);
метод, що дозволяє опитувати стан окремого виходу екземпляра класу;
метод, що обчислює значення нового стану екземпляра класу;
Усі поля класів «Елемент», «Комбінаційний» і «Пам'ять» повинні бути описані з ключовим словом privatе.
У завданні перераховані тільки обов'язкові члени і методи класу. Можна задавати додаткові члени і методи, якщо вони не заперечують обов'язковим і забезпечують додаткові зручності при роботі з даними класами, наприклад, описати функції обчислення виходу/стану як віртуальні.
2.5. Для перевірки функціонування створених класів написати програму, що використовує ці класи. У програмі повинні бути продемонстровані усі властивості створених класів.
Конкретний тип комбінаційного елемента, тип тригера і розрядність регістра вибираються відповідно до варіанта завдання.
Таблиця 5.1 – Варіанти завдання 2
Варіант |
Комбінаційний елемент |
Число входів |
Тригер |
Розрядність регістра |
1 |
НІ |
4 |
RS |
8 |
2 |
АБО |
5 |
RST |
10 |
3 |
МОД2-НІ |
6 |
D |
12 |
4 |
І |
8 |
T |
8 |
5 |
НІ |
8 |
V |
9 |
6 |
І |
4 |
RS |
10 |
7 |
НІ |
5 |
JK |
11 |
8 |
МОД2 |
5 |
D |
8 |
9 |
І |
4 |
T |
10 |
10 |
АБО |
3 |
JK |
8 |
11 |
НІ |
3 |
RS |
12 |
12 |
НІ |
4 |
RST |
4 |
13 |
МОД2 |
5 |
D |
10 |
14 |
МОД2-НІ |
6 |
T |
10 |
15 |
НІ |
8 |
V |
10 |
16 |
І |
8 |
JK |
6 |
17 |
НІ |
8 |
RS |
10 |
18 |
АБО |
8 |
T |
10 |
19 |
МОД2 |
6 |
JK |
8 |
20 |
МОД2-НІ |
5 |
V |
10 |