From 22fc4e5142388493e7cc158bb439461d522789cb Mon Sep 17 00:00:00 2001
From: Santo Cariotti <dcariotti24@gmail.com>
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

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;
+}
-- 
cgit v1.2.3-18-g5258