Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
1.66 Кб
Скачать
#include <iostream>
#include <locale>
using namespace std;

class Sedenion {
private:
    double e[16]; // 16 компонент
    
public:
    Sedenion() {
        for (int i = 0; i < 16; i++) e[i] = 0;
    }
    
    Sedenion(double values[16]) {
        for (int i = 0; i < 16; i++) e[i] = values[i];
    }
    
    // Сложение
    Sedenion operator+(const Sedenion& other) const {
        Sedenion result;
        for (int i = 0; i < 16; i++) {
            result.e[i] = e[i] + other.e[i];
        }
        return result;
    }
    
    // Умножение (упрощенное)
    Sedenion operator*(const Sedenion& other) const {
        Sedenion result;
        // Упрощенное умножение - покомпонентное
        for (int i = 0; i < 16; i++) {
            result.e[i] = e[i] * other.e[i];
        }
        return result;
    }
    
    // Вывод
    void print() const {
        cout << e[0];
        for (int i = 1; i < 16; i++) {
            if (e[i] != 0) {
                cout << " + " << e[i] << "e" << i;
            }
        }
        cout << endl;
    }
};

int main() {
    setlocale(LC_ALL, "ru_RU.UTF-8");
    
    double values1[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
    double values2[16] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
    
    Sedenion s1(values1);
    Sedenion s2(values2);
    
    cout << "Седенион 1: "; s1.print();
    cout << "Седенион 2: "; s2.print();
    
    Sedenion sum = s1 + s2;
    cout << "Сумма: "; sum.print();
    
    return 0;
}
Соседние файлы в папке Лаба8