Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.02.2016
Сообщений: 2
1

Классы, наследование, перегрузка

01.01.2018, 18:31. Показов 358. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, если кто сможет,нужно переделать следующий код в соответствии со следующими пунктами. Заранее спасибо!!!

1.Компоновка функций и данных в классы, соответствующие вектору и матрице.
2.Наследование класса вектора от класса матрицы.
3. Перегрузка операторов умножения, сложения и оператора <<.





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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include <iostream>
#include <locale.h> //отвечает за локализацию
#include <iomanip>
#include "stdafx.h"
int mat1[3][3];
int mat2[3][3];
 
int mat3[3][3];
int mat4[3][3];
int mat5[3][3];
 
int vec1[3];
int vec2[3];
int vec3[3];
int vec4[3];
int vec5;
 
int mum(int mat1[3][3], int mat2[3][3], int mat3[3][3]) // Матрица1 * Матрица2
{
    setlocale(LC_ALL, "Rus");//setlocale- задаёт локализацию программы. По умолчанию это только английский язык.
    //LC_ALL- указывает программе, что локализированы будут все функции.
    //“Rus”- говорит о том, что локализация произойдёт на русский язык.
 
    std::cout << " Ввод элементов матрицы 1 (3x3): " << std::endl;
    for (int i = 0; i<3; i++) //Цикл по переменной i, перебираем строки матрицы
    for (int j = 0; j<3; j++) //Цикл по переменной j, перебираем элементы внутри строки
        std::cin >> mat1[i][j]; //Ввод очередного элемента матрицы
    std::cout << std::endl;
 
    std::cout << " Ввод элементов матрицы 2 (3x3): " << std::endl;
    for (int i = 0; i<3; i++) //Цикл по переменной i, перебираем строки матрицы
    for (int j = 0; j<3; j++) //Цикл по переменной j, перебираем элементы внутри строки
        std::cin >> mat2[i][j]; //Ввод очередного элемента матрицы
    std::cout << std::endl;
 
    std::cout << " Ввод элементов вектора 1 (3-эл): " << std::endl;
    for (int i = 0; i < 3; i++) {   //Цикл по переменной i, перебираем элементов вектора
        std::cin >> vec1[i];        //Ввод очередного элемента вектора
    }
    std::cout << std::endl;
 
    std::cout << " Ввод элементов вектора 2 (3-эл): " << std::endl;
    for (int i = 0; i < 3; i++) {   //Цикл по переменной i, перебираем элементов вектора
        std::cin >> vec2[i];        //Ввод очередного элемента вектора
    }
    std::cout << std::endl;
 
    std::cout << "  mat1 * mat2 = mat3 :" << std::endl;
    std::cout << "  ------------------------- " << std::endl;
 
    for (int i = 0; i <3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            for (int k = 0; k < 3; k++)
            {
                mat3[i][j] = mat3[i][j] + mat1[i][k] * mat2[k][j];
            }
        }
    }
    return 0;
}
 
int muv(int mat1[3][3], int vec1[3], int mat4[3][3]) // Матрица1 * Вектор1
{
    std::cout << " \n " << " mat1 * vec1 = mat4 : " << " \n ";
    std::cout << " ------------------------- " << std::endl;
    int s = 0;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            for (int k = 0; k < 3; k++)
            {
                s = s + mat1[i][k];
            }
            mat4[i][j] = s*vec1[j];
            s = 0;
        }
    }
    return 0;
}
 
int mpm(int mat1[3][3], int mat2[3][3], int mat5[3][3]) // Матрица1 + Матрица2
{
    std::cout << " \n " << " mat1 + mat2 = mat5 :" << " \n ";
    std::cout << " ------------------------- " << std::endl;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            mat5[i][j] = mat1[i][j] + mat2[i][j];
        }
    }
    return 0;
}
 
int vpv(int vec1[3], int vec2[3], int vec3[3]) // Вектор1 + Вектор2
{
    std::cout << " \n " << " vec1 + vec2 = vec3 :" << " \n ";
    std::cout << " ------------------------- " << std::endl;
    for (int i = 0; i < 3; i++)
    {
        vec3[i] = vec1[i] + vec2[i];
    }
    return 0;
}
 
int vuv1(int vec1[3], int vec2[3], int vec4[3]) // Вектор * Вектор (векторный)
{
    std::cout << " \n " << " \n " << " (vec) vec1 * vec2 = vec4 :" << " \n ";
    std::cout << " ------------------------- " << std::endl;
    vec4[0] = (vec1[1] * vec2[2]) - (vec2[1] * vec1[2]);
    vec4[1] = (vec1[0] * vec2[2]) - (vec2[0] * vec1[2]);
    vec4[2] = (vec1[0] * vec2[1]) - (vec2[0] * vec1[1]);
    return 0;
}
 
int vuv2(int vec1[3], int vec2[3], int &vec5) // Вектор * Вектор (скалярный)
{
    std::cout << " \n " << " \n " << " (scal) vec1 * vec2 = vec5 :" << " \n ";
    std::cout << " ------------------------- " << std::endl;
    for (int i = 0; i < 3; i++)
    {
        vec5 = vec5 + (vec1[i] * vec2[i]);
    }
    return 0;
}
 
int main()
{
    // Вывод Матрица1 * Матрица2 :
    mum(mat1, mat2, mat3);
    for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { std::cout << "  " << mat3[i][j] << " \t "; }std::cout << " \n"; }
 
    // Вывод Матрица1 * Вектор1 :
    muv(mat1, vec1, mat4);
    for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { std::cout << "  " << mat4[i][j] << " \t "; }std::cout << " \n"; }
 
    // Вывод Матрица1 + Матрица2 :
    mpm(mat1, mat2, mat5);
    for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { std::cout << "  " << mat5[i][j] << " \t "; }std::cout << " \n"; }
 
    // Вывод Вектор1 + Вектор2 :
    vpv(vec1, vec2, vec3);
    for (int i = 0; i < 3; i++) { std::cout << "  " << vec3[i] << " \t "; }
 
    // Вывод Вектор * Вектор (векторный) :
    vuv1(vec1, vec2, vec4);
    for (int i = 0; i < 3; i++) { std::cout << "  " << vec4[i] << " \t "; }
 
    // Вывод Вектор * Вектор (скалярный) :
    vuv2(vec1, vec2, vec5);
    std::cout << "  " << vec5 << std::endl;
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.2018, 18:31
Ответы с готовыми решениями:

Наследование. Классы. Перегрузка '=' и иже с ними
Всем доброго самого. Вопрос для уточнения. Есть класс: class A { public: ...

Нужен код, в котором есть: Классы, Наследование, Виртуальная функция, Перегрузка операторов
Скоро сдавать лабораторные работы, помогите пожалуйста)) Если можете, пришлите код, в котором есть:...

Наследование, базовые классы и производные классы
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы...

0
01.01.2018, 18:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.01.2018, 18:31
Помогаю со студенческими работами здесь

Наследование и перегрузка <<
Здравствуйте! Столкнулся со следующей проблемой: class A { int data,info; // .. public:...

Наследование и перегрузка операторов.
У меня есть базовый класс class myfloat { protected: int c; int z; void reduce();...

Наследование и перегрузка операторов
Помогите, пожалуйста! Ткните носом в ошибки.. не судите строго - первая прога в С++, как и в...

Наследование, перегрузка, конструктор
#include &lt;iostream&gt; class animal { public: animal() { } animal(int a) { age = a; }...

Наследование. Перегрузка операторов
Не понятно, почему компилятор ругается на 49 строку - &quot;отстутствует оператор &quot;++&quot;, соответствующий...

Наследование от ofstream и перегрузка <<
Добрый день, гуглил на английском языке, но ответа не попалось. Предыстория: некий объекта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru