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


 

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

55039. ПОРТРЕТ УЧИТЕЛЯ В РІЗНИХ РАКУРСАХ 73 KB
  Тому для одних Учитель це жива конкретна людина симпатична чи не дуже, як поталанило, а для інших - це певна міфологема одиниця легенди, яка необхідна часом людині для самозбагачення, самовиправдання, самоствердження чи просто для того, щоб пам’ять про чарівну частину життя дитинство та молодість...
55040. До 70-річчя Перемоги 144 KB
  Масовий подвиг народу, воїнів Армії і Флоту у двобої з фашистськими загарбниками, все героїчне минуле Батьківщини – вдячна і корисна нива для виховання підростаючого покоління. В наші дні героїко-патріотичне виховання набуває особливого звучання нині, в період відзначення річниць видатних перемог у Великій Вітчизняній війні і підготовки до 70-річчя Великої Перемоги.
55041. ПЕДАГОГІЧНІ ІННОВАЦІЇ ЯК РЕЗУЛЬТАТ ТВОРЧОГО ПОШУКУ ПЕДАГОГА 7.77 MB
  З огляду на важливість і актуальність поставлених перед освітою завдань, ми часто використовуємо інноваційні технології навчання, що дозволяють істотно активізувати розумову та пізнавальну діяльність студентів, підвищити інтерес до дисципліни.
55042. Пошук інформації в Internet. Пошукові системи 614.5 KB
  Мета: ознайомити із засобами пошуку інформації в Інтернеті принципами функціонування вебкаталогів та пошукових систем; навчити стратегії пошуку інформації; виховувати інформаційну культуру учнів уважність дисциплінованість прищеплювати навички групової роботи співробітництва.
55043. Объекты, цели, методы государственного регулирования экономики 19.59 KB
  Продажа государственной собственности частным физическим и юридическим лицам позволяет: уменьшить дефицит бюджета, пополнить его доходами и увеличить средства, направляемые в другие сектора экономики; расширить сферу действия рыночного механизма и развить конкурентную среду; привлечь частный капитал в совместный с государством бизнес
55044. Використання інформаційно-комунікаційних технологій на уроках української мови та літератури 242.5 KB
  Комп’ютерна презентація на уроках української мови та літератури. Це уможливлює: удосконалення методології і стратегії добору змісту методів і організаційних форм навчання що відповідають задачам розвитку особистості того кого навчають у сучасних умовах інформатизації суспільства; створення методичних систем навчання орієнтованих на розвиток інтелектуального потенціалу того кого навчають на формування умінь самостійно здобувати знання здійснювати інформаційнонавчальну...
55045. Навчальний посібник для самостійної роботи та самоконтролю 2.9 MB
  Те саме стосується й швидкості світла бо вимога щодо знання одиниць швидкості також висувається лише у 8-му класі. Саме такими є промені що їх викидає точкове джерело світла. Непідкріпленою тож необґрунтовано завищеною виглядає також вимога щодо опанування учнями поняттям сила світла та їхньої здатності розв'язувати задачі із застосуванням цієї фізичної величини с.
55046. Математика в біології 2.95 MB
  На допомогу тим хто розв’язує задачі з біології Кожна біологічна задача складається із сукупності даних умови задачі й запитань що вказує її вимогу. Якщо це задача з генетики використовуй генетичні символи; якщо вона стосується обміну речовин – складіть ланцюг живлення...
55047. Науково-методичного забезпечення професійного становлення молодого вчителя 4.85 MB
  Випускники педагогічних ВНЗ здебільшого мають непогану фахову підготовку але їм бракує знань і досвіду в питаннях методичної підготовки діяльності учнівського колективу ведення шкільної документації у роботі з батьками. Випускники педагогічних ВНЗ здебільшого мають непогану фахову підготовку але їм бракує знань і досвіду в питаннях методичної підготовки діяльності учнівського колективу ведення шкільної документації у роботі з батьками. Рецепту для кожної окремої педагогічної ситуації не існує але їх розв'язанню могли б сприяти такі...