Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

Моделирование функции заданной с погрешностью и сглаживание выбросов - C++
Приветствую профессионалов кодинга и молю о помощи! Пишу дипломную работу, и встрял на двух моментах. Есть вот такой вот код,...

8
valeriikozlov
Эксперт С++
4676 / 2502 / 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;
    }
1
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
09.12.2011, 11:13  [ТС] #3
Что-то не работает...
0
BRcr
4011 / 2301 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
09.12.2011, 12:58 #4
Faul969, не работает не "что-то", а написанная вами с ошибками программа. Так и должно быть, не беспокойтесь
Вы хоть код выложите, а-то все телепаты в данный момент заняты.
1
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.12.2011, 13:09 #5
Цитата Сообщение от Faul969 Посмотреть сообщение
Что-то не работает...
Весь код покажите.
0
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] << "   ";
0
alkagolik
Заблокирован
12.12.2011, 11:27 #7
Faul969, странно что не работает. перезагрузить калькулятор надо. А если и после не заработает, то еще раз... и так пока не запустится. Скорее всего процессор отключает регистр при загрузке системы и уходит в защищенный режим. Если так и не запустится то надо показать специалисту.
0
valeriikozlov
Эксперт С++
4676 / 2502 / 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;
}
1
Faul969
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 28
12.12.2011, 12:24  [ТС] #9
Сори, все работает)) Но не получается только с суммированием под главной диагональю...

Добавлено через 18 минут
Все работает)) Всем спасибо))
0
12.12.2011, 12:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2011, 12:24
Привет! Вот еще темы с ответами:

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

Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В - C++
Даны две матрицы А(mxn)и В(m1xn1).программа находит и распечатывает сумму элементов 5-го столбца матрицы А и сумму элементов последней...

Алгоритм обработки матрицы: Нахождение максимального элемента матрицы и его номера. - C++
Алгоритм обработки матрицы: Нахождение максимального элемента матрицы и его номера.

Поменять большие элементы в строке матрицы с маленькими элементами этой же матрицы - C++
Дана мне задача надо заменить большие элементы в строке матрицы с маленькими элементами этой же матрицы. Помогите пацаны


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

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

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