diff options
author | Santo Cariotti <dcariotti24@gmail.com> | 2019-12-14 16:59:01 +0100 |
---|---|---|
committer | Santo Cariotti <dcariotti24@gmail.com> | 2019-12-14 16:59:01 +0100 |
commit | 706cf801b48375d10912aa67e7c89b9e57954f87 (patch) | |
tree | 779fcedd815850720ab2acf0509415b6b397bf4e | |
parent | 7fdba67395f780fb028e37769c2771a6f778630c (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.cc | 39 |
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; +} |