Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3-38.DOC
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
271.36 Кб
Скачать

Задания

В случае, если непонятна формулировка вопроса, выполняйте задание так, как Вы его понимаете, но предварительно объясните, как Вы поняли задание, то есть сформулируйте Ваше понимание данного задания.

Номер

варианта

Задание

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, обеспечить ему полную функциональность, необходимую для комплексных чисел, в качестве параметра шаблона – тип данных, используемых для хранения составляющих комплексного числа. Обеспечить операцию деления комплексных чисел.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]