Форум программистов, компьютерный форум CyberForum.ru

Перегрузка операторов сложения и умножения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ структура в с++ http://www.cyberforum.ru/cpp-beginners/thread205839.html
подскажите пожалуйста:::: 1.Как сделать чтобы после ввода данных ....они выводились на экран 2.Как в case 2----сделать чтобы выводилась....сред.зп...правильно и с фамилией соответственного работника 3.Как сделать чтобы по выбору case 3....программа закрывалась 4.Как записать в файл: всех сотрудников с их зп+то что выбрали для выполнения в меню 5.нюанс..... почему когда вводишь 1 сотрудника...
C++ Циклическая программа "Задано натуральное число p. Вычислить: 1*2 + 2*3*4 + 4*5*6*7*8 +...+ р*(р+1)*...*2р" Может кто написать цикл к этому заданию? http://www.cyberforum.ru/cpp-beginners/thread205838.html
C++ мне надо с++ лабораторки работа
здраствуйте я иностранный студент в одессе. у меня есть лаб работа который я не магу делать.. Вы можете мне помогот ? вот задании ----------------------------------- задание 1 Дано натуральне число N і одновимірний масив A1, A2, …, AN дійсних чисел. Замінити всі нульові елементи масиву найменшим по модулі, але відмінним від нуля елементом ----------------------------------- задание 2 ...
Удалить заданную цифру из числа C++
Задание: Напишите программу, которая удалит из введенного числа все цифры равные N (N вводится из клавиатуры), и выведет результат на экран. Я для примера взял программу которая говорит палиндром ли это число, или нет. Тут я увидел как доставлять цифры в конец числа. Я уже придумал алгоритм решения этой задачи, но если бы знать как доставить цифру наперед числа. Кто знает подскажите как...
C++ Ошибка в классе "Кошка" http://www.cyberforum.ru/cpp-beginners/thread205823.html
Где ошибка? #include <iostream.h> class Cat { public: int GetAge; void SetAge(int age); void Meow(); private:
C++ Реализация SGN на С помогите плз реализовать програму..или хотя бы подскажите пути реализации.. нужно создать шаблон на 3 числа.найти количество положительных чисел,не используя никакого ветвеления, тэрнарных операций и switch. сказали там нужно реализовать с помощью какойто мат формулы, и сказали что подскажит как это сделать Бейсиковская функция SGN,которая возвращает значение -1 если число отрицательное, 0 -... подробнее

Показать сообщение отдельно
Dead By Sunrise
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 10

Перегрузка операторов сложения и умножения - C++

08.12.2010, 00:40. Просмотров 8099. Ответов 1
Метки (Все метки)

По условию задачи мне необходимо получить сумму и произведение двух матриц с помощью перегрузки операторов сложения и умножения соответственно. Обе матрицы должны быть размерностью 4x4, их элементы задаются пользователем в функции void main(). Ниже приведён мой вариант программы без использования перегрузки операторов, где я просто передаю матрицы в методы класса void summa и void proizvedenie, в которых проводятся вычисления и вывод искомых элементов на экран. Прошу помочь осуществить перегрузку, заранее огромное спасибо

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "stdafx.h"
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
class matrix
{
public:
 
    double sum[4][4];
    double proizvedenieXY[4][4];
    int i, j;
 
    void summa(double (&x)[4][4], int (&y)[4][4])
    {
        cout<<"Summa matrix"<<endl;
        for(int i=0;i<4;i++)
        {
                for(int j=0;j<4;j++)
                sum[i][j] = x[i][j] + y[i][j];
        }
 
        for (i=0;i<4;i++)
        {
            for (j=0;j<4;j++)
            {
                printf("%3.0f ",sum[i][j]);
            }
            printf("\n");
        }
    }
 
    void proizvedenie(double (&x)[4][4], int (&y)[4][4])
    {
        cout<<"Proizvedeniya matrix x*y"<<endl;
    proizvedenieXY[0][0] = x[0][0] * y[0][0] + x[0][1] * y[1][0] + x[0][2] * y[2][0] + x[0][3] * y[3][0];
    proizvedenieXY[0][1] = x[0][0] * y[0][1] + x[0][1] * y[1][1] + x[0][2] * y[2][1] + x[0][3] * y[3][1];
    proizvedenieXY[0][2] = x[0][0] * y[0][2] + x[0][1] * y[1][2] + x[0][2] * y[2][2] + x[0][3] * y[3][2];
    proizvedenieXY[0][3] = x[0][0] * y[0][3] + x[0][1] * y[1][3] + x[0][2] * y[2][3] + x[0][3] * y[3][3];
 
    proizvedenieXY[1][0] = x[1][0] * y[0][0] + x[1][1] * y[1][0] + x[1][2] * y[2][0] + x[1][3] * y[3][0];
    proizvedenieXY[1][1] = x[1][0] * y[0][1] + x[1][1] * y[1][1] + x[1][2] * y[2][1] + x[1][3] * y[3][1];
    proizvedenieXY[1][2] = x[1][0] * y[0][2] + x[1][1] * y[1][2] + x[1][2] * y[2][2] + x[1][3] * y[3][2];
    proizvedenieXY[1][3] = x[1][0] * y[0][3] + x[1][1] * y[1][3] + x[1][2] * y[2][3] + x[1][3] * y[3][3];
 
    proizvedenieXY[2][0] = x[2][0] * y[0][0] + x[2][1] * y[1][0] + x[2][2] * y[2][0] + x[2][3] * y[3][0];
    proizvedenieXY[2][1] = x[2][0] * y[0][1] + x[2][1] * y[1][1] + x[2][2] * y[2][1] + x[2][3] * y[3][1];
    proizvedenieXY[2][2] = x[2][0] * y[0][2] + x[2][1] * y[1][2] + x[2][2] * y[2][2] + x[2][3] * y[3][2];
    proizvedenieXY[2][3] = x[2][0] * y[0][3] + x[2][1] * y[1][3] + x[2][2] * y[2][3] + x[2][3] * y[3][3];
 
    proizvedenieXY[3][0] = x[3][0] * y[0][0] + x[3][1] * y[1][0] + x[3][2] * y[2][0] + x[3][3] * y[3][0];
    proizvedenieXY[3][1] = x[3][0] * y[0][1] + x[3][1] * y[1][1] + x[3][2] * y[2][1] + x[3][3] * y[3][1];
    proizvedenieXY[3][2] = x[3][0] * y[0][2] + x[3][1] * y[1][2] + x[3][2] * y[2][2] + x[3][3] * y[3][2];
    proizvedenieXY[3][3] = x[3][0] * y[0][3] + x[3][1] * y[1][3] + x[3][2] * y[2][3] + x[3][3] * y[3][3];
            for (i=0;i<4;i++)
        {
            for (j=0;j<4;j++)
            {
                printf("%3.0f ",proizvedenieXY[i][j]);
            }
            printf("\n");
        }
    }
};
 
void main()
{
    matrix exemplar;
    double x[4][4];
    int y[4][4];
    int i, j;
    cout<<"Vvedite elementy matritsy x"<<endl;
        for ( i = 0; i < 4; i++ )
    {
        for ( j = 0; j < 4; j++ ) 
        {
            cout << "x["<<i<<"]["<<j<<"]=";
            cin >> x[i][j];
        }
    }
    cout<<"Vvedite elementy matritsy y"<<endl;
        for ( i = 0; i < 4; i++ )
    {
        for ( j = 0; j < 4; j++ ) 
        {
            cout << "y["<<i<<"]["<<j<<"]=";
            cin >> y[i][j];
        }
    }
 
    exemplar.summa(x , y);
    exemplar.proizvedenie(x , y);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru