From 22fc4e5142388493e7cc158bb439461d522789cb Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Thu, 5 Dec 2019 10:35:19 +0100 Subject: Ex 1 1/12/19 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scrivere un metodo che prenda in input una matrice K di interi positivi di dimensioni nxm ed un array D di double di dimensione m, e resistuisca un array A di bool di dimensione m. L'elemento j-esimo di A sarà uguale a true se la media degli elementi della colonna j di K è maggiore dell'elemento j di D. --- I_anno/Programmazione_1/ex1_03_12_19.cc | 65 +++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 I_anno/Programmazione_1/ex1_03_12_19.cc (limited to 'I_anno') diff --git a/I_anno/Programmazione_1/ex1_03_12_19.cc b/I_anno/Programmazione_1/ex1_03_12_19.cc new file mode 100644 index 0000000..8f9bed7 --- /dev/null +++ b/I_anno/Programmazione_1/ex1_03_12_19.cc @@ -0,0 +1,65 @@ +#include + +using namespace std; +/* +2 3 4 5 +1 2 3 4 +1 2 3 0 + +3 x 4 + +5 2 1 0 +*/ + +template +bool* func(unsigned int (&K)[N][M], double (&D)[M]) { + bool* A = new bool[M]; + for(int i = 0; i < M; ++i) + A[i] = false; + + for(int i = 0; i < M; ++i) { + int sum = 0; + for(int j = 0; j < N; ++j) { + sum+=K[j][i]; + } + + if(static_cast(sum)/static_cast(M) > D[i]) { + A[i] = true; + } + } + + return A; +} + +int main() { + // TODO: test + unsigned int A[3][4] = { + {2, 3, 4, 5}, + {1, 2, 3, 4}, + {1, 2, 3, 0} + }; + + double D[4] = {5., 2.2, 1.1, 0.50}; + + auto a = func(A, D); + for(int i = 0; i < 4; ++i) + cout << a[i] << ' '; + + cout << endl; + + unsigned int A2[3][4] = { + {2, 3, 4, 5}, + {1, 2, 0, 4}, + {1, 2, 0, 0} + }; + + double D2[4] = {5., 2.2, 15.1, 18.50}; + + auto a2 = func(A2, D2); + for(int i = 0; i < 4; ++i) + cout << a2[i] << ' '; + + cout << endl; + + return 0; +} -- cgit v1.2.3-18-g5258