- •Пользовательские типы
- •Вариант 1***
- •Вариант 2***
- •Вариант 3***
- •Вариант 4***
- •Вариант 5**
- •Вариант 6**
- •Вариант 7**
- •Вариант 8**
- •Вариант 9**
- •Вариант 10**
- •Вариант 11**
- •Вариант 12**
- •Вариант 13**
- •Вариант 20**
- •Вариант 21**
- •Вариант 14*
- •Вариант 15*
- •Вариант 16*
- •Вариант 17*
- •Вариант 18*
- •Вариант 19*
-
Вариант 5**
Разработайте пользовательский тип “матрица вещественных чисел”. Для разрабатываемого типа обязательно определите:
-
конструктор и деструктор;
-
конструктор копирования;
-
“get” и “set” методы для элементов матрицы;
-
“get” методы для размеров матрицы;
-
операторы сложения и умножения;
-
оператор присваивания;
-
оператор сравнения ==;
-
оператор << для вывода матрицы в поток.
-
Вариант 6**
Разработайте пользовательский тип “множество”, где элементы множества – целые числа из диапазона [0..N-1]. Размер диапазона должен задаваться при создании экземпляра класса. Для разрабатываемого типа обязательно определите:
-
конструктор и деструктор;
-
конструктор копирования;
-
операторы << и >> для добавления и исключения элементов из множества;
-
операторы & и | для пары множеств с семантикой «пересечение множеств» и «объединение множеств»;
-
оператор присваивания;
-
оператор сравнения ==;
-
операторы < и > c семантикой принадлежности одного множества другому;
-
метод для определения принадлежности числа множеству;
-
метод для вывода множества в указанный поток.
-
Вариант 7**
Разработайте пользовательский тип «множество символов». Для разрабатываемого типа обязательно определите:
-
конструктор и деструктор (в случае необходимости);
-
конструктор копирования (в случае необходимости);
-
операторы << и >> для добавления и исключения элементов из множества;
-
операторы & и | для пары множеств с семантикой «пересечение множеств» и «объединение множеств»;
-
оператор присваивания (в случае необходимости);
-
оператор сравнения ==;
-
операторы < и > c семантикой принадлежности одного множества другому;
-
метод для определения принадлежности символа множеству;
-
метод для вывода множества в указанный поток.
-
Вариант 8**
Разработайте пользовательский тип «стек целых чисел». Для внутренней реализации воспользуйтесь динамическим массивом. Начальная емкость стека должна задаваться при создании экземпляра класса. В случае заполнения стека следует выделять дополнительную память. В разрабатываемом типе обязательно определите:
-
конструктор и деструктор;
-
конструктор копирования;
-
операторы << и >> для добавления и извлечения элементов из стека;
-
метод “стек пуст?”;
-
метод, возвращающий текущую емкость стека;
-
метод, возвращающий текущее количество элементов в стеке;
-
оператор присваивания;
-
метод, выводящий содержимое стека в указанный поток.
-
Вариант 9**
Разработайте пользовательский тип «стек целых чисел». Для внутренней реализации воспользуйтесь однонаправленным списком. Для разрабатываемого типа обязательно определите:
-
конструктор и деструктор;
-
конструктор копирования;
-
операторы << и >> для добавления и извлечения элементов из стека;
-
метод “стек пуст?”;
-
оператор присваивания;
-
метод, выводящий содержимое стека в указанный поток.
-
Вариант 10**
Разработайте пользовательский тип «очередь целых чисел». Для внутренней реализации воспользуйтесь динамическим массивом. Начальная (!) емкость очереди должна задаваться при создании экземпляра класса. В случае заполнения очереди следует выделять дополнительную память. Для разрабатываемого типа обязательно определите:
-
конструктор и деструктор;
-
конструктор копирования;
-
оператор присваивания;
-
операторы << и >> для добавления и извлечения элементов из очереди;
-
метод “очередь пуста?”;
-
метод, выводящий содержимое очереди в указанный поток.