Java: scambio di due colonne in una matrice

Tema 98

Scrivere un metodo scambiaDiPostoDueColonne che riceve una matrice di interi M e due numeri C1 e C2 e restituisce la stessa matrice dopo aver effettuato lo scambio tra le colonne C1 ed C2.

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 scambiaDiPostoDueColonne (M,1,3)

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

 public class tema98{ public static int[][] scambiaDiPostoDueColonne (int[][] M, int C1, int C2){ // approntiamo un contenitore che ci servirà per posizionare momentaneamente un // elemento da spostare int contenitoreTemporaneo; // facciamo partire un ciclo che interesserà soltanto le righe visto che le // colonne su cui lavorare sono note for (int i = 0; i < M.length; i++){ // collochiamo il primo elemento della colonna C1 nel contenitore temporaneo contenitoreTemporaneo = M[i][C1]; // la prima cella della colonna C1 adesso è vuota e possiamo metterci il primo // elemento della colonna C2 M[i][C1] = M[i][C2]; // nella prima cella della colonna C2 posizioniamo l'elemento rimosso dalla // colonna C1 e parcheggiato nel // contenitore temporaneo M[i][C2] = contenitoreTemporaneo; } // reiterando le stesse operazioni per tutti gli altri elementi alla fine // otterremo lo scambio di colonne 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 (scambiaDiPostoDueColonne (M,1,3)); // la matrice dopo l'applicazione del metodo }}     

Commenti

commenti