C++ Bc. 46 cpp
#include <iostream> #include <matvec/matvec.h> using namespace GNU_gama; Mat<int> hlazeni(const Mat<int>& M) { Mat<int> N(M.rows(), M.cols()); for (unsigned r=1; r<=M.rows(); r++) for (unsigned s=1; s<=M.cols(); s++) { unsigned p, q; unsigned m=0; unsigned n=0; for (int i=-1; i<=1; i++) { p = r + i; if (p == 0) continue; if (p > M.rows()) continue; for (int j=-1; j<=1; j++) { q = s + j; if (q == 0) continue; if (q > M.cols()) continue; if (p == r && q == s) continue; m += M(p,q); n++; } } m += n*M(r,s); n *= 2; N(r,s) = (double(m)/n + 0.5); } return N; } int main() { Mat<int> A(4,5); A = 11, 12, 13, 14, 15, // 15 15 16 17 18 21, 22, 23, 24, 25, // ==> 21 22 23 24 25 31, 32, 33, 34, 35, // 31 32 33 34 35 41, 42, 43, 44, 45; // 38 39 40 41 41 std::cout << A << "\n" << hlazeni(A); }
[ Zpět ]