12083

Робота з динамічною памяттю

Лабораторная работа

Информатика, кибернетика и программирование

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

Украинкский

2013-04-24

78.5 KB

10 чел.

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

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

Теоретичні відомості.

Завдання для лабораторної роботи

  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(>>)
  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(>>)


 

А также другие работы, которые могут Вас заинтересовать

27663. Понятие и признаки объективной стороны преступления. Понятие уголовно-наказуемого действия и бездействия. Понятие и виды общественно-опасных последствий. Значение объективной стороны 43 KB
  Объективная сторона преступления это основной элемент состава преступления характеризующийся как внешнее проявление общественно опасного посягательства протекающего в определенных условиях месте и времени и причинившего вред охраняемым уголовным законом общественным отношениям. При анализе объективной стороны различают следующие признаки: 1 общественно опасное деяние в форме действия или бездействия; 2 общественно опасное последствие; 3 причинная связь между деянием и последствием; 4 место время способ обстановка орудия и...
27665. Понятие и признаки покушения на преступление. Виды покушения и их наказуемость. Добровольный отказ от преступления и его признаки. Отличие добровольного отказа от деятельного раскаяния 42.5 KB
  Добровольный отказ от преступления и его признаки. непосредственно направленные на совершение преступления если при этом преступление не было доведено до конца по не зависящим от этого лица обстоятельствам. Оконченным считается такое покушение когда виновный совершил все действия бездействия которые он считал необходимыми для завершения преступления однако преступный результат не наступил по объективным т. Неоконченное преступление бывает в том случае когда виновный не совершил всех тех действий бездействия которые по его...
27666. Понятие и признаки разбоя (ст. 162 УК). Характер физического и психического насилия при разбойном нападении. Отличие разбоя от насильственного грабежа 40 KB
  Это преступление посягает на два объекта: собственность и личность жизнь и здоровье потерпевшего. Нападение это агрессивные и внезапные для потерпевшего действия виновного соединенные с насилием или угрозой его применения; к нападению относятся не только открытые насильственные действия но также и нанесение удара сзади выстрел из засады приведение потерпевшего в бессознательное состояние путем применения опасных для жизни и здоровья сильнодействующих ядовитых или одурманивающих веществ и др. Поэтому как разбой оцениваются случаи...
27667. Понятие и признаки совокупности преступлений. Идеальная и реальная совокупность преступлений, ее отличие от единичных сложных преступлений 30.5 KB
  Понятие и признаки совокупности преступлений. Идеальная и реальная совокупность преступлений ее отличие от единичных сложных преступлений. Совокупность преступлений это совершение двух или более преступлений ни за одно из которых лицо не было осуждено. При совокупности преступлений лицо несет уголовную ответственность за каждое совершенное преступление по соответствующей статье или части статьи Уголовного кодекса ч.
27668. Понятие и признаки хищения чужого имущества. Отличие хищения от других видов посягательств на собственность. Формы и виды хищений. Общие квалифицирующие признаки хищения 33.5 KB
  Хищение – это совершенное с корыстной целью противоправное безвозмездное изъятие и или обращение чужого имущества в пользу виновного или других лиц причинившие ущерб собственнику или иному владельцу этого имущества. Признаки: а предмет хищения только имущество обладающее признаками вещи и имеющие стоимость; предмет хищения всегда материален; б сложный характер: сначала изъятие а затем обращение в пользу виновного изъятиеэто противоправное извлечение виновным имущества из обладания собственника с одновременным его обращением в свое...
27670. Понятие и социальная сущность преступления. Признаки преступления и его отличие от других правонарушений. Категории преступлений по УК РФ. Уголовно-правовое значение классификации преступлений на различные категории тяжести 35 KB
  Понятие и социальная сущность преступления. Признаки преступления и его отличие от других правонарушений. Понятие преступления ст. Признаки преступления: а общественная опасность – это свойство человеческого поступка причинить существенный вред охраняемым законом общечеловеческим ценностям а также создать угрозу такого вреда.