From 706cf801b48375d10912aa67e7c89b9e57954f87 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Sat, 14 Dec 2019 16:59:01 +0100 Subject: 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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- I_anno/Programmazione_1/ex1_04_12_19.cc | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 I_anno/Programmazione_1/ex1_04_12_19.cc (limited to 'I_anno/Programmazione_1/ex1_04_12_19.cc') 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 + +using namespace std; + +template +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(A[j][i]) / static_cast(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; +} -- cgit v1.2.3-18-g5258