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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
ArtiomCX75
Заблокирован
#1

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

19.01.2010, 23:30. Просмотров 1024. Ответов 3
Метки нет (Все метки)

мне дано такое задание:
"Написать функцию сглаживания заданной во входном параметре матрицы. Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое соседей соответствующего элемента исходной матрицы."
подскажите пожалуста, у кого какие идеи есть, делитесь. может кто уже с таким сталкивался?
Мне не понятно, что имелось ввиду под "соседями", т.е. в матрице 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++ Передача массивов в функцию
C++ Передача массивов в функцию (многомерные массивы)
C++ Передача массивов в функцию
C++ Передача двумерных массивов и указателей в функцию
Передача многомерных массивов в функцию C++
Передача в функцию 2х массивов 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
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
20.01.2010, 10:42     Передача двумерных массивов в функцию #4
Можно так...
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
#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     Передача двумерных массивов в функцию
Ответ Создать тему
Опции темы

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