Concetti Chiave
- Il metodo verifica se una matrice di dimensione minore è contenuta in un'altra matrice più grande, mantenendo l'ordine e la disposizione attigua degli elementi.
- Viene utilizzato un metodo di supporto per estrarre sottomatrici dalla matrice più grande, a partire da una posizione specifica.
- Il metodo estraiMatrice genera una sottomatrice dalle dimensioni della matrice minore, per confrontarla con quest'ultima.
- Le coordinate di partenza per l'estrazione della sottomatrice sono determinate dagli indici dei cicli del metodo principale.
- I cicli di estrazione sono limitati dalle dimensioni della matrice minore, garantendo che gli indici non superino i limiti definiti.
Tema 106
Scrivere un metodo verificaCheUnaMatriceSiaContenutaInUnAltraMatrice che riceve in ingresso due matrici di interi M e Q e restituisce TRUE se la matrice di dimensione minore interamente contenuta nella matrice di dimensione maggiore. Gli elementi della matrice minore, allinterno della maggiore, devono essere disposti nello stesso ordine e in maniera attigua.
Ad esempio, siano M e Q le matrici cos costituite1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
4 | 1 | 2 | 9 |
2 | 3 |
6 | 7 |
public class tema106{ // approntiamo un metodo di supporto per estrarre sottomatrici a partire // dallelemento di posizione x,y // tale metodo ci servir per isolare momentaneamente dalla matrice di // dimensione maggiore, delle // sottomatrici di dimensione pari alla matrice di dimensione minore, per // confrontarla con gli elementi // di questultima public static int[][] estraiMatrice (int[][] M, int[][] Q, int x, int y){ // questo metodo riceve in ingresso la matrice M in cui bisogna fare la ricerca // la matrice Q che va ricercata allinterno di M // e due interi che rappresenteranno di volta in volta le coordinate // dellelemento dal quale bisogner // iniziare a estrarre la sottomatrice // i due interi, cio le coordinate, saranno acquisiti dagli indici dei cicli // con cui, nel metodo generale // sar perlustrata la matrice di partenza int [][] N = new int[Q.length][Q[0].length]; int riga = 0; // avendo lesigenza di estrarre sottomatrici della dimensione di Q, // naturalmente i due cicli non // devranno superare le dimensioni della matrice Q, perci gli indici non // andranno oltre i valori, // rispettivamente di x+Q.length e y+Q.length for (int i = x; i