0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 9
1

Получить новую матрицу путем умножения всех элементов данной матрицы на ее наибольший по модулю элемент

27.01.2019, 13:55. Показов 1673. Ответов 1

Помогите написать код для следующей программы, пожалуйста, ++реп гарантирован.

Составить алгоритм обработки матрицы А типа
short размером М*х N (М≤10 строк, N≤10 столбцов). Значения М и N
ввести с клавиатуры с проверкой на допустимые значения.

Предусмотреть возможность ввода значений элементов
матрицы пользователем и с помощью датчика случайных
чисел.

Необходимо вывести исходную матрицу и результаты,
указанные в варианте задания. Значения М и N ввести с клавиатуры.


В программе должны быть предусмотрены подпрограммы
ввода-вывода элементов матрицы и ее обработки. Исходные данные
должны вводиться корректно и с проверкой на область допустимых
значений. Тип результата определяется из контекста задачи.

Получить новую матрицу путем умножения всех элементов
данной матрицы на ее наибольший по модулю элемент.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2019, 13:55
Ответы с готовыми решениями:

Получить новую матрицу путем умножения всех элементов данной матрицы на ее наименьший по модулю элемент
Получить новую матрицу путем умножения всех элементов данной матрицы на ее наименьший по модулю...

Получить новую матрицу путем деления всех элементов данной матрицы на её наибольший по модулю элемент
Дана действительная матрица размера n*m, в которой не все элементы равны нулю. Получить новую...

Получить новую матрицу путём деления всех элементов данной матрицы на наибольший по модулю элемент
Дана действительная матрица размером n*m. Получить новую матрицу путём деления всех элементов...

Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент
Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю...

1
9 / 6 / 3
Регистрация: 01.07.2018
Сообщений: 49
28.01.2019, 17:32 2
Лучший ответ Сообщение было отмечено Brainiac как решение

Решение

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
#include <iostream>
#include <random>
#include <cmath>
 
using namespace std;
 
void inputMatrix(short **mtx, int m, int n) // ввод пользователем
{
    for(int i = 0; i < m; i++)
        for(int j = 0; j < n; j++)
            cin >> mtx[i][j];
}
short getRandomNumber(int min, int max)
{
    random_device rd;
    mt19937 mt(rd());
    uniform_int_distribution<short> dist(min, max);
    return dist(mt);
}
void randInputMatrix(short **mtx, int m, int n, int a, int b) // заполнение случайными числами в диапазоне от a до b
{
    for(int i = 0; i < m; i++)
        for(int j = 0; j < n; j++)
            mtx[i][j] = getRandomNumber(a, b);
}
void outputMatrix(short **mtx, int m, int n)
{
    for(int i = 0; i < m; i++)
    {
        for(int j = 0; j < n; j++)
            cout << mtx[i][j] << " ";
        cout << endl;
    }
}
short findMaxElement(short **mtx, int m, int n) // возвращает максимальный по модулю элемент
{
    int maxElRow = 0, maxElColumn = 0;
    short max = abs(mtx[0][0]);
    for(int i = 0; i < m; i++)
        for(int j = 0; j < n; j++)
            if(abs(mtx[i][j]) > max)
            {
                max = abs(mtx[i][j]);
                maxElRow = i;
                maxElColumn = j;
            }
    return mtx[maxElRow][maxElColumn];
}
void mulMatrix(short **mtx, int m, int n, short num)
{
    
    for(int i = 0; i < m; i++)
        for(int j = 0; j < n; j++)
            mtx[i][j] *= num;
}
 
int main()
{
    int M, N;
    cin >> M >> N;
    if(M <= 0 || N <= 0)
    {
        cout << "The number of rows and columns of the matrix must be greater than 0\n";
        return -1;
    }
    short **A = new short *[M];
    for(int i = 0; i < M; i++)
        A[i] = new short [N];
    
    randInputMatrix(A, M, N, -100, 100);
    
    outputMatrix(A, M, N);
    cout << endl;
    
    short maxElem = findMaxElement(A, M, N);
    cout << "Absolute value of the maximum matrix element is " << maxElem << "\n\n";
    mulMatrix(A, M, N, maxElem);
    
    outputMatrix(A, M, N);
    cout << endl;
    
    for(int i = 0; i < M; i++)
        delete [] A[i];
    return 0;
}
Добавлено через 53 минуты
Я ошибся, в 61 строке условие должно быть таким
C++
1
if(M <= 0 || M > 10 || N <= 0 || N > 10)
Добавлено через 2 минуты
Я ошибся, в 61-65 строках условие должно быть таким
C++
1
2
3
4
5
if(M <= 0 || M > 10 || N <= 0 || N > 10)
{
    cout << "The number of rows and columns of the matrix must be greater than 0 and less than 11\n";
    return -1;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2019, 17:32
Помогаю со студенческими работами здесь

Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент
помогите с задачей,надо написать код на с++ Дана действительная матрица размером m×n, в...

Получить матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент
Задание: написать программу согласно заданию. Дана целочисленная матрица размера 5х5. Получить...

Получить новую матрицу путем деления всех элементов исходной матрицы на ее наибольший по модулю элемент
2)Задан двумерный массив А. Получить новую матрицу путем деления всех элементов исходной матрицы...

Получить новую матрицу путём деления всех элементов заданной матрицы на наибольший по модулю элемент
знаю что уже много где написано про это, но никак не могу докрутить. есть такой код. а задание...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru