mistergks
03-07-2011, 01:10
Questo è parte dell'esercizio su cui ho problemi:
si implementi una funzione booleana che restituisca true se la condizione è verificata, false altrimenti.
La funzione riceve come parametro una matrice di numeri interi di dimensione n*m; si attende in essa una striscia di demarcazione che la separa in due parti. Questa striscia risulta costituita da elementi vicini pari a "0"; essa consente di individuare una regione superiore e una inferiore, nella matrice stessa. Si noti che per elementi vicini si intendono due elementi presenti in due colonne consecutive e su righe che differiscono al piu di uno(quindi sulla stessa riga o su due righe consecutive). La funzione richiesta deve restituire true se la differenza tra l'elemento minimo e quello massimo della regione superiore è pari al valore medio tra gli elementi della regione inferiore. NOTA: sia la parte superiore che quella inferiore contengono almeno un elemento per ciascuna colonna(questo vuol dire che gli zeri non possono mai trovarsi sulla prima riga o sull'ultima). Inoltre, si può considerare la media degli elementi nella regione inferiore approssimata all'intero inferiore.
ESEMPIO:
matrice:
5 7 3 2 2 7 8 5 8
0 3 5 4 6 0 0 5 4
6 0 0 7 0 9 9 0 6
7 4 5 0 4 2 5 7 0
3 4 8 7 5 9 4 9 9
nella matrice riportata sopra la differenza tra gli elemetni massimo e minimo della parte superiore è pari a 8-2=6. la media dei valori nella regione inferiore è pari a 116/19=6,1 che approssimato all'intero inferiore fa 6. La funzione dovrà restituire "true".
Il mio problema generale è: come devo ragionare con questo tipo di esercizi?
In particolare con questo: come faccio a fare la somma solo sulla regione inferiore? cioè che condizione devo usare per dividere le due regioni in base agli zeri? Non riesco proprio a metterlo giu' sto esercizio...qualcuno mi dà l'input giusto per iniziare a fare qualcosa? Non chiedo di svolgerlo per intero...
si implementi una funzione booleana che restituisca true se la condizione è verificata, false altrimenti.
La funzione riceve come parametro una matrice di numeri interi di dimensione n*m; si attende in essa una striscia di demarcazione che la separa in due parti. Questa striscia risulta costituita da elementi vicini pari a "0"; essa consente di individuare una regione superiore e una inferiore, nella matrice stessa. Si noti che per elementi vicini si intendono due elementi presenti in due colonne consecutive e su righe che differiscono al piu di uno(quindi sulla stessa riga o su due righe consecutive). La funzione richiesta deve restituire true se la differenza tra l'elemento minimo e quello massimo della regione superiore è pari al valore medio tra gli elementi della regione inferiore. NOTA: sia la parte superiore che quella inferiore contengono almeno un elemento per ciascuna colonna(questo vuol dire che gli zeri non possono mai trovarsi sulla prima riga o sull'ultima). Inoltre, si può considerare la media degli elementi nella regione inferiore approssimata all'intero inferiore.
ESEMPIO:
matrice:
5 7 3 2 2 7 8 5 8
0 3 5 4 6 0 0 5 4
6 0 0 7 0 9 9 0 6
7 4 5 0 4 2 5 7 0
3 4 8 7 5 9 4 9 9
nella matrice riportata sopra la differenza tra gli elemetni massimo e minimo della parte superiore è pari a 8-2=6. la media dei valori nella regione inferiore è pari a 116/19=6,1 che approssimato all'intero inferiore fa 6. La funzione dovrà restituire "true".
Il mio problema generale è: come devo ragionare con questo tipo di esercizi?
In particolare con questo: come faccio a fare la somma solo sulla regione inferiore? cioè che condizione devo usare per dividere le due regioni in base agli zeri? Non riesco proprio a metterlo giu' sto esercizio...qualcuno mi dà l'input giusto per iniziare a fare qualcosa? Non chiedo di svolgerlo per intero...