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

Задания

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

Вариант

Задание

1

Разработать класс Vector – геометрический вектор произвольной размерности (размерность задается в конструкторе вектора). Реализовать метод доступа к элементам вектора. Реализовать операции сложения, вычитания и скалярного произведения векторов, а также нахождение модуля вектора.

2

Разработать класс Matrix – матрица. Размерность матрицы задавать в конструкторе. Реализовать метод доступа к элементам массива. Реализовать операции сложения, вычитания, умножения и транспонирования матрицы. Сделать метод определения симметричности матрицы (если матрица квадратная). Сделать метод формирования единичной матрицы (для квадратных матриц).

3

Разработать класс ArrayOfInt – массив целых чисел. Размерность массива задавать в конструкторе. Реализовать метод доступа к элементам массива. Реализовать метод Sum – вычисление суммы чисел в массиве. Метод сортировки массива по возрастанию и по убыванию, метод сравнения двух массивов (==, !=). Метод конкатенации (слияния) двух массивов.

4

Разработать класс FileStream, инкапсулирующий работу с файлами через стандартную библиотеку Си (fopen, fclose, fprintf, fscanf, fread, fwrite и т.д.). Реализовать методы открытия и закрытия файла (отдельный метод Open и метод Create и конструктор с именем открываемого файла, закрывать – в деструкторе и отдельным методом Close) Реализовать методы Write и Read для int, double и char*. Обеспечить два режима записи – двоичный и текстовый. В текстовом режиме все числа записываются в виде текста, например, целое число 3987 записывается как последовательность символов ‘3987 ’ (преобразование можно сделать при помощи fprintf, например), а в двоичном  в виде последовательности двух байт: 0x93, 0x0f (при помощи fwrite).

5

Разработать класс large – длинное целое. Для хранения одной десятичной цифры использовать одно число типа char. Количество десятичных цифр, которые должны размещаться в этом числе, передавать в конструкторе. Реализовать методы присваивания, сложения двух чисел, печати числа на экране.

Переписать программу вычисления числа Фибоначчи для типа large. Вычислить fn=100 (22 десятичных цифры). Замечание: если Вы в прошлый раз использовали рекурсивный алгоритм вычисления чисел Фибоначчи, то теперь Вам необходимо разработать нерекурсивный алгоритм, так как рекурсивное вычисление для n=100 займет слишком много времени (возможно, несколько миллионов лет).

6

Разработать класс String – строка символов. Реализовать операции присваивания, конкатенацию (слияние двух строк), сравнения строк (==, !=), метод вывода объекта на экран. Размер строки динамически увеличивается в процессе работы со строкой по мере необходимости.

7

Разработать класс Vector4 и Matrix4 – 4-компонентный вектор и матрица 4х4 соответственно. Реализовать операции сложения матриц, умножения матриц, сложения векторов, умножения матрицы на вектор и вектора на матрицу. Домножение матрицы и вектора на число, нормализация вектора (при данной нормализации все 4 составляющие вектора делятся на значение последней – четвертой составляющей). Отображение матрицы и вектора на экране.

8

Реализовать класс Date (дата) – инкапсулирует внутри данные для работы с датой. Реализовать методы ввода и вывода этой информации. Реализовать операцию вычисления разности между двумя датами (результат в днях).

9

Реализовать класс Time (время) – инкапсулирует внутри данные для хранения времени (часы, минуты, секунды). Реализовать методы ввода и вывода этой информации. Реализовать операцию вычисления разности между двумя точками времени (результат в секундах).

10

Разработать класс Complex – комплексные числа. Реализовать операции: сложения, умножения комплексных чисел, умножения реальных чисел на комплексные и наоборот, нахождения реальной и мнимой части числа, перевода в полярные координаты.

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