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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
#1

Сглаживание матрицы - C++

03.12.2011, 21:10. Просмотров 1977. Ответов 8
Метки нет (Все метки)

Народ, помогите пожалуйста с задачей. Никак не могу справиться.
Условие на скриншоте. Вариант 9. Заранее спасибо.

 Комментарий модератора 
Соседями элемента Ак в матрице назовем элементы Аkl c i–1 ≤ k ≤ i+1, j–1 ≤ l ≤ j+1,
(k, l) ≠ (i, j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали.
Миниатюры
Сглаживание матрицы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 21:10     Сглаживание матрицы
Посмотрите здесь:

Сглаживание матрицы - C++
Здравствуйте! Попалось задание по программированию на С++ и я даже не знаю как к нему подойти. Помогите пожалуйста. Вот задание: ...

Сглаживание - C++
Здравствуйте. Имеется вот такая простая функция: void DrawStudyExample(HWND hWnd) { HDC hdc; HPEN hPen, hPenOld; ...

Сглаживание сигнала - C++
Приветствую Вас! Возник следующий вопрос: даны показатели датчика, приходят они в виде ступенек. Необходимо "сгладить" или...

Выполнить сглаживание одномерного массива - C++
Описать функцию, выполняющую сглаживание одномерного массива следующим образом: каждый элемент массива заменяется на его среднее...

Как исправить программу (сглаживание функции) - C++
Доброго времени суток) В этой программе я хотел реализовать сглаживание функции и вывести его на экран(по сути пытался перепечатать...

"Сглаживание" массива данных - C++
Доброго времени суток! Работаю над одним приложением и столкнулся со следующей проблемой: Результатом работы программы является некоторый...

В заданной матрицы А (6, 4) найти значение крупнейшего по модулю элемента матрицы - C++
В заданной матрицы А (6,4) найти значение крупнейшего по модулю элемента матрицы, а также его индексы. Вывести исходную матрицу, наибольший...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.12.2011, 22:04     Сглаживание матрицы #2
Если уже имеется матрица A[][] размером N*M, то формируем новую матрицу B[N][M] таким образом:
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
int tmp;
for(i=0; i<N; i++)
    for(j=0; j<M; j++)
    {
        tmp=0;
        if(i>0)
        {
            tmp+=A[i-1][j];
            if(j>0)
                tmp+=A[i-1][j-1];
            if(j<M-1)
                tmp+=A[i-1][j+1];
        }
        if(i<N-1)
        {
            tmp+=A[i+1][j];
            if(j>0)
                tmp+=A[i+1][j-1];
            if(j<M-1)
                tmp+=A[i+1][j+1];           
        }
        if(j>0)
            tmp+=A[i][j-1];
        if(j<M-1)
            tmp+=A[i][j+1];
        B[i][j]=tmp;
    }
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
09.12.2011, 11:13  [ТС]     Сглаживание матрицы #3
Что-то не работает...
BRcr
4006 / 2295 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
09.12.2011, 12:58     Сглаживание матрицы #4
Faul969, не работает не "что-то", а написанная вами с ошибками программа. Так и должно быть, не беспокойтесь
Вы хоть код выложите, а-то все телепаты в данный момент заняты.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.12.2011, 13:09     Сглаживание матрицы #5
Цитата Сообщение от Faul969 Посмотреть сообщение
Что-то не работает...
Весь код покажите.
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
12.12.2011, 10:57  [ТС]     Сглаживание матрицы #6
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
int N=5;
    int M=5;
    int A[5][5]={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};
    int B[5][5];
    int tmp;
    for(int i=0; i<N; i++)
        for(int j=0; j<M; j++)
        {
                tmp=0;
                if(i>0)
                {
                        tmp+=A[i-1][j];
                        if(j>0)
                                tmp+=A[i-1][j-1];
                        if(j<M-1)
                                tmp+=A[i-1][j+1];
                }
                if(i<N-1)
                {
                        tmp+=A[i+1][j];
                        if(j>0)
                                tmp+=A[i+1][j-1];
                        if(j<M-1)
                           
                            tmp+=A[i+1][j+1];                       
                }
                if(j>0)
                        tmp+=A[i][j-1];
                if(j<M-1)
                        tmp+=A[i][j+1];
                B[i][j]=tmp;
        }
    for(int y=0; y<5; y++)
        for(int d=0; d<5; d++)
            cout << B[y][d] << "   ";
alkagolik
Заблокирован
12.12.2011, 11:27     Сглаживание матрицы #7
Faul969, странно что не работает. перезагрузить калькулятор надо. А если и после не заработает, то еще раз... и так пока не запустится. Скорее всего процессор отключает регистр при загрузке системы и уходит в защищенный режим. Если так и не запустится то надо показать специалисту.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
12.12.2011, 11:51     Сглаживание матрицы #8
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
#include <stdio.h>
 
int main()
{
    double A[10][10], B[10][10], tmp;
    int i, j, N=10, col;
    for(i=0; i<N; i++)
        for(j=0; j<N; j++)
        {
            printf("[%d][%d]= ", i, j);
            scanf("%lf", &A[i][j]);
        }
    printf("Ishodn matrica:\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
            printf("%lf ", A[i][j]);
        printf("\n");
    }
    for(i=0; i<N; i++)
        for(j=0; j<N; j++)
        {
                tmp=.0; col=0;
                if(i>0)
                {
                        tmp+=A[i-1][j];
                        col++;
                        if(j>0)
                        {
                            tmp+=A[i-1][j-1];
                            col++;
                        }
                        if(j<N-1)
                        {
                            tmp+=A[i-1][j+1];
                            col++;
                        }
                }
                if(i<N-1)
                {
                        tmp+=A[i+1][j];
                        col++;
                        if(j>0)
                        {
                            tmp+=A[i+1][j-1];
                            col++;
                        }
                        if(j<N-1)
                        {
                            tmp+=A[i+1][j+1];                       
                            col++;
                        }
                }
                if(j>0)
                {
                    tmp+=A[i][j-1];
                    col++;
                }
                if(j<N-1)
                {
                    tmp+=A[i][j+1];
                    col++;
                }
                B[i][j]=tmp/col;
        }
    printf("Sglag matrica:\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
            printf("%lf ", B[i][j]);
        printf("\n");
    }
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2011, 12:24     Сглаживание матрицы
Еще ссылки по теме:

Матрицы: нахождение сумм положительных элементов строк каждой матрицы - C++
программирование с использованием процедур составить программу для нахождения сумм положительных элементов строк каждой матрицы...

Матрицы: удалить из матрицы столбцы, в которых есть равные элементы - C++
1.Необходимо удалить из матрицы столбцы, в которых есть равные элементы: для матрицы: 1 2 3 4 5 3 7 9 8 должно получаться: 1 2 ...

Если след матрицы A[n][m] больше 50, то все эелементы матрицы увеличить на 2. - C++
Если след матрицы A больше 50, то все эелементы матрицы увеличить на 2.

Для заданной матрицы найти такие k, что k-ая строка матрицы совпадает с k-ым столбцом - C++
Для заданной матрицы размером 8 на 8 найти такие k, что k-ая строка матрицы совпадает с k-ым столбцом Найти сумму элементов в тех...

На главной диагонали новой матрицы разместить элементы заданного столбца исходной матрицы - C++
У меня вот небольшой ступр, помогите, пожалуйста. Дана квадратная матрица действительных чисел D размерности NxN. Создать новую матрицу С...


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

Или воспользуйтесь поиском по форуму:
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
12.12.2011, 12:24  [ТС]     Сглаживание матрицы #9
Сори, все работает)) Но не получается только с суммированием под главной диагональю...

Добавлено через 18 минут
Все работает)) Всем спасибо))
Yandex
Объявления
12.12.2011, 12:24     Сглаживание матрицы
Ответ Создать тему
Опции темы

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