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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Lollipo
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
#1

Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. - C++

07.10.2010, 20:02. Просмотров 1738. Ответов 3
Метки нет (Все метки)

Соседями элемента Аij в матрице назовем элементы Аk! С i-1≤k≤i+1,j-1≤1≤j+1, (k, 1) ≠ (I, j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент который получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали.
Вложения
Тип файла: docx Doc1.docx (77.9 Кб, 46 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 20:02     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
Посмотрите здесь:

Построить результат сглаживания заданной вещественной матрицы C++
C++ Построить результат сглаживания заданной вещественной матрицы размером 10 на 10
C++ В вещественной матрице размером NxN найти максимальный и минимальный элементы.
По заданной вещественной матрице N*M найти C++
предусмотреть динамический захват памяти, решение оформить в виде отдельной функции. В вещественной матрице размером NxN найти максимальный C++
класс вещественной матрицы C++
Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10 C++
Из заданной матрицы A размером получить матрицу В размером по правилу: первый столбец состоит из положительных элементов, второй – из отрицате C++
C++ Из заданной матрицы A размером N*M получить матрицу В размером K*3 по правилу: первый столбец состоит из полож
Считывание вещественной матрицы из файла C++
Произвести сортировку столбцов заданной вещественной матрицы по убыванию элементов последней строки C++
Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
07.10.2010, 21:31     Построить результат сглаживания заданной вещественной матрицы размером 10 на 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
#include <iostream>
 
int main()
{
    const int row = 3;
    const int col = 3;
 
    //создаем исходную матрицу
    int src_arr[row][col] = {   {1,2,3},
                                {4,5,6},
                                {7,8,9} };
 
    std::cout << "First matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << src_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    //создаем целевую (сглаженную) матрицу (тойже размерности)
    int dst_arr[row][col]={};
 
 
    for (int i = 0; i < row; ++i){
        int cnt = 0;
        int sum = 0;
        for (int j = 0; j < col; ++j){
            if ((i + 1) < row) { sum += src_arr[i+1][j]; ++cnt; }
            if ((j + 1) < col) { sum += src_arr[i][j+1]; ++cnt; }
            if ((i - 1) >= 0 ) { sum += src_arr[i-1][j]; ++cnt; }
            if ((j - 1) >= 0 ) { sum += src_arr[i][j-1]; ++cnt; }
 
            dst_arr[i][j] = sum / cnt;
            cnt = 0;
            sum = 0;
        }
    }
 
    std::cout << "Smoothed matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << dst_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}
приложение
Миниатюры
Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.  
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
11.10.2010, 20:46     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. #3
сглаженная матрица 3 на 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
#include <iostream>
 
int main()
{
    const int row = 3;
    const int col = 3;
 
    //создаем исходную матрицу
    int src_arr[row][col] = {   {1,2,3},
                                {4,5,6},
                                {7,8,9} };
 
    std::cout << "First matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << src_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    //создаем целевую (сглаженную) матрицу (тойже размерности)
    int dst_arr[row][col]={};
 
 
    for (int i = 0; i < row; ++i){
        int cnt = 0;
        int sum = 0;
        for (int j = 0; j < col; ++j){
            if ((i + 1) < row) { sum += src_arr[i+1][j]; ++cnt; }
            if ((j + 1) < col) { sum += src_arr[i][j+1]; ++cnt; }
            if ((i - 1) >= 0 ) { sum += src_arr[i-1][j]; ++cnt; }
            if ((j - 1) >= 0 ) { sum += src_arr[i][j-1]; ++cnt; }
 
            dst_arr[i][j] = sum / cnt;
            cnt = 0;
            sum = 0;
        }
    }
 
    std::cout << "Smoothed matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << dst_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}
поменять размерность и найти сумму модулей думаю не составит труда
Lollipo
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
11.10.2010, 20:59  [ТС]     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. #4
Ой спасибо большое! Для меня матрицы это действительно сложно!
Yandex
Объявления
11.10.2010, 20:59     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
Ответ Создать тему
Опции темы

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