Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP Lab 4.3.doc
Скачиваний:
1
Добавлен:
13.08.2019
Размер:
534.53 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”

Кафедра ПЗ

Робота з динамічною пам’яттю Методичні матеріали

до лабораторної роботи № 4 з курсу:

“Об’єктно-орієнтоване програмування”

Львів 2011

Тема. Робота з динамічною пам’яттю

Мета. Навчитися виділяти місце під об’єкти динамічно. Навчитися створювати та використовувати конструктор копіювання, перевантажувати оператор присвоєння. Ознайомитися з принципами створення та функціонування деструкторів.

Теоретичні відомості. Завдання для лабораторної роботи

  1. Створити клас відповідно до завдання (див. Додаток).

  2. Розробити для класу конструктор за замовчуванням та декілька звичайних конструкторів. Реалізувати функції-члени відповідно до завдання (див. Додаток).

  3. Створити конструктор копіювання.

  4. Перевантажити операцію присвоєння.

  5. Створити деструктор для вивільнення динамічно виділеної пам’яті.

  6. Продемонструвати розроблені можливості класу завдяки створеному віконному застосуванню.

Додаток

  1. Клас Matrix – матриця. Пам’ять під елементи масиву повинна виділятися динамічно.

Реалізувати такі функції члени:

  • Знаходження максимального значення матриці.

  • Знаходження мінімального значення матриці.

  • Знаходження максимального значення в заданому рядку.

  • Знаходження мінімального значення в заданому стовпці.

  • Зміна розмірів матриці.

Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):

  • Додавання

  • Віднімання

  • Множення

  • Множення на скаляр.

  • Введення матриці з StringGrid (<<)

  • Виведення матриці у StringGrid(>>)

  • Виведення матриці у Memo(>>)

Забезпечити можливість отримання значення елементу [i][j] подібно до доступу до елементів звичайного двовимірного масиву.

  1. Клас Array – одновимірний масив. Пам’ять під елементи масиву повинна виділятися динамічно.

Реалізувати такі функції члени:

  • Знаходження максимального значення.

  • Знаходження мінімального значення.

  • Знаходження середнього арифметичного значення масиву.

  • Сортування елементів масиву методом вибірки за спаданням.

  • Сортування елементів масиву методом бульбашки за зростанням.

  • Зміна розмірів масиву.

Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):

  • Додавання (почленне додавання елементів масиву)

  • Віднімання (почленне віднімання елементів масиву)

  • Множення на скаляр.

  • Введення масиву з StringGrid (<<)

  • Виведення масиву у StringGrid(>>)

  • Виведення масиву у Memo(>>)

Забезпечити можливість отримання значення елементу [i] подібно до доступу до елементів звичайного одновимірного масиву.

  1. Клас Mnogyna – множина цілочисельних значень. Пам’ять під елементи множини повинна виділятися динамічно.

Реалізувати такі функції члени:

  • Перевірка на належність елемента множині.

  • Знаходження потужності множини.

  • Знаходження максимального значення серед значень множини.

  • Знаходження мінімального значення серед значень множини.

  • Додавання елемента до множини.

  • Видалення елемента з множини.

Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):

  • Додавання (об’єднання множин).

  • Віднімання (перетин множин).

  • Ділення (різниця множин)

  • Введення множини з StringGrid (<<)

  • Виведення множини у StringGrid(>>)

  • Виведення множини у Memo(>>)

  1. Клас Strichka – стрічка символів (масив елементів символьного типу). Пам’ять під елементи масиву повинна виділятися динамічно.

Реалізувати такі функції члени:

  • Видалення заданого символу із стрічки.

  • Знаходження кількості входжень заданого символу у стрічку.

  • Сортування символів стрічки в алфавітному порядку у порядку зростання.

  • Сортування символів стрічки в алфавітному порядку у порядку спадання.

  • Вставлення однієї стрічки у іншу з заданої позиції.

  • Зміна розміру стрічки.

Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):

  • Додавання (конкатенація стрічок)

  • Віднімання (видалення із першої стрічки першого входження другої)

  • Введення стрічки з StringGrid (<<)

  • Введення стрічки з Edit (<<)

  • Виведення стрічки у StringGrid(>>)

  • Виведення стрічки у Memo(>>)

  • Виведення стрічки у Edit(>>)

  • Виведення стрічки у Label(>>)

Забезпечити можливість отримання значення елементу [i] подібно до доступу до елементів звичайного одновимірного масиву.

  1. Клас Matrix – матриця. Пам’ять під елементи масиву повинна виділятися динамічно. Елементи матриці повинні зберігатися у одновимірному масиві.

Реалізувати такі функції члени:

  • Знаходження максимального значення матриці.

  • Знаходження мінімального значення матриці.

  • Знаходження середнього арифметичного значення матриці.

  • Зміна розмірів матриці.

  • Транспонування матриці.

  • Знаходження оберненої матриці до заданої.

Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):

  • Додавання

  • Віднімання

  • Множення

  • Множення на скаляр.

  • Введення матриці з StringGrid (<<)

  • Виведення матриці у StringGrid(>>)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]