Здавалка
Главная | Обратная связь

Методичні вказівки.



1.Клас АТД реалізувати як динамічний масив. Для цього визначення класу повинне мати наступні поля:

- покажчик на початок масиву;

- максимальний розмір масиву;

- поточний розмір масиву.

2.Для вводу і виводу визначити в класі функції input і print.

3.Щоб у вас не виникало проблем, акуратно працюйте з константами об'єктами. Наприклад:

* конструктор копіювання варто визначити так:

MyTmp (constMyTmp& ob);

* операцію присвоювання перевантажити так:

MyTmp& operator = (const MyTmp& ob);

4.Для шаблонів множин, списків, стеків і черг як стандартні типи використовувати символьні, цілі і речовинні типи. Для типу користувача взяти клас з лабораторної роботи №1.

5.Для шаблонів масивів як стандартні типи використовувати цілі і дійсні типи. Для типу користувача взяти клас “комплексне число” complex.

class complex{

int re; // дійсна частина

int im; // мнима частина

public;

// необхідні функції і перевантажені операції

};

6.Реализацию шаблона варто розмістити разом з визначенням у заголовному файлі.

7.Програма створюється як EasyWin-додаток у Borland C++5.02.

8.Тестування повинне бути виконане для всіх типів даних і для всіх операцій.

Зміст звіту.

1.Назва, мета роботи

2.Постановка задачі.

Варто дати конкретну постановку, тобто вказати шаблон якого класу повинний бути створений, які повинні бути в ньому конструктори, компоненти-функції, перевантажені операції і т.д.

Те ж саме варто вказати для класу користувача.

3.Визначення шаблона класу з коментарями.

4.Визначення класу користувача з коментарями.

5.Реалізація конструкторів, деструктора, операції присвоювання й операцій, що задані у варіанті завдання.

6.Те ж саме для класу користувача.

7.Результати тестування. Варто вказати для яких типів і яких операцій перевірені і які виявлені помилки(чи не виявлені).

Питання для самоконтролю.

1.У чому зміст використання шаблонів?

2.Які синтаксис/семантика шаблонів функцій?

3.Які синтаксис/семантика шаблонів класів?

4.Напишіть параметризовану функцію сортування масиву методом обміну.

5.Визначте шаблон класу “вектор” - одномірний масив.

6.Що таке параметри шаблона функції?

7.Перелічіть основні властивості параметрів шаблона функції.

8.Як записувати параметр шаблона?

9.Чи можна перевантажувати параметризовані функції?

10.Перелічіть основні властивості параметризованих класів.

11.Чи може бути порожнім список параметрів шаблона? Поясніть.

12.Як викликати параметризовану функцію без параметрів?

13.Чи всі компонентні функції параметризованого класу є параметризованими?

14.Чи є дружні функції, описані в параметризованому класі, параметризованими?

15. Чи можуть шаблони класів містити віртуальні компонентні функції?

16.Як визначаються компонентні функції параметризованих класів поза визначенням шаблона класу?

Варіанти завдань.

1.Клас-одномірний масив. Додатково перевантажити наступні операції:

“*” - множення масивів;

“[]” - доступ за індексом;

2.Клас-одномірний масив. Додатково перевантажити наступні операції:

“int()” - розмір масиву;

“[]” - доступ за індексом;

3.Клас-одномірний масив. Додатково перевантажити наступні операції:

“[]” - доступ за індексом;

“==” - перевірка на рівність;

“!=” - перевірка на нерівність;

4.Клас-множина set.Додатково перевантажити наступні операції:

“+” - додати елемент у множину (типу set+item);

“+” - об'єднання множин.

“*” - перетинання множин;

5.Клас- множина set.Додатково перевантажити наступні операції:

“+” - додати елемент у множину (типу item + set);

“+” - об'єднання множин;

“==” - перевірка множин на рівність.

6.Клас-множина set.Додатково перевантажити наступні операції:

“-” - видалити елемент із множин (типу set-item);

“*” - перетинання множин;

“<” - порівняння множин .

7.Клас-множина set.Додатково перевантажити наступні операції:

“-” - видалити елемент із множини (типу set-item);

“>”- перевірка на підмножину;

“!=” - перевірка множин на нерівність.

8.Клас-множина set.Додатково перевантажити наступні операції:

“+” - додати елемент у множину (типу set+item);

“*” - перетинання множин;

“int()” - потужність множини.

9.Клас-множина set.Додатково перевантажити наступні операції:

“()” - конструктор множини (у стилі конструктора для множинного типу в мові Pascal);

“+” - об'єднання множин;

“<=” - порівняння множин .

10.Клас-множина set.Додатково перевантажити наступні операції:

“>” - перевірка на приналежність (типу операції inмножинного типу в мові Pascal);

“*” - перетинання множин;

“<” - перевірка на підмножину.

11.Класс-однонаправлений список list. Додатково перевантажити наступні операції:

“+” - додати елемент у початок (list+item);

“--” - видалити елемент із початку (--list);

“==” - перевірка на рівність.

12.Класс-однонаправлений список list. Додатково перевантажити наступні операції:

“+” - додати елемент у початок (item+list);

“-і” - видалити елемент із початку ( -іlist);

“!=” - перевірка на нерівність.

13.Класс-однонаправлений список list. Додатково перевантажити наступні операції:

“+” - додати елемент у кінець (list+item);

“-і” - видалити елемент із кінця (типу list-і);

“!=” - перевірка на нерівність.

14.Класс-однонаправлений список list. Додатково перевантажити наступні операції:

“[]” - доступ до елемента в заданій позиції, наприклад:

Type c;

int i;

list L;

c=L[i];

“+” - об'єднати два списки;

“==” - перевірка на рівність.

15.Класс-однонаправлений список list. Додатково перевантажити наступні операції:

“[]” - доступ до елемента в заданій позиції, наприклад:

int i; Type c;

list L;

c=L[i];

“+” - об'єднати два списки;

“!=” перевірка на нерівність.

16.Класс-однонаправлений список list. Додатково перевантажити наступні операції:

“()” - видалити елемент у заданій позиції, наприклад :

int i;

list L;

L(i);

“()” - додати елемент у задану позицію, наприклад :

int i;

Type c;

list L;

L(c,i);

“!=” - перевірка на нерівність.

17.Клас-стек stack. Додатково перевантажити наступні операції:

“+” - додати елемент у стек;

“—“ - витягти елемент зі стека;

bool() - перевірка чи порожній стек?

18.Клас-черга queue. Додатково перевантажити наступні операції:

“+” - додати елемент ;

“—“ - витягти елемент ;

bool() - перевірка чи порожня черга?

19.Клас-одномірний масив. Додатково перевантажити наступні операції:

“+” - додавання масивів;

“[]” - доступ за індексом;

“+” - скласти елемент із масивом.

20.Клас-одномірний масив. Додатково перевантажити наступні операції:

“-” – віднімання масивів;

“[]” - доступ за індексом;

“-” - відняти з масиву елемент.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.