![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.12.2009
Сообщений: 33
|
![]()
Соседями элемента Аij в матрице назовем элементы Аkj c i-1 <= k <= i+1, j-1<= 1 <= j+1, (k,1) <> (i,j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 30.12.2009
Сообщений: 33
|
![]()
//Нахождение суммы
for(i=0;i<n;i++) { c=0; f=false; for(int j=0;j<m;j++) { if(!f) f= (matr[j][i]<0); c+=matr[j][i]; } if(f) cout<<"Summ "<<i<<" = "<<c<<endl; } } хз ваще как делать =) |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.07.2012
Сообщений: 99
|
![]()
#include<iostream>
#include<locale> #include<time.h> using namespace std; void main() { setlocale(LC_ALL, "RUS"); // Чтобы русский шрифт нормально отображался float mas[10][10]; // исходный массив float rez[10][10]; // массив сглаживания float sum=0; // сумма соседей int kol_sosedej=0; // необходимо для нах. среднего арифм. srand(time(NULL)); // генерируем случайные // Заполение случайными вещественными // в первых скодках получаем значения вещественных for (int i=0; i<10; i++) for (int j=0; j<10; j++) mas[i][j]=0.01*rand() % 2000-10 ; // Вывод исходного массива for (int i=0; i<10; i++){ cout << "\n"; for (int j=0; j<10; j++){ cout.width(6); cout.precision(2); cout << mas[i][j]; } } for (int i=0; i<10; i++) for (int j=0; j<10; j++) //проходим по значениям исходного массива { sum=0; kol_sosedej=0; // обнуления для нового значения for (int k=i-1; k<=i+1; k++) for (int l=j-1; l<=j+1; l++){ // создаю новые проходы по соседям с помощью циклов if (k>=0 && l>=0 && k<10 && l<10) // ограничиваю выход за пределы массива if (!(k==i && l==j)){ // исключаю совпадения с ячейкой заполнения sum+=mas[k][l]; kol_sosedej++; } // if (k!=i && l!=j) if (k==i+1 && l==j+1) rez[i][j]=(sum/kol_sosedej); // когда дошли до последнего соседа записываю среднее арифметическое } // for (int k=i-1; k<=i+1; k++) for (int l=j-1; l<=j+1; l++) } // вывод новой матрицы cout << "\n"; for (int i=0; i<10; i++){ cout << "\n"; for (int j=0; j<10; j++){ cout.width(6); // для нормального вывода cout.precision(2); cout << rez[i][j]; } } // подсчет суммы с выводом sum=0; for (int i=0; i<10; i++) for (int j=0; j<10; j++) if (i-j>0) sum+=fabs(rez[i][j]); cout << "\nСумма ниже главной диагонали " << sum; system("PAUSE >> VOID"); }
Человек
Последний раз редактировалось Артём Волжанкин; 08.07.2012 в 12:25. Причина: добавил комментарии и исправил код |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Операция с panel | grafgrial | Общие вопросы Delphi | 7 | 31.03.2010 20:35 |
операция SHL | Anohorett | Общие вопросы C/C++ | 2 | 02.12.2009 23:27 |
Операция в Газе | Роман Радер | Свободное общение | 2 | 31.12.2008 17:03 |
Операция Ы | SASHA50 | Microsoft Office Excel | 10 | 25.04.2008 12:38 |
Операция сдвига? | SkyDreamer | Общие вопросы C/C++ | 3 | 10.10.2007 08:20 |