Задания
В случае, если непонятна формулировка вопроса, выполняйте задание так, как Вы его понимаете, но предварительно объясните, как Вы поняли задание, то есть сформулируйте Ваше понимание данного задания.
Номер варианта |
Задание |
1 |
Разработать шаблон класса TVector – одномерный массив; в качестве параметра шаблона использовать тип данных, хранимых в массиве. Функциональность данного класса аналогична функциональности класса из 2-ой лабораторной работы. В качестве примера использования данного шаблона сделать его реализацию для типа NormVector. |
2 |
Разработать шаблон класса TList – список (односвязный либо двусвязный); в качестве параметра шаблона использовать тип хранимых в списке данных. Обеспечить функциональность данного класса, аналогичную функциональности класса из 2-ой лабораторной работы. В качестве примера использования данного шаблона сделать его реализацию для типа Matrix. |
3 |
Разработать шаблон класса TArray – массив (прямоугольный); в качестве параметра шаблона использовать тип хранимых в массиве данных. Обеспечить функциональность данного класса, аналогичную функциональности класса из 1-ой лабораторной работы. В качестве примера использования данного шаблона сделать его реализацию для типа SqArrayOfInt. |
4 |
Разработать шаблон класса TFileOf – типизированный файл; в качестве параметра шаблона использовать тип данных, хранимых в файле (это могут быть строки фиксированной длины, целые числа, структуры и так далее). Имя открываемого файла и режим открытия (чтение/запись) передается в конструктор. Режим чтения и записи только двоичный. Реализовать методы Read и Write, в которые в качестве параметра передается объект (для Write) или ссылка на объект (для Read), который необходимо записать или прочитать. |
5 |
Разработать шаблон класса TLarge – длинное число; в качестве параметра шаблона указать тип данных, используемых для хранения одной десятичной цифры. Обеспечить функциональность, аналогичную функциональности класса large. В качестве примера использования данного шаблона сделать его реализацию для типа char. |
6 |
Разработать класс TString – строка символов; в качестве параметра шаблона указать тип данных, используемых для хранения одного символа. Обеспечить функциональность, аналогичную функциональности класса String. Размер строки динамически увеличивается в процессе работы со строкой по мере необходимости. В качестве примера использования данного шаблона сделать его реализацию для типа short. |
7 |
Разработать шаблоны классов TVector4 и TMatrix4 – 4-компонентный вектор и матрица 4х4 соответственно; в качестве параметра шаблона использовать тип данных, используемых для хранения одной ячейки. Обеспечить функциональность, аналогичную функциональности классов Vector4 и Matrix4. |
8 |
Разработать шаблон класса TVector – одномерный массив; в качестве параметра шаблона использовать тип данных, хранимых в массиве. Обеспечить метод доступа к элементам массива; дополнительно обеспечить функциональность, аналогичную классу Persons. В качестве примера использования данного шаблона сделать его реализацию для типа Person. |
9 |
Разработать шаблон класса TVector – одномерный массив; в качестве параметра шаблона использовать тип данных хранимых в массиве. Обеспечить метод доступа к элементам массива; дополнительно обеспечить функциональность, аналогичную классу Events. В качестве примера использования данного шаблона сделать его реализацию для типа Person. |
10 |
Разработать шаблон класса TArray – двумерный массив (матрица); в качестве параметра шаблона использовать тип данных, хранимых в матрице. Размерность матрицы задавать в конструкторе. Реализовать метод доступа к элементам массива. Реализовать операции сложения, вычитания, умножения и транспонирования матрицы. Сделать метод определения симметричности матрицы (если матрица квадратная). В качестве примера использования данного шаблона сделать его реализацию для типа Complex. |
Контрольная работа №2
Цель работы
Целью данной контрольной работы является контроль знаний и умений, полученных в процессе изучения предыдущего материала.
Предварительные сведения
Данная контрольная работа является завершающим звеном в процессе разработки и реализации цикла лабораторных работ. Основная задача данной работы – доведение ранее созданных классов до полной функциональности.
Задания
Номер варианта |
Задание |
1 |
Доработать шаблон класса TVector. Будем считать новый шаблон полноценным геометрическим вектором; внести операции сложения, вычитания, умножения скалярного и геометрического (для 3-мерных), умножения на число, нормализацию вектора. В качестве параметра шаблона – тип чисел хранимых в векторе (могут быть float, double, complex и так далее). |
2 |
Разработать шаблон класса TMatrix, в качестве параметра шаблона – тип чисел хранимых в векторе (могут быть float, double, complex и так далее). В данном шаблоне должны быть реализованы методы: сложения, вычитания матрицы, умножения матриц, умножения матрицы на число, транспонирования, вычисления определителя (по определению), обращения матрицы. Создание единичной матрицы. |
3 |
Разработать шаблон класса TVector – одномерный массив; в качестве параметра шаблона использовать тип хранимых в массиве данных. Обеспечить методы: добавление элемента в начало, в конец, в произвольное место массива. Аналогично удаление. Реализовать методы: среднее арифметическое, среднее геометрическое, максимум, минимум, сортировка по убыванию и по возрастанию. Дополнительно: написать функцию построения ряда Фибоначчи, в качестве контейнера для хранения ряда использовать реализацию шаблона TVector для вещественных чисел. |
4 |
Добавить в шаблон класса TFileOf операцию сортировки файла. |
5 |
Добавить в шаблон класса large операции вычитания и умножения. |
6 |
Добавить в шаблон класса TString методы: DelDupSpaces – удаление дублированных пробелов, Tab2Space – замена табуляции на пробелы, CountWord – подсчет количества слов, CountSimb – подсчет количества символов. |
7 |
Доработать шаблоны классов TVector4 и TMatrix4 для обеспечения полной функциональности (аналогично лабораторной работе №3). |
8 |
Добавить к классу Date метод определения дня недели. |
9 |
Доработать класс Time – написать метод перевода разницы секунд в часы, минуты и секунды. |
10 |
Разработать шаблон класса TComplex, обеспечить ему полную функциональность, необходимую для комплексных чисел, в качестве параметра шаблона – тип данных, используемых для хранения составляющих комплексного числа. Обеспечить операцию деления комплексных чисел. |
