• Asignatura: Informática
  • Autor: alexisrojas13
  • hace 8 años

Quien me ayuda por favor con este tema de arreglos en Java (programación ) es pars mañana, por favor Crear una matriz A de dimensiones n x m con los valores que aparecen en la figura (al ejecutar el programa la matriz debe cargarse automáticamente con los valores que se ilustran en la figura). Se desea que usted(es) desarrolle(n) un programa que copie uno a uno los valores de la matriz a un vector X, así:Proceso:1. Al pasar los valores de la matriz A los valores pares deben quedar en la primera mitad del vector ordenados en forma ascendente como se indica en la figura.2. Del mismo modo, los valores impares deben quedar en la segunda mitad del vector ordenados en forma ascendente como se ilustra en la figura.Requisitos:1. La matriz A se debe recorre en forma secuencial por filas 2. Los valores de la matriz A se deben copiar al vector X en la medida en que se va recorriendo dicha matriz (OJO: se debe llevar uno por uno, indistintamente que sea par o impar)3. No está permitido ordenar la matriz A y tampoco está permitido ordenar el vector X después de almacenar un valor en dicho vector4. No está permitido pasar los valores pares y luego pasar los valores impares5. El vector X debe quedar ordenado en la medida en que se va construyendo y no podrá contener valores repetidos6. No está permitido emplear un vector o matriz temporal para ordenar o guardar los valores para luego pasarlos al vector XSugerencia:Se debe emplear el método de inserción (método de las barajas) para insertar los valores de la matriz A al vector X.2 4 6 8 10 12 9 7 5 3 1Valores pares Valores impares​

Respuestas

Respuesta dada por: LeonardoDY
1

Para que los valores se vayan colocando ya ordenados en el vector se debe aplicar el método de la burbuja al irlos insertando. Con cada número par se recorre el vector desde el inicio hasta que el número que ingresa sea mayor que el que está, y a para los impares se hace lo propio recorriendo desde el final del vector.

Empezamos creando e inicializando la matriz, luego se utiliza el operador resto para determinar si son pares o impares, si la matriz es 3x3, el vector tendrá 9 posiciones. El código queda:

int main(void)

{

      int[][] iMatriz = {{4,6,8},{10,12,9},{7,5,3}};

      int[] iVector= {0,0,0,0,0,0,0,0,0};//El vector se inicializa en cero,

     for(int i=0;i<9;i++)

           for(int j=0;j<9;j++){

                    if((iMatriz[j][i]%2)==0){//es par, lo vamos ordenando de atrás hacia delante

                            int k=0;

                            while(iVector[k]<iMatriz[j][i]) k++;

                            iVector[k+1]=iVector[k];

                            iVector[k]=iMatriz[j][i];      

                     }

                     else{//Los impares se ordenan desde el final de adelante hacia atrás

                           int k=8;

                           while(iVector[k]>iMatriz[i][j]) k--;

                            iVector[k-1]=iVector[k];

                            iVector[k]=iMatriz[i][j];

           }

      return 0;

}

Preguntas similares