Класс для работы с геометрическими векторами на плоскости

Задача

9. Напишите класс для работы с геометрическими векторами на плоскости. Реализуйте максимально возможное количество методов.

Тесты

$latex x_1$ $latex y_1$ $latex x_2$ $latex y_2$ $latex x_3$ $latex y_3$ $latex x_4$ $latex y_4$ Ск. пр. Угол
4 4 61 12 44 65 21 51 -1423 2.7342438697918836

Код

 

Описание решения

Переменные $latex x_1,y_1,x_2,y_2$ являются координатами начала и конца вектора, $latex x_V$ и $latex y_V$ — координаты вектора, $latex x_M$ и $latex y_M$ — координаты середины вектора, $latex v_L$ — длина вектора. Реализованы методы для нахождения середины вектора, длины вектора, умножения вектора на число, сложения векторов, скалярного произведения векторов и нахождения угла между векторами.

Код можно просмотреть на сайте ideone

Класс рациональных дробей

Задача

Напишите класс для работы с не изменяемыми (immutable) рациональными дробями используя статические методы.

Код

Код на Ideone.

Тест

Входящие данные Операция Выходящие данные
4/5

1/2

проверка равенства false
4/5

1/2

2/5

сравнение по равенству дроби и произведения двух других true
2/5

1/2

сложение 9/10
4/5

1/2

вычитание 3/10
4/5

1/2

вычитание -3/10
2/5

1/2

умножение 1/5
4/5

1/2

деление 8/5
4/5

1/2

сравнение 4/5 > 1/2
4/5

1/2

сравнение 1/2 > 2/5
4/5

1/2

2/5

сравнение дроби и произведения двух других 2/5 = 2/5

 

Класс комплексных чисел

Задача.

Напишите класс для хранения комплексных чисел и реализуйте основные операции работы с ними.

Тесты.

Исходные числа Операция Результат
z1 = 2 + 3i

z2 = -1 + 2i

+ 1.0 + 5.0i
3.0 + i
* -8.0 + i
/ 0.8 — 1.4i
3 + 4i  2.0 + i,

-2.0 -i

-1 + 2i pow -3.0 — 4.0i

Код программы

Ссылка на Ideone.

Quaternion

Условие

Кватернионы (от лат. quaterni, по четыре) — система гиперкомплексных чисел, образующая векторное пространство размерностью четыре над полем вещественных чисел. Обычно обозначаются символом H. Предложены Уильямом Гамильтоном в 1843 году.
Кватернионы удобны для описания изометрий трёх- и четырёхмерного евклидовых пространств, и поэтому получили широкое распространение в механике. Также их используют в вычислительной математике, например, при создании трёхмерной графики.
Источник: Кватернионы — Википедия.

Код на Java:

Описание класса:

Стандартное определение

Кватернионы можно определить как формальную сумму a + bi + cj + dk, где a, b, c, d — вещественные числа, а i, j, k — мнимые единицы со следующим свойством: i2 = j2 = k2 = ijk = −1.
Таким образом, таблица умножения базисных кватернионов — 1, i, j, k — выглядит так:

× 1 i j k
1 1 i j k
i i -1 k -j
j j -k -1 i
k k j -1 -1

Сопряжение

Для кватерниона q сопряжённым называется:
conj(q) = a - bi - cj - dk

Модуль

Так же, как и для комплексных чисел,
abs(q) = sqrt(q*conj(q)) = sqrt(a^2 + b^2 + c^2 + d^2)
называется модулем q.

Обращение умножения (деление)

Кватернион, обратный по умножению к q, вычисляется так:
q^-1 = conj(q)/abs(q)^2.

Основная программа:

Ход выполнения

При выполнении происходит проверка функций класса: логических, арифметических, построения объектов, производных от исходного (таких, как сопряженное и обратное значение), функции строкового отображения объекта.

Вывод программы:

Ссылки:

Рабочий код для тестирования на Ideone.com: Ideone.com