Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Создать абстрактный класс Norm с виртуальной функцией вычисления нормы и модуля
- Определить производные классы Complex и Vector3D с собственными функциями вычисления нормы и модуля
- */
- #include <iostream>
- #include <cmath>
- using namespace std;
- class Norm {
- public:
- virtual double absolute() = 0;
- virtual double norm() = 0;
- virtual void show() = 0;
- protected:
- int d, m;
- };
- class Complex : public Norm {
- public:
- Complex(int D, int M) {
- d = D;
- m = M;
- }
- ~Complex() {
- d = m = 0;
- }
- double absolute() {
- return sqrt(d*d + m*m);
- }
- double norm() {
- return absolute() * absolute();
- }
- void show() {
- if (m < 0) {
- cout << "Полученное комплексное число: " << d << " -i" << -m << endl;
- } else if (!m) {
- cout << "Полученное комплексное число: " << d << endl;
- } else {
- cout << "Полученное комплексное число: " << d << " +i" << m << endl;
- }
- }
- };
- class Vector3D : public Norm {
- public:
- Vector3D(int D, int M) {
- d = D;
- m = M;
- }
- ~Vector3D() {
- d = m = 0;
- }
- double absolute() {
- return sqrt(d*d + m*m);
- }
- double norm() {
- int result = max(abs(d), abs(m));
- return result;
- }
- void show() {
- cout << "Полученный вектор: " << d << ' ' << m << endl;
- }
- };
- int main() {
- setlocale(LC_ALL, "Russian");
- int D, M;
- cout << "Введите два произвольных целых числа: "; cin >> D >> M;
- Complex complex(D, M); Vector3D vector(D, M);
- complex.show(); vector.show();
- char choice;
- cout << "Введите, с чем хотите работать (как с комплексным числом --- c как с вектором --- v): "; cin >> choice;
- switch (choice) {
- case ('c'):
- complex.show();
- cout << "Модуль комплексного числа: " << complex.absolute();
- cout << "\nНорма равна: " << complex.norm() << endl;
- break;
- case ('v'):
- vector.show();
- cout << "Модуль вектора: " << vector.absolute();
- cout << "\nНорма вектора равна: " << vector.norm() << endl;
- break;
- }
- char final_choice;
- cout << "Чтобы продолжить работу, нажмите c: "; cin >> final_choice;
- if (final_choice == 'c') {
- main();
- } else {
- system("pause");
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment