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

Определить дружественную функцию умножения "матрицы" на "вещественное"

11.01.2023, 02:16. Показов 238. Ответов 1
Метки c++ (Все метки)

Author24 — интернет-сервис помощи студентам
Создать два класса: Вещественное_число (float) и Матрица (float **). Определить
функцию умножения матрицы на число как дружественную.

Проблема в умножении матрицы на вещ. число

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
#include <string>
#include <iostream>
#include <cmath>
#include <clocale>
#include <Windows.h>
using namespace std;
 
class Float {
private:
    float Num = 0.0;
public:
    Float(float _Num) {
        Num = _Num;
        cout << "Введите вещественное число = "; cin >> Num;
        cout << endl;
 
    };
    int Slip() {
        return Num;
    };
    friend float Mult(Matrix ob1, Float ob2);
};
 
class Matrix {
private:
    int Length = 0;
    int Heigth = 0;
    float Arr[10][10] = { 0.0 };
 
public:
    Matrix(int _Length, int _Heigth) {
        cout << "Укажите высоту массива: "; cin >> _Heigth;
        Heigth = _Heigth;
        cout << "Укажите длину массива: "; cin >> _Length;
        Length = _Length;
    };
    void Matr() {
        cout << "Введите элементы массива " << endl;
        for (int i = 0; i < Heigth; i++)
            for (int j = 0; j < Length; j++)
                cin >> Arr[i][j];
        cout << endl << "Матрица задана" << endl << endl;
    }
    void Show() {
        for (int i = 0; i < Heigth; i++) {
            for (int j = 0; j < Length; j++) {
                cout << "A[" << i << "][" << j << "] = " << Arr[i][j] << "  ";
            }
            cout << endl;
        }
    }
    float Mult(Matrix ob1, Float ob2) {
        Matrix res{0.0, 0.0};
        for (int i = 0; i < Heigth; i++) {
            int sum = 0;
            for (int j = 0; i < Length; j++)
                sum += Arr[i][j] * Num.Slip(); //Error (Num не определён)
        }
    }
};
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "Russian");
 
    Matrix ob1(0.0, 0.0);
    Float ob2(0.0);
    
    ob1.Matr();
    ob1.Show();
    if (Mult(ob1, ob2)) cout << "Умножение матрицы на вещественное число: " << Mult; //Error (Mult не определён)
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2023, 02:16
Ответы с готовыми решениями:

Определить дружественную функцию умножения "матрицы" на "вещественное"
Помогите пожалуйста сделать практическую, срочно Создать два класса: вещественные (Float) и...

Создать два класса: вектор и матрица; определить функцию умножения матрицы на вектор, как дружественную
Cоздать два класса: вектор и матрица. Определить конструкторы(по умолчанию, с параметрами,...

Определить функцию умножения матрицу на вектор как дружественную
Создать два класса вектор (double *) и матрица (double **). Определить конструкторы - по умолчанию,...

Определить функцию умножения матрицу на вектор как дружественную
Создать два класса вектор (int *) и матрица (int **). Определить конструкторы - по умолчанию, с...

Определить дружественную функцию умножения "матрицу" на "целое"
Создать два класса: целые(Integer) и матрица (int **). Определить конструкторы - по умолчанию, с...

1
1710 / 1110 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
11.01.2023, 12:10 2
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
#include <iostream>
#include <cmath>
#include <clocale>
#include <Windows.h>
using namespace std;
 
class Float {
private:
    float Num = 0.0;
public:
    Float(float _Num) {
        Num = _Num;
    //  cout << "Введите вещественное число = "; cin >> Num; // 0____o ?????????????????????????
    //  cout << endl;
 
    };
    //int Slip() {
    float Slip() const {
        return Num;
    };
//  friend float Mult(Matrix ob1, Float ob2);
};
 
class Matrix {
private:
    int Length = 0;
    int Heigth = 0;
    float Arr[10][10] = { 0.0 }; ///// ....
 
public:
    Matrix(int _Length, int _Heigth) {
    //  cout << "Укажите высоту массива: "; cin >> _Heigth; // 0_____0 ????????????????????????
        Heigth = _Heigth;
    //  cout << "Укажите длину массива: "; cin >> _Length; // 0_____0 ????????????????????????
        Length = _Length;
    };
    void Matr() {
        cout << "Введите элементы массива " << Length << " x " << Heigth << endl;
        for(int i = 0; i < Heigth; i++)
            for(int j = 0; j < Length; j++)
                cin >> Arr[i][j];
        cout << endl << "Матрица задана" << endl << endl;
    }
    void Show() {
        for(int i = 0; i < Heigth; i++) {
            for(int j = 0; j < Length; j++) {
                cout << "A[" << i << "][" << j << "] = " << Arr[i][j] << "  ";
            }
            cout << endl;
        }
    }
 
    friend void Mult(Matrix& ob1, const Float& ob2);
    /*  float Mult(Matrix ob1, Float ob2) {
            Matrix res { 0.0, 0.0 };
            for(int i = 0; i < Heigth; i++) {
                int sum = 0;
                for(int j = 0; i < Length; j++)
                    sum += Arr[i][j] * Num.Slip(); //Error (Num не определён)
            }
        }*/
};
 
//float Mult(Matrix ob1, Float ob2) {
void Mult(Matrix& ob1, const Float& ob2) {
    //Matrix res { 0.0, 0.0 }; // ??????????????????
    //for(int i = 0; i < Heigth; i++) {
    for(int i = 0; i < ob1.Heigth; i++) {
    //  int sum = 0; ???????
    //  for(int j = 0; i < Length; j++) /// i != j
        for(int j = 0; j < ob1.Length; j++)
        //  sum += Arr[i][j] * Num.Slip(); //Error (Num не определён) // ????????????
            ob1.Arr[i][j] *= ob2.Slip();
    }
}
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_ALL, "Russian");
 
 
//  Matrix ob1(0.0, 0.0);
//  Float ob2(0.0);
    Matrix ob1(2, 3);
    Float ob2(2.21);
 
    ob1.Matr();
    ob1.Show();
    //if(Mult(ob1, ob2)) cout << "Умножение матрицы на вещественное число: " << Mult; //Error (Mult не определён) // 0_______________0
 
    Mult(ob1, ob2);
 
    std::cout << "\nRes: \n\n";
    ob1.Show();
 
 
    return 0;
}
0
11.01.2023, 12:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2023, 12:10
Помогаю со студенческими работами здесь

Создать класс Rational для арифметических действий с дробями и дружественную функцию для умножения дробей
Создать класс Rational для выполнения арифметических действий с дробями. Использовать целые...

Создать дружественную функцию для вывода матрицы на экран
Нужно создать дружественную функцию для вывода матрицы на экран. Не могу разобраться с этой темой...

Как определить дружественную функцию шаблонного класса?
Подскажите, пожалуйста, как определить дружественную функцию какого-то определенного шаблона? ...

Определить унарный оператор ++ как дружественную функцию
Есть программа: #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std;...

Определить функцию получения новой матрицы путем умножения всех ее элементов на максимальный элемент
Создать два класса: вектор типа double размером m и матрицу типа double размером n×m....


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

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