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; +}  |