- •Рейтингова система оцінювання знань та умінь з ооп 2012-2013 н.Р.
- •Вимоги до звіту з лабораторних робіт
- •Класи потоків Лабораторна робота 1
- •1.1 Теоретичні відомості
- •1.1.1. Методи класів потоків
- •1.1.2. Маніпулятори
- •1.1.3. Деякі методи класів файлових потоків
- •1.2 Приклад програми Умова задачі
- •Алгоритм задачі
- •Текст програми
- •Результати виконання програми
- •1.3 Варіанти завдань
- •1.4 Контрольні запитання
- •Інкапсуляція. Інтерфейси класів . Діаграми прецедентів і класів Лабораторна робота 2
- •2.1 Теоретичні відомості Етапи об’єктно-орієнтованого проектування та моделювання
- •Діаграма варіантів використання(use-case diagram)
- •Ідентифікація класів
- •Ідентифікація атрибутів
- •Ідентифікація операцій (методів)
- •Типові схеми uml діаграм
- •2.2 Програма роботи
- •2.3 Варіанти завдань
- •2.4 Приклад виконання роботи Задача
- •Об’єктно-орієнтоване проектування Зображення класів в uml
- •Ідентифікація атрибутів
- •Структура проекту
- •Інтерфейси та реалізації класів програми
- •2.5 Контрольні запитання
- •Конструктори та деструктори класів Діаграми прецедентів і класів Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.2 Програма роботи
- •3.3 Варіанти завдань
- •3.4 Приклад виконання роботи Задача
- •Реалізація конструкторів і деструкторів деяких класів
- •3.5 Контрольні запитання
- •Методи класів: аксесори, ітератори, утілити, предикатні функції . Діаграми класів, діяльності, послідовності Лабораторна робота № 4
- •4.1 Теоретичні відомості
- •4.2 Програма роботи
- •4.3 Варіанти завдань
- •4.4 Приклад виконання роботи Задача
- •Реалізація деяких методів-аксесорів, предикатних функцій, функцій-утілит, методів, які забезпечують функціональність об’єктів
- •Результати виконання роботи
- •4.5 Контрольні запитання
- •Константні та статичні члени класів. Вбудовані функції. Діаграми класів, послідовності Лабораторна робота № 5
- •5.1 Теоретичні відомості
- •5.2 Програма роботи
- •5.3 Варіанти завдань
- •5.4 Приклад виконання роботи Задача 5_1
- •Приклади деяких константних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •Задача 5_2
- •Приклади деяких статичних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •5.5 Контрольні запитання
- •Перевантаження операцій та функцій. Дружні функції Діаграми класів, станів і переходів Лабораторна робота 6
- •6.1 Теоретичні відомості
- •6.2 Програма роботи
- •6.3 Варіанти завдань
- •6.4 Приклад виконання роботи
- •6.5 Контрольні запитання
- •Просте успадкування класів. Поліморфізм. Віртуальні функції Діаграма класів, кооперацій. Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2 Програма роботи
- •9.2. Приклад програми Умова задачі 9
- •Алгоритм задачі 9
- •Текст програми 9
- •Результати роботи програми 9
- •9.3. Варіанти завдань
- •9.4. Контрольні запитання
- •Методи внутрішнього сортування (сортування масивів) Лабораторна робота 10
- •Методи зовнішнього сортування (сортування файлів) Лабораторна робота 11
Результати роботи програми 9
9.3. Варіанти завдань
Усі завдання потребують використання класів і успадкування.
Обчислити суму векторів з генерацією виключних ситуацій під час виходу значень за заданий діапазон і у разі невірного розміру вектора.
Обчислити суму матриць з генерацією виключних ситуацій під час виходу значень за заданий діапазон і невірному розмірі матриць.
Здійснити пошук у списку. У разі відсутності потрібного значення генерувати виключення, інакше повернути покажчик на знайдений елемент.
Здійснити пошук файлу на диску та його зчитування. У разі відсутності файлу або неможливості його відкриття та читання генерувати виключення.
Розробити базовий клас "Виключення" і похідні класи для конкретних виключних ситуацій (помилки перетворення рядка у число, неприпустиме приведення типів, переповнення тощо).
Визначити клас int, що працює як вбудований тип int, але генерує виключення у ситуаціях overflow, underflow.
Продемонструвати роботу обробника виключень unexpected(), terminate(), abort(), set_unexpected(), set_terminate() на прикладі обробки текстових файлів.
Продемонструвати послідовність викликів обробника виключень catch() при використанні вкладених блоків try-catch(). Протестувати на прикладі обробки виключень виду: втрата значення у виразі з плаваючою точкою, ділення на нуль, переповнення значень з плаваючою точкою, неприпустима математична операція з плаваючою точкою.
Використати ієрархію класів для обробки виключень, що викликаються стандартною бібліотекою математичних функцій (переповнення, ділення на нуль, значення за межами діапазону тощо).
Створити клас "Рядок", в якому передбачити методи об’єднання двох і більше рядків у один. Передбачити виключну ситуацію, яка створюється під час недостачи пам'яті для розміщення об’єднаного рядка. Реалізувати обробку виключення, яке генерується у конструкторі.
Створити клас "Файл", в якому визначити методи пошуку файлу на диску, його перейменування та редагування. Передбачити обробку виключних ситуацій під час виконання методів класу, якщо файл не існує, його не можна відкрити, відредагувати та перейменувати. Відкриття файлу виконувати у конструкторі класу.
Створити клас "Матриця", в якому визначити методи генерації матриці генератором випадкових чисел, перевірки її на симетричність. Передбачити обробку таких виключних ситуацій, як вихід значень матриці та її індексів за межі діапазону, її несиметричність.
Створити базовий та похідні класи виключень. За допомогою оператора catch() базового класу здійснити перехоплення виключень похідних класів.
Розробити тестову програму, яка використовує усі можливі формати оператора throw (з параметрами та без параметрів) і демонструє послідовність передачі управління відповідному оператору catch().
Представивши виключення у вигляді ієрархічного дерева, реалізувати їх обробку під час виконання математичних функцій над даними, що зчитані з потоку.
Створити клас "Число", в якому значення числа, мантиса та порядок є його атрибутами. Реалізувати методи визначення мантиси та порядку числа по його значенню, формування матриці вимірності n*3, стовпчики якої містять зчитане число, його мантису та порядок. Дані зчитати з потоку символів. У випадку зчитування нецифрових символів сформувати виключення та здійснити його обробку.
Використовуючи потоки введення-виведення, написати програму-фільтр, яка із зчитаного потоку, виділяє алфавітні символи та перетворює їх у символи верхнього регістру, а зчитані цифрові символи замінює на будь-який введений з клавіатури. Якщо зчитані символи пунктуації та арифметичних дій, то сформувати виключення та їх обробити.
Розробити клас "Тип даних", в якому атрибутами визначити тип, заданий користувачем. Використати перевантажені операції >>, << для введення об’єктів заданого типу. Помилки введення-виведення представити у вигляді виключень та обробити їх.
Розробити клас "Файл", в якому визначити методи пошуку конкретних даних у файлі та заміни знайдених значень на введені з клавіатури. Якщо файлу на диску немає, неможливо його відкрити, немає потрібних значень або не введені дані з клавіатури, то сформувати виключення та їх обробити.
Визначити зворотну матрицю з генерацією виключних ситуацій під час виходу значень за заданий діапазон і неправильній вимірності матриці.
Створити клас Complex, в якому визначити конструктор і методи додавання та множення комплексних чисел. Передбачити генерацію виключних ситуацій у конструкторі під час ініціалізації атрибутів комплексного числа та під час виклику інших методів.
Використовуючи функції set_unexpected(), set_terminate(), перевантажити функції unexpected(), terminate() для обробки непередбачених виключних ситуацій під час роботи з символьними потоками.
Створити клас "Типові виключення", в якому визначити методи обчислення арифметичного виразу з генерацією виключень типів ділення на нуль, арифметичного переповнення, недостачі оперативної пам’яті для розміщення обчисленого результату, виходу значення за допустимі межі.
Проаналізувати виключення, що генеруються у вкладених класах і конструкторах. Предметну область задати самостійно.
Створити клас "Ціле число", в якому визначити методи, що можуть генерувати виключення типів переповнення зверху та знизу і ділення на нуль.
Створити клас "Графіка", в якому визначити методи перевірки можливості використання графічного режиму та генерації виключень , якщо немає директиви #include<graphics.h> у програмному коді, файлу egavga.bgi на диску, задані невірні значення змінних для визначення графічного драйвера та режиму.
Створити клас "Матриця", в якому визначити конструктор для генерації верхньої трикутної методи матриці та методи обчислення її визначника як добутку її діагональних елементів. Формувати виключні ситуації у випадках, коли визначник дорівнює нулю або не побудована верхня трикутна матриця.
Написати програму для генерації та обробки помилки, яка пов’язана з нестачею оперативної пам’яті. Програма повинна видавати відповідне повідомлення при динамічному виділення пам’яті за допомогою оператора new.
Розробити програму, яка формує виключення при перевищенні відведеного для її роботи часу і зупиняється. Користувач може продовжити працювати, задавши відповідні дані з клавіатури.
Визначити клас "Елементарні та обернені тригонометричні функції". У виключних ситуаціях (вихід аргументу за область допустимих значень) генерувати та обробляти відповідні виключення.