- •Лабораторная 5 Первичные классы и объекты
- •Классы определяются с помощью нижеследующих полей:
- •Варианты заданий
- •Примеры выполнения
- •Пример 2
- •Программа
- •Результаты работы программы
- •Пример 3
- •Программа
- •Результаты работы программы
- •Лабораторная 6 Шаблоны функций и классов
- •Варианты заданий
- •Примеры выполнения ргз 2
- •Результаты работы программы
- •Пример 2
- •Программа
- •Лабораторная 7 Производные классы
- •Примеры выполнения ргз 3
- •Программа
- •Результаты работы программы
Лабораторная 5 Первичные классы и объекты
Задание. Определить класс заданного типа. Написать определенные как дружественные функции подпрограммы ввода с клавиатуры и вывода на экран данных, определяющих объекты этого класса. Перегрузить указанные операции и функции с помощью составных функций класса. Определить конструкторы и деструктор.
Классы определяются с помощью нижеследующих полей:
-
Символьная строка состоит из последовательности символов и длины строки.
-
Трехмерный вектор состоит из тройки вещественных чисел.
-
Многочлен от одной переменной задается массивом вещественных коэффициентов и степенью n многочлена.
-
Рациональное число определяется как пара целых чисел – числитель и знаменатель дроби. Дробь несократима и знаменатель больше нуля.
-
Неупакованный BCD состоит из массива цифр, знака и длины этого массива.
-
Битовая строка состоит из массива бит и длины массива. Отрицательные числа представляются аналогично обычным целым числам.
-
Комплексное число представляется парой вещественных чисел – мнимой и действительной частями комплексного числа.
-
Проходящая через начало координат в R3 прямая задается ненулевым направляющим вектором. Если направляющие векторы параллельны и не равны нулю, то соответствующие прямые считаются равными.
-
Прямоугольное окно задается четырьмя числами – координатами левого верхнего и правого нижнего углов.
-
Плоскость в R3, проходящая через начало координат, определяется ненулевым вектором нормали. Плоскости равны, если векторы нормали параллельны.
-
Комплексное число в полярных координатах представляется парой чисел, первое из которых неотрицательно и задает абсолютную величину, а второе является аргументом arg, лежащим в пределах 0 arg < 2.
-
Бинарное отношение определяется с помощью квадратной 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() |
сложение, вычитание и деление значение |