summaryrefslogtreecommitdiff
path: root/I_anno/Programmazione_1
diff options
context:
space:
mode:
authorSanto Cariotti <dcariotti24@gmail.com>2019-12-05 10:35:19 +0100
committerSanto Cariotti <dcariotti24@gmail.com>2019-12-05 10:35:19 +0100
commit22fc4e5142388493e7cc158bb439461d522789cb (patch)
treee59903e482d5661d580f682580a2e8780dfc628a /I_anno/Programmazione_1
parent3d087be7ef5ef61daaa0f97bb841d005f4dc3a19 (diff)
Ex 1 1/12/19
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.
Diffstat (limited to 'I_anno/Programmazione_1')
-rw-r--r--I_anno/Programmazione_1/ex1_03_12_19.cc65
1 files changed, 65 insertions, 0 deletions
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 <iostream>
+
+using namespace std;
+/*
+2 3 4 5
+1 2 3 4
+1 2 3 0
+
+3 x 4
+
+5 2 1 0
+*/
+
+template<int N, int M>
+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<double>(sum)/static_cast<double>(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;
+}