Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторная по МП 5,6,7.docx
Скачиваний:
4
Добавлен:
04.11.2018
Размер:
69.5 Кб
Скачать

Лабораторная 5 Первичные классы и объекты

Задание. Определить класс заданного типа. Написать определенные как дружественные функции подпрограммы ввода с клавиатуры и вывода на экран данных, определяющих объекты этого класса. Перегрузить указанные операции и функции с помощью составных функций класса. Определить конструкторы и деструктор.

Классы определяются с помощью нижеследующих полей:

  1. Символьная строка состоит из последовательности символов и длины строки.

  2. Трехмерный вектор состоит из тройки вещественных чисел.

  3. Многочлен от одной переменной задается массивом вещественных коэффициентов и степенью n многочлена.

  4. Рациональное число определяется как пара целых чисел – числитель и знаменатель дроби. Дробь несократима и знаменатель больше нуля.

  5. Неупакованный BCD состоит из массива цифр, знака и длины этого массива.

  6. Битовая строка состоит из массива бит и длины массива. Отрицательные числа представляются аналогично обычным целым числам.

  7. Комплексное число представляется парой вещественных чисел – мнимой и действительной частями комплексного числа.

  8. Проходящая через начало координат в R3 прямая задается ненулевым направляющим вектором. Если направляющие векторы параллельны и не равны нулю, то соответствующие прямые считаются равными.

  9. Прямоугольное окно задается четырьмя числами – координатами левого верхнего и правого нижнего углов.

  10. Плоскость в R3, проходящая через начало координат, определяется ненулевым вектором нормали. Плоскости равны, если векторы нормали параллельны.

  11. Комплексное число в полярных координатах представляется парой чисел, первое из которых неотрицательно и задает абсолютную величину, а второе является аргументом arg, лежащим в пределах 0  arg < 2.

  12. Бинарное отношение определяется с помощью квадратной n x n матрицы, состоящей из нулей и единиц и числа n.

Варианты заданий

1. Символьная строка

++

--

int length()

циклический сдвиг вправо,

циклический сдвиг влево,

длина строки

2. Трехмерный вектор

*

+

-

double abs()

векторное произведение

сумма векторов

разность векторов

длина вектора

3. Многочлен от одной

переменной

*

+

-

double cs()

произведение,

сумма,

разность,

свободный коэффициент

4. Прямая в R3,

проходящая через

начало координат

*

==

прямая, перпендикулярная к прямым

проверка на равенство

5. Бинарное отношение

n x n

*

+

int sym()

композиция отношений,

объединение,

проверка на симметричность

6. Трехмерный вектор

+

--

[]

float abs()

сумма векторов

разность векторов

координата с данным номером

длина вектора

7. Битовая строка

<, >

==

long abs()

сравнения величин

проверка на равенство

значение числа, определяемого битовой строкой

8. BCD неупакованный

+, -

*

BCD abs()

сложение и вычитание

умножение

абсолютная величина, возвращается BCD

9. Битовая строка

+

-

BIT abs()

сложение чисел

вычитание чисел

абсолютная величина, возвращается битовая строка

10. Прямоугольное окно

*

+

int S()

пересечение,

наименьшее окно, содержащее данные два окна,

площадь окна

11. Рациональное число

+, -

*

RAT abs()

сумма и разность

произведение

модуль, возвращается рациональное число

12. Символьная строка

=

-

+

int length

присваивание,

обращение,

конкатенация,

длина строки

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

+,-

*, /

float abs()

float arg()

сумма и разность

произведение и частное

модуль,

аргумент

14. Рациональное число

*, <, >,

==

float abs()

умножение и сравнения

сравнение на равенство

значение

15. Трехмерные вектора

+,-

*

float abs()

сумма и разность,

векторное произведение

длина вектора

16. Плоскость в R3

*

==

перпендикулярная плоскость к

двум плоскостям,

проверка на равенство

17. Символьная строка

=

<=, >=

присваивание

сравнение относительно лексико-графического отношения порядка

18. Трехмерные векторы

*

+,-,

float abs()

скалярное произведение,

сумма, разность

длина

19. Бинарное отношение

n x n

<=

<

*

int trans()

включение

строгое включение

композиция

проверка на транзитивность

20. Трехмерный вектор

+

-

float abs()

Vol(a,b,c)

сложение векторов

вычитание

длина вектора

смешанное произведение

21. Символьная строка

==

=

<=

int length()

проверка на равенство,

присваивание,

подстрока,

длина строки

22. Бинарное отношение

*

-

<=

int antisym()

пересечение,

обращение (унарная операция)

включение,

проверка на антисимметричность

23. Битовая строка

+, -

++, --

сложение и вычитание

прибавить или вычесть единицу

24. Комплексные числа в полярных координатах

+, -

*

float Re()

float Im()

сумма и разность

произведение

вещественная часть

мнимая часть

25. Битовая строка

&, |, !

double value()

поразрядные логические операции,

значение

26. Битовая строка

>>

<<

[]

double value()

сдвиг вправо,

сдвиг влево,

значение бита с заданным номером

27. Вектор n-мерный

*

+, -

float abs()

скалярное произведение,

сумма и разность

длина вектора

28. Матрица n x n

+, -

*

float norma()

сумма и разность

произведение матриц

норма

29. Битовая строка

+

-

double value()

сумма

минус унарный

30. BCD неупакованный

+, - , /

double abs()

сложение, вычитание и деление

значение