lunes, 30 de enero de 2017

Matrices: Intercambiar filas y columnas

Crea un programa para transponer filas por columnas en un array bidimensional de números enteros.


Ejemplo:
Array Original...
  7  7  3  1 10
  2  8  8  3  9
  2  5  5  8  3
 10  5  4  4  6
  4  3  1  6  5
  6  2  7  8 10
  3 10  4  3  9
  2  3  5  8  1
  9  6  8  3  9

Array transpuesto...
  7  2  2 10  4  6  3  2  9
  7  8  5  5  3  2 10  3  6
  3  8  5  4  1  7  4  5  8
  1  3  8  4  6  8  3  8  3
 10  9  3  6  5 10  9  1  9


SOLUCIÓN EN JAVA:
package transponerarrays;


public class TransponerArrays {
    
    //Genero un array bidimensional del tamaña que indican como parámetro las filas y las columnas
    //de números aleatorios entre 1 y 10
    static int[][] generaArrayAleatorio(int filas, int columnas){
        int[][] matriz=new int[filas][columnas];
        int i,j;
        
        for (i=0 ; i < matriz.length ; i++){
            for (j=0 ; j < matriz[i].length ; j++){
                matriz[i][j] = (int)(Math.random()*10+1);
            }
        }
        return matriz;
    }
    
    //Muestro el array bidimensional que pasan como parámetro e imprimo línea por línea
    static void muestraArray(int[][] matriz){
        int i,j;
        
        for (i=0; i < matriz.length ; i++){
            for (j=0 ; j < matriz[i].length ; j++){
                System.out.printf("%3d", matriz[i][j]);
            }
            System.out.println();
        }
    }
    
    //Con esta función intercambio filas por columnas. A partir del array que recibe 
    //como parámetro genera otro array transpuesto.
    static int[][] transponer(int[][] matriz){
        int[][] resultado=new int[matriz[0].length][matriz.length];
        int filas,columnas;
        
        for (columnas=0 ; columnas < matriz[0].length ; columnas++){
            for (filas=0 ; filas < matriz.length ; filas++){
                resultado[columnas][filas]=matriz[filas][columnas];
            }
        }
        return resultado;
    }
    
    public static void main(String[] args) {
        int [][]matriz;
        
        matriz=generaArrayAleatorio(9,5);
        System.out.println("Array Original...");
        muestraArray(matriz);
        System.out.println();
        System.out.println("Array transpuesto...");
        matriz=transponer(matriz);
        muestraArray(matriz);
    }
}

1 comentario:

  1. Una matriz puede intercambiar sus filas internas.
    Una matriz puede intercambiar sus filas con las de otra matriz.
    El proceso de intercambio de filas de una matriz consiste en trasladar recíprocamente los datos involucrados de una fila a otra. Se debe conservar un orden bien sea continuo o de forma inversa. Se debe valida que el orden de la matriz contenga las filas a ser intercambiadas. Este programa en C++ permite el intercambio de la filas de una matriz. https://tutorias.co/arrays-visual-c-intercambiar-filas-matriz/

    ResponderEliminar