Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2015, 19:33   #1
Новичок63
 
Регистрация: 07.11.2015
Сообщений: 7
По умолчанию Построить результат сглаживания заданной вещественной матрицы размером 10 X 10

Соседями элемента Аij в матрице назовем элементы Аkl , где i-1<=k<=i+1, j-1<=l<=j+1, (k,l)!=(i,j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы.
Построить результат сглаживания заданной вещественной матрицы размером 10 X 10.
В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали.
Новичок63 вне форума Ответить с цитированием
Старый 08.11.2015, 01:57   #2
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Код:
...
s:=0;
for i:=2 to 9 do
  for j:=2 to 9 do
  begin
    b[i,j]:=(a[i-1,j-1]+a[i-1,j]+a[i-1,j+1]+a[i,j-1]+a[i,j+1]+a[i+1,j-1]+a[i+1,j]+a[i+1,j+1])/8;
    if i<j then s:=s+abs(b[i,j]);
  end;
...
из условия не ясно как обработать элементы по периметру матрицы.
как вариант добавить скрытый периметр с нулями:
Код:
...
a:array[0..11] of integer;
b:array[1..10] of integer;
...
for i:=1 to 10 do
  for j:=1 to 10 do
    ввод матрицы a
...
s:=0;
for i:=1 to 10 do
  for j:=1 to 10 do
  begin
    b[i,j]:=(a[i-1,j-1]+a[i-1,j]+a[i-1,j+1]+a[i,j-1]+a[i,j+1]+a[i+1,j-1]+a[i+1,j]+a[i+1,j+1])/8;
    if i<j then s:=s+abs(b[i,j]);
  end;
...
Правильнее, конечно, немного подругому решить с проверками и т.п., но так в лоб и максимально просто для понимания
temaps вне форума Ответить с цитированием
Старый 08.11.2015, 20:49   #3
Новичок63
 
Регистрация: 07.11.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от temaps Посмотреть сообщение
Код:
...
s:=0;
for i:=2 to 9 do
  for j:=2 to 9 do
  begin
    b[i,j]:=(a[i-1,j-1]+a[i-1,j]+a[i-1,j+1]+a[i,j-1]+a[i,j+1]+a[i+1,j-1]+a[i+1,j]+a[i+1,j+1])/8;
    if i<j then s:=s+abs(b[i,j]);
  end;
...
из условия не ясно как обработать элементы по периметру матрицы.
как вариант добавить скрытый периметр с нулями:
Код:
...
a:array[0..11] of integer;
b:array[1..10] of integer;
...
for i:=1 to 10 do
  for j:=1 to 10 do
    ввод матрицы a
...
s:=0;
for i:=1 to 10 do
  for j:=1 to 10 do
  begin
    b[i,j]:=(a[i-1,j-1]+a[i-1,j]+a[i-1,j+1]+a[i,j-1]+a[i,j+1]+a[i+1,j-1]+a[i+1,j]+a[i+1,j+1])/8;
    if i<j then s:=s+abs(b[i,j]);
  end;
...
Правильнее, конечно, немного подругому решить с проверками и т.п., но так в лоб и максимально просто для понимания
мне нужно в с++
Новичок63 вне форума Ответить с цитированием
Старый 08.11.2015, 21:20   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ты специально в вопросе не указываешь язык, дожидаешься ответа с паскалевским кодом и плачешься, что с++ надо? Три таких случая уже за сегодня-вчера
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модули пользователя: Подсчитать количество локальных минимумов заданной матрицы размером NxN veronika55214 Паскаль, Turbo Pascal, PascalABC.NET 4 26.03.2014 21:14
Построить результат сглаживания заданной вещ. матрицы 10х10 Demiar Помощь студентам 10 17.01.2013 23:42
С++ Операция сглаживания матрицы uropb992 Помощь студентам 2 07.07.2012 21:58
Определить максимальный элемент произвольно заданной матрицы В размером n×n элементов . Обнулить все элементы строки и столбца amorousmaniac Помощь студентам 2 16.12.2011 06:41
Для заданной матрицы размером 8*8: Zезарь Помощь студентам 1 17.05.2011 13:09