Перевантаження операцій
Завдання:
Створіть клас, що реалізовує тип даних у відповідності з наданим варіантом. Реалізуйте подані у таблиці операції над об’єктами класу (*). Організуйте введення та виведення даних за допомогою класів-потоків сin та cout (перевантажте операції «взяти з потоку» та «передати в потік»). Напишіть програму, яка демонструє роботу з об'єктами створеного класу.
(*) Особливості завдання:
(низька складність)
Реалізуйте на власний вибір 1/2 з усіх поданих у таблиці 8.НС операцій для свого варіанту.
(середня складність)
Реалізуйте на власний вибір 4/5 з усіх поданих у таблиці 8.НС операцій для свого варіанту.
(висока складність)
Реалізуйте на власний вибір 4/5 з усіх поданих у таблиці 8.В операцій для свого варіанту.
Таблиця 8.НС – Варіанти завдань низької та середньої складності
Варіант |
Тип даних |
Операції | ||
Значення |
Позначення |
Приклад | ||
|
комплексне число |
|
+ |
+с |
|
- |
-с | ||
|
~ |
~c | ||
|
++ |
с++ | ||
++с | ||||
|
-- |
с-- | ||
--с | ||||
|
+ |
с1 + с2 | ||
|
с + d d + c | |||
|
– |
с1 – с2 | ||
|
с – d d – c | |||
|
* |
с1 * с2 | ||
|
с * d d * c | |||
|
/ |
с1 / с2 | ||
|
с / d d / c | |||
|
^(-1) |
с ^ (-1) | ||
|
+= |
с1 += с2 | ||
|
с += d | |||
|
–= |
с1 –= с2 | ||
|
с –= d | |||
|
*= |
с1 *= с2 | ||
|
с *= d | |||
|
/= |
с1 /= с2 | ||
|
с /= d | |||
|
^= -1 |
с ^= -1 | ||
|
== |
с1 == с2 | ||
|
!= |
с1 != с2 | ||
|
подвійне число |
|
+ |
+с |
|
- |
-с | ||
|
~ |
~c | ||
|
++ |
с++ | ||
++с | ||||
|
-- |
с-- | ||
--с | ||||
|
+ |
с1 + с2 | ||
|
с + d d + c | |||
|
– |
с1 – с2 | ||
|
с – d d – c | |||
|
* |
с1 * с2 | ||
|
с * d d * c | |||
|
/ |
с1 / с2 | ||
|
с / d d / c | |||
|
^(-1) |
с ^ (-1) | ||
|
+= |
с1 += с2 | ||
|
с += d | |||
|
–= |
с1 –= с2 | ||
|
с –= d | |||
|
*= |
с1 *= с2 | ||
|
с *= d | |||
|
/= |
с1 /= с2 | ||
|
с /= d | |||
|
^= -1 |
с ^= -1 | ||
|
== |
с1 == с2 | ||
|
!= |
с1 != с2 | ||
|
дуальне число |
|
+ |
+с |
|
- |
-с | ||
|
++ |
с++ | ||
++с | ||||
|
-- |
с-- | ||
--с | ||||
|
+ |
с1 + с2 | ||
|
с + d d + c | |||
|
– |
с1 – с2 | ||
|
с – d d – c | |||
|
* |
с1 * с2 | ||
|
с * d d * c | |||
|
/ |
с1 / с2 | ||
|
с / d d / c | |||
|
+= |
с1 += с2 | ||
|
с += d | |||
|
–= |
с1 –= с2 | ||
|
с –= d | |||
|
*= |
с1 *= с2 | ||
|
с *= d | |||
|
/= |
с1 /= с2 | ||
|
с /= d | |||
|
== |
с1 == с2 | ||
|
!= |
с1 != с2 | ||
|
кватерніон (дійсний) |
|
+ |
+с |
|
- |
-с | ||
|
~ |
~c | ||
|
++ |
с++ | ||
++с | ||||
|
-- |
с-- | ||
--с | ||||
|
+ |
с1 + с2 | ||
|
с + d d + c | |||
|
– |
с1 – с2 | ||
|
с – d d – c | |||
|
* |
с1 * с2 | ||
|
с * d d * c | |||
|
^(-1) |
с ^ (-1) | ||
|
+= |
с1 += с2 | ||
|
с += d | |||
|
–= |
с1 –= с2 | ||
|
с –= d | |||
|
*= |
с1 *= с2 | ||
|
с *= d | |||
|
^= -1 |
с ^= -1 | ||
|
== |
с1 == с2 | ||
|
!= |
с1 != с2 | ||
|
дріб |
|
+ |
+f |
|
- |
-f | ||
|
++ |
f++ | ||
++f | ||||
|
-- |
f-- | ||
--f | ||||
|
+ |
f1 + f2 | ||
|
f + i i + f | |||
|
– |
f1 – f2 | ||
|
f – i i – f | |||
|
* |
f1 * f2 | ||
|
f * i i * f | |||
|
/ |
f1 / f2 | ||
|
f / i i / f | |||
|
^ |
f ^ n | ||
|
+= |
f1 += f2 | ||
|
f += i | |||
|
–= |
f1 –= f2 | ||
|
f –= i | |||
|
*= |
f1 *= f2 | ||
|
f *= i | |||
|
/= |
f1 /= f2 | ||
|
f /= i | |||
|
^= |
f ^= n | ||
|
== |
f1 == f2 | ||
|
> |
f1 > f2 | ||
|
>= |
f1 >= f2 | ||
|
< |
f1 < f2 | ||
|
<= |
f1 <= f2 | ||
|
!= |
f1 != f2 | ||
|
двовимірний вектор (вільний) |
|
+ |
+v |
|
- |
-v | ||
|
~ |
~v | ||
|
++ |
v++ | ||
++v | ||||
|
-- |
v-- | ||
--v | ||||
|
+ |
v1 + v2 | ||
|
– |
v1 – v2 | ||
|
* |
v1 * v2 | ||
|
v * d d * v | |||
|
+= |
v1 += v2 | ||
|
–= |
v1 –= v2 | ||
|
*= |
v1 *= v2 | ||
|
v *= d | |||
|
== |
v1 == v2 | ||
|
!= |
v1 != v2 | ||
|
тривимірний вектор (вільний) |
1-15) аналогічні операції попереднього варіанту |
–//– |
–//– |
Таблиця 8.В – Варіанти завдань високої складності
Варіант |
Тип даних |
Операції | ||
Значення |
Позначення |
Приклад | ||
|
матриця (двовимірна, або прямокутна) |
|
+ |
+M |
|
- |
-M | ||
|
++ |
M++ | ||
++M | ||||
|
-- |
M-- | ||
--M | ||||
|
+ |
М1 + М2 | ||
|
– |
М1 – М2 | ||
|
* |
М1 * М2 | ||
|
М * а а * М | |||
|
/ |
М1 / М2 | ||
|
^ |
M ^ n | ||
|
^(-1) |
M ^ (-1) | ||
|
~ |
~M | ||
|
+= |
М1 += М2 | ||
|
–= |
М1 –= М2 | ||
|
*= |
М1 *= М2 | ||
|
М *= а | |||
|
/= |
М1 /= М2 | ||
|
^= |
M ^= n | ||
|
^= -1 |
M ^= -1 | ||
|
== |
М1 == М2 | ||
|
!= |
М1 != М2 | ||
|
множина (дійсних чисел) |
|
& |
S1 & S2 |
|
+ |
S1 + S2 | ||
|
– |
S1 – S2 | ||
|
/ |
S1 / S2 | ||
|
|
| ||
|
[] |
S[i] | ||
|
() |
S(i1,i2) | ||
|
() |
S(d1,d2) | ||
|
&= |
S1 &= S2 | ||
|
+= |
S1 += S2 | ||
|
–= |
S1 –= S2 | ||
|
/= |
S1 /= S2 | ||
|
+= |
S += d | ||
|
–= |
S –= d S –= S[i] | ||
|
== |
S1 == S2 | ||
|
!= |
S1 != S2 | ||
|
многочлен (з дійсними коефіцієнтами) |
|
+ |
+P |
|
- |
-P | ||
|
+ |
P1 + P2 | ||
|
P + d d + P | |||
|
– |
P1 – P2 | ||
|
P – d d – P | |||
|
* |
P1 * P2 | ||
|
P * d d * P | |||
|
/ |
P / d | ||
|
^ |
P ^ n | ||
|
+= |
P1 += P2 | ||
|
P += d | |||
|
–= |
P1 –= P2 | ||
|
P –= d | |||
|
*= |
P1 *= P2 | ||
|
P *= d | |||
|
/= |
P /= d | ||
|
^= |
P ^= n | ||
|
== |
P1 == P2 | ||
|
!= |
P1 != P2 | ||
|
довге число |
|
+ |
+L |
|
- |
-L | ||
|
++ |
L++ | ||
++L | ||||
|
-- |
L-- | ||
--L | ||||
|
+ |
L1 + L2 | ||
|
L + i i + L | |||
|
– |
L1 – L2 | ||
|
L – i i – L | |||
|
* |
L1 * L2 | ||
|
L * i i * L | |||
|
/ |
L1 / L2 | ||
|
L / i i / L | |||
|
^ |
L ^ n | ||
|
+= |
L1 += L2 | ||
|
L += i | |||
|
–= |
L1 –= L2 | ||
|
L –= i | |||
|
*= |
L1 *= L2 | ||
|
L *= i | |||
|
/= |
L1 /= L2 | ||
|
L /= i | |||
|
^= |
L ^= n | ||
|
== |
L1 == L2 | ||
|
> |
L1 > L2 | ||
|
>= |
L1 >= L2 | ||
|
< |
L1 < L2 | ||
|
<= |
L1 <= L2 | ||
|
!= |
L1 != L2 |