Java: scambio di due righe in una matrice

Tema 97

Scrivere un metodo scambiaDiPostoDueRighe che riceve una matrice di interi M e due numeri R1 e R2 e restituisce la stessa matrice dopo aver effettuato lo scambio tra le righe R1 ed R2.

Ad esempio, sia M la matrice così costituita

3 18 15 7 2
1 9 11 4 6
7 2 6 3 5
5 1 25 2 1
3 2 33 4 4

allora scambiaDiPostoDueRighe (M,1,3)

3 18 15 7 2
5 1 25 2 1
7 2 6 3 5
1 9 11 4 6
3 2 33 4 4

 public class tema97{ public static int[][] scambiaDiPostoDueRighe (int[][] M, int R1, int R2){ // approntiamo un contenitore che ci servirà per posizionare momentaneamente un // elemento da spostare int contenitoreTemporaneo; // facciamo partire un ciclo che interesserà soltanto le colonne visto che le // righe su cui lavorare sono note for (int j = 0; j < M[0].length; j++){ // collochiamo il primo elemento della riga R1 nel contenitore temporaneo contenitoreTemporaneo = M[R1][j]; // poiché la prima cella della riga R1 adesso è vuota possiamo metterci il primo // elemento della riga R2 M[R1][j] = M[R2][j]; // nella prima cella della riga R2 posizioniamo l’elemento rimosso dalla riga R1 // e parcheggiato nel // contenitore temporaneo M[R2][j] = contenitoreTemporaneo; // reiterando le stesse operazioni per tutti gli altri elementi alla fine // otterremo lo scambio di righe voluto } return M; }  public static void visualizzaMatrice (int[][] M) { for (int i = 0; i < M.length; i++) { for (int j = 0; j < M[i].length; j++) System.out.print(M[i][j] + " "); System.out.println();} }  /* Applicazione di prova */  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,6}, {7,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; visualizzaMatrice (M); // la matrice prima dell’applicazione del metodo System.out.println(); visualizzaMatrice (scambiaDiPostoDueRighe (M,1,3)); // la matrice dopo l’applicazione del metodo } }     

Commenti

commenti