summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanto Cariotti <dcariotti24@gmail.com>2019-12-14 16:59:01 +0100
committerSanto Cariotti <dcariotti24@gmail.com>2019-12-14 16:59:01 +0100
commit706cf801b48375d10912aa67e7c89b9e57954f87 (patch)
tree779fcedd815850720ab2acf0509415b6b397bf4e
parent7fdba67395f780fb028e37769c2771a6f778630c (diff)
Ex1
Scrivere un metodo che prenda in input un parametro formale matrice A di puntatori ad interi di dimensione n × m, due double d1 e d2 ed uno short s, e restituisca il numero di colonne di A nelle quali esistano almeno s coppie di elementi contigui (ES: A[1][1] e A[2][1]) tali che il rapporto tra il primo ed il secondo elemento sia compreso tra d1 e d2. NB: Si assuma a priori che s ≤ n − 1 e che d1 < d2. Si presti attenzione ai numeri “mancanti”nella matrice A.
-rw-r--r--I_anno/Programmazione_1/ex1_04_12_19.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/I_anno/Programmazione_1/ex1_04_12_19.cc b/I_anno/Programmazione_1/ex1_04_12_19.cc
new file mode 100644
index 0000000..3d352f1
--- /dev/null
+++ b/I_anno/Programmazione_1/ex1_04_12_19.cc
@@ -0,0 +1,39 @@
+#include <iostream>
+
+using namespace std;
+
+template<int N, int M>
+short func(int (&A)[N][M], double d1, double d2, short s) {
+ short result{0};
+
+ for(int i = 0; i < M; ++i) {
+ short temp_result{0};
+ for(int j = 0; j < N-1; ++j) {
+ if(temp_result >= s)
+ continue;
+
+ double div = static_cast<double>(A[j][i]) / static_cast<double>(A[j+1][i]);
+ if(div >= d1 && div <= d2)
+ temp_result++;
+ }
+
+ if(temp_result >= s)
+ result++;
+ }
+
+ return result;
+}
+
+int main() {
+ int a1[5][2] = {
+ {15, 100},
+ {15, 100},
+ {10, 100},
+ {10, 10},
+ {10, 30},
+ };
+
+ cout << func(a1, 0.3, 1.9, 2) << endl;
+
+ return 0;
+}