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

Дана матрица размера M × N (5 задач) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
09.03.2012, 18:05     Дана матрица размера M × N (5 задач) #1
1. Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов.
2. Дана матрица размера M × N. Найти максимальный среди элементов тех столбцов, которые упорядочены либо по возрастанию, либо по убыванию. Если упорядоченные столбцы в матрице отсутствуют, то вывести 0.
3. Дана матрица размера M × N. Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы (при этом поменяются местами строки с номерами 1 и M, 2 и M – 1 и т. д.).
4. Дана матрица размера M × N. После последнего столбца, содержащего только отрицательные элементы, вставить столбец из нулей. Если требуемых столбцов нет, то вывести матрицу без изменений.
5. Дана квадратная матрица A порядка M. Найти максимальный элемент для каждой ее диагонали, параллельной побочной (начиная с одноэлементной диагонали A1,1).

какие сможете...пожалуйста!
 Комментарий модератора 
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2012, 18:05     Дана матрица размера M × N (5 задач)
Посмотрите здесь:

C++ Matrix25. Дана матрица размера M × N.
Дана матрица размера M × N C++
C++ Дана матрица размера M × N 2 задача
Дана матрица размера M × N (M и N — четные числа) C++
Дана матрица размера M × N. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
09.03.2012, 20:03     Дана матрица размера M × N (5 задач) #2
Задание 1:
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    //размер массива
    const int m = 4, n = 5;
    //инициализация массива
    int mat[m][n] = {{-1, 2, 3, 4, 5},
                     {-6, 7, 8, 9, 0},
                     {-2, 3, 4, 5, 1},
                     {-3, 4, 9, 2, 4}};
    //вывод матрицы 
    cout << "Matrix:" << '\n';
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << mat[i][j] << "  ";
        }
        cout << '\n';
    }
 
    //поиск среднего значения
    double average = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            average += mat[i][j];
        }
    }
    average /= m * n;
 
    //поиск строки и столбца элемента матрицы, наиболее близкого к среднему значению всех ее элементов
    int row = 0, col = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (abs(average - mat[row][col]) > abs(average - mat[i][j]))
            {
                row = i;
                col = j;
            }
        }
    }
 
    //вывод результатов
    cout << "Number of row:" << row + 1 << '\n';
    cout << "Number of column:" << col + 1 << '\n';
    return 0;
}
Проверил, вроде работает. Будут вопросы - пиши.

Добавлено через 13 минут
Задание 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
#include <iostream>
 
using namespace std;
 
int main()
{
    //размер массива
    const int m = 5, n = 5;
    //инициализация массива
    int mat[m][n] = {{-1, 2, 3, 4, 5},
                     {-6, 7, 8, 9, 0},
                     {-2, 3, 4, 5, 1},
                     {-3, 4, 9, 2, 4},
                     {-5, 6, 7, 1, 7}};
    //вывод матрицы перед обработкой 
    cout << "Matrix before:" << '\n';
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << mat[i][j] << "  ";
        }
        cout << '\n';
    }
 
    for (int i = 0; i < m / 2; i++)
    {
        for (int j = 0; j < n; j++)
        {
            int temp = mat[i][j];
            mat[i][j] = mat[m - 1 - i][j];
            mat[m - 1 - i][j] = temp;
        }
    }
 
    //вывод матрицы после обработки
    cout << "Matrix after:" << '\n';
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << mat[i][j] << "  ";
        }
        cout << '\n';
    }
    
    return 0;
}
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
09.03.2012, 20:14  [ТС]     Дана матрица размера M × N (5 задач) #3
первое получается
спасибо
щас 3
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
09.03.2012, 20:20     Дана матрица размера M × N (5 задач) #4
Как я понял:
находится среднее арифметическое всех элементов матрицы, а потом ищем элемент матрицы наиболее близкий к этому самому среднему арифметическому
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
09.03.2012, 20:30  [ТС]     Дана матрица размера M × N (5 задач) #5
спасибо
все получается
miriganua
129 / 100 / 4
Регистрация: 05.02.2012
Сообщений: 241
09.03.2012, 21:13     Дана матрица размера M × N (5 задач) #6
Задание 5:
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    //размер массива
    const int m = 5;
    //инициализация массива
    int mat[m][m] = {{1, 2, 3, 4, 5},
                     {6, 7, 8, 9, 0},
                     {2, 3, 4, 5, 1},
                     {3, 4, 9, 2, 4},
                     {5, 6, 7, 1, 7}};
    //вывод матрицы перед обработкой 
    cout << "Matrix before:" << '\n';
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << mat[i][j] << "  ";
        }
        cout << '\n';
    }
 
    
    int maxElement[2 * m - 1];
    for (int k = 0; k < m; k++)
    {
        maxElement[k] = mat[k][0];
        for (int i = k - 1, j = 1; j <= k; i--, j++)
        {
            if (maxElement[k] < mat[i][j])
            {
                maxElement[k] = mat[i][j];
            }
        }
    }
    for (int k = 1; k < m; k++)
    {
        maxElement[k + 4] = mat[m - 1][k];
        for (int i = m - 2, j = k + 1; j < m; i--, j++)
        {
            if (maxElement[k + 4] < mat[i][j])
            {
                maxElement[k + 4] = mat[i][j];
            }
        }
    }
 
    for (int i = 0; i < 2 * m - 1; i++)
    {
        cout << maxElement[i] << '\n';
    }
    return 0;
}
Не уверен, что правильно
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
09.03.2012, 21:18  [ТС]     Дана матрица размера M × N (5 задач) #7
спасибо) выручил
получается!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2012, 22:33     Дана матрица размера M × N (5 задач)
Еще ссылки по теме:

Дана матрица размера M × N. C++
C++ Дана матрица размера M × N...
C++ Дана матрица размера M × N

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

Или воспользуйтесь поиском по форуму:
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
12.03.2012, 22:33  [ТС]     Дана матрица размера M × N (5 задач) #8
помоги пожалуйста решить 2 и 4
Yandex
Объявления
12.03.2012, 22:33     Дана матрица размера M × N (5 задач)
Ответ Создать тему
Опции темы

Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru