Тема Робота з динамічною пам~яттю Мета
Работа добавлена на сайт samzan.net: 2016-06-09
Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
от 25%
Подписываем
договор
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ПЗ
Робота з динамічною памяттю
Методичні матеріали
до лабораторної роботи № 4 з курсу:
“Обєктно-орієнтоване програмування”
Львів 2011
Тема. Робота з динамічною памяттю
Мета. Навчитися виділяти місце під обєкти динамічно. Навчитися створювати та використовувати конструктор копіювання, перевантажувати оператор присвоєння. Ознайомитися з принципами створення та функціонування деструкторів.
Теоретичні відомості.
Завдання для лабораторної роботи
- Створити клас відповідно до завдання (див. Додаток).
- Розробити для класу конструктор за замовчуванням та декілька звичайних конструкторів. Реалізувати функції-члени відповідно до завдання (див. Додаток).
- Створити конструктор копіювання.
- Перевантажити операцію присвоєння.
- Створити деструктор для вивільнення динамічно виділеної памяті.
- Продемонструвати розроблені можливості класу завдяки створеному віконному застосуванню.
Додаток
- Клас Matrix матриця. Память під елементи масиву повинна виділятися динамічно.
Реалізувати такі функції члени:
- Знаходження максимального значення матриці.
- Знаходження мінімального значення матриці.
- Знаходження максимального значення в заданому рядку.
- Знаходження мінімального значення в заданому стовпці.
- Зміна розмірів матриці.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання
- Віднімання
- Множення
- Множення на скаляр.
- Введення матриці з StringGrid (<<)
- Виведення матриці у StringGrid(>>)
- Виведення матриці у Memo(>>)
Забезпечити можливість отримання значення елементу [i][j] подібно до доступу до елементів звичайного двовимірного масиву.
- Клас Array одновимірний масив. Память під елементи масиву повинна виділятися динамічно.
Реалізувати такі функції члени:
- Знаходження максимального значення.
- Знаходження мінімального значення.
- Знаходження середнього арифметичного значення масиву.
- Сортування елементів масиву методом вибірки за спаданням.
- Сортування елементів масиву методом бульбашки за зростанням.
- Зміна розмірів масиву.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання (почленне додавання елементів масиву)
- Віднімання (почленне віднімання елементів масиву)
- Множення на скаляр.
- Введення масиву з StringGrid (<<)
- Виведення масиву у StringGrid(>>)
- Виведення масиву у Memo(>>)
Забезпечити можливість отримання значення елементу [i] подібно до доступу до елементів звичайного одновимірного масиву.
- Клас Mnogyna множина цілочисельних значень. Память під елементи множини повинна виділятися динамічно.
Реалізувати такі функції члени:
- Перевірка на належність елемента множині.
- Знаходження потужності множини.
- Знаходження максимального значення серед значень множини.
- Знаходження мінімального значення серед значень множини.
- Додавання елемента до множини.
- Видалення елемента з множини.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання (обєднання множин).
- Віднімання (перетин множин).
- Ділення (різниця множин)
- Введення множини з StringGrid (<<)
- Виведення множини у StringGrid(>>)
- Виведення множини у Memo(>>)
- Клас Strichka стрічка символів (масив елементів символьного типу). Память під елементи масиву повинна виділятися динамічно.
Реалізувати такі функції члени:
- Видалення заданого символу із стрічки.
- Знаходження кількості входжень заданого символу у стрічку.
- Сортування символів стрічки в алфавітному порядку у порядку зростання.
- Сортування символів стрічки в алфавітному порядку у порядку спадання.
- Вставлення однієї стрічки у іншу з заданої позиції.
- Зміна розміру стрічки.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання (конкатенація стрічок)
- Віднімання (видалення із першої стрічки першого входження другої)
- Введення стрічки з StringGrid (<<)
- Введення стрічки з Edit (<<)
- Виведення стрічки у StringGrid(>>)
- Виведення стрічки у Memo(>>)
- Виведення стрічки у Edit(>>)
- Виведення стрічки у Label(>>)
Забезпечити можливість отримання значення елементу [i] подібно до доступу до елементів звичайного одновимірного масиву.
- Клас Matrix матриця. Память під елементи масиву повинна виділятися динамічно. Елементи матриці повинні зберігатися у одновимірному масиві.
Реалізувати такі функції члени:
- Знаходження максимального значення матриці.
- Знаходження мінімального значення матриці.
- Знаходження середнього арифметичного значення матриці.
- Зміна розмірів матриці.
- Транспонування матриці.
- Знаходження оберненої матриці до заданої.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання
- Віднімання
- Множення
- Множення на скаляр.
- Введення матриці з StringGrid (<<)
- Виведення матриці у StringGrid(>>)
- Клас Matrix матриця. Память під елементи масиву повинна виділятися динамічно.
Реалізувати такі функції члени:
- Знаходження максимального значення матриці.
- Знаходження середнього арифметичного значення матриці.
- Сортування заданого рядка методом вибірки за зростанням.
- Сортування заданого стовпця методом вибірки за спаданням.
- Зміна розмірів матриці.
- Підняття матриці до заданого степеня.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання
- Віднімання
- Множення
- Множення на скаляр.
- Введення матриці з StringGrid (<<)
- Виведення матриці у StringGrid(>>)
- Виведення матриці у Memo(>>)
Забезпечити можливість отримання значення елементу [i][j] подібно до доступу до елементів звичайного двовимірного масиву.
- Клас Array одновимірний масив. Память під елементи масиву повинна виділятися динамічно.
Реалізувати такі функції члени:
- Знаходження максимального значення.
- Знаходження мінімального значення.
- Знаходження мінімального додатного.
- Знаходження максимального відємного.
- Сортування елементів масиву методом бульбашки за зростанням та спаданням.
- Зміна розмірів масиву.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання (почленне додавання елементів масиву)
- Віднімання (почленне віднімання елементів масиву)
- Поелементний зсув вліво (- -).
- Поелементний зсув вправо (++)
- Введення масиву з StringGrid (<<)
- Виведення масиву у StringGrid(>>)
- Виведення масиву у Memo(>>)
Забезпечити можливість отримання значення елементу [i] подібно до доступу до елементів звичайного одновимірного масиву.
- Клас Mnogyna множина цілочисельних значень. Память під елементи множини повинна виділятися динамічно.
Реалізувати такі функції члени:
- Перевірка на належність елемента множині.
- Знаходження потужності множини.
- Знаходження максимального відємного значення серед значень множини.
- Знаходження мінімального додатного значення серед значень множини.
- Знаходження максимального за модулем значення.
- Додавання елемента до множини.
- Видалення елемента з множини.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання (обєднання множин).
- Віднімання (перетин множин).
- Порівняння множин (==)
- Введення множини з StringGrid (<<)
- Виведення множини у StringGrid(>>)
- Виведення множини у Memo(>>)
- Клас Strichka стрічка символів (масив елементів символьного типу). Память під елементи масиву повинна виділятися динамічно.
Реалізувати такі функції члени:
- Видалення заданого символу із стрічки.
- Заміна всіх входжень одного символу в стрічці заданим символом.
- Сортування символів стрічки в алфавітному порядку у порядку зростання.
- Вставлення однієї стрічки у іншу з заданої позиції.
- Зміна розміру стрічки.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання (конкатенація стрічок)
- Порівняння стрічок(< та >) (більшою вважається та, яка йде першою в алфавітному порядку).
- Рівність (==)
- Введення стрічки з StringGrid (<<)
- Введення стрічки з Edit (<<)
- Виведення стрічки у StringGrid(>>)
- Виведення стрічки у Memo(>>)
- Виведення стрічки у Edit(>>)
- Виведення стрічки у Label(>>)
Забезпечити можливість отримання значення елементу [i] подібно до доступу до елементів звичайного одновимірного масиву.
- Клас Matrix матриця. Память під елементи масиву повинна виділятися динамічно. Елементи матриці повинні зберігатися у одновимірному масиві.
Реалізувати такі функції члени:
- Знаходження максимального відємного значення матриці.
- Знаходження мінімального додатного значення матриці.
- Знаходження максимального за модулем значення матриці.
- Зміна розмірів матриці.
- Транспонування матриці.
- Обертання матриці.
Перевантажити операції. При цьому вибір механізму перевантаження обрати самостійно (чи метод, чи дружня-функція):
- Додавання
- Віднімання
- Множення
- Додавання до матриці одиничної (++)
- Введення матриці з StringGrid (<<)
- Виведення матриці у StringGrid(>>)