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

передача двумерных массивов в функцию - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
ArtiomCX75
Заблокирован
19.01.2010, 23:30     передача двумерных массивов в функцию #1
мне дано такое задание:
"Написать функцию сглаживания заданной во входном параметре матрицы. Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое соседей соответствующего элемента исходной матрицы."
подскажите пожалуста, у кого какие идеи есть, делитесь. может кто уже с таким сталкивался?
Мне не понятно, что имелось ввиду под "соседями", т.е. в матрице 5*5 для элемента а3,3 соседями будут:
а) а3,2 и а3,4;
б) а32 а34 а23 а43
в) а32 а34 а23 а43 а22 а44 а24 42
???
и как считать "угловые" элементы?
в общем, у кого какие идеи есть выкладывайте пожалуста, даже на счёт передачи двумерного массива в функцию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2010, 23:30     передача двумерных массивов в функцию
Посмотрите здесь:

Передача массивов в функцию C++
Передача массивов в функцию C++
Передача массивов в функцию C++
Передача массивов в функцию на С++ C++
C++ Передача массивов в функцию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mulat
7 / 7 / 0
Регистрация: 09.01.2009
Сообщений: 41
20.01.2010, 00:13     передача двумерных массивов в функцию #2
По-моему в матрице 5x5 соседями (3,3) будут (2,2),(2,3),(2,4),(3,2),(3,4),и т.д.
А соседями (0,0) - (0,1),(1,1),(1,0).
ArtiomCX75
Заблокирован
20.01.2010, 01:35  [ТС]     передача двумерных массивов в функцию #3
как же это реализовать, одними же if'ами не открутишся, что типа а(i,j)=среднему арифметич 8 чисел, а перед этим ставить условие на i, j.

if i (or j)=0 then среднее арифметическое не от 8, а от 5 (3) чисел...
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
20.01.2010, 10:42     передача двумерных массивов в функцию #4
Можно так...
Код
#include <stdio.h>
#define N 5
#define M 5

Smat(double Ms[N][M], double Mt[N][M])
{  int i, j, k, ii, jj; double s;
  for(i=0; i<N; i++)
    for(j=0; i<M; j++) {
      k = 0;  // Это будет кол-во соседей
      s = 0;
      for(ii=i-1; ii<=i+1; ii++)
        for(jj=j-1; j<jj+1; jj++) {
          if (ii<0 || ii>=N || jj<0 || jj>=M || (jj==j &&ii==i)) continue;
          s += Ms[ii][jj];
          k++;
        }
      Mt[i][j] = s / k;
    }
}
/* ------------------ */
main()
{ double M1[N][M];  // Исходная заполненная матрица
  double M2[N][M];  // Результат
    // ... Ввод M1
  Smat(M1, M2);
   // .... Вывод M2
}
/**********************/
Yandex
Объявления
20.01.2010, 10:42     передача двумерных массивов в функцию
Ответ Создать тему
Опции темы

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