[ Foro de Pascal ]

leer una matriz por sus columnas

06-Apr-2018 11:36
Invitado (Juan Jos)
1 Respuestas

Hola soy un estudiante de ingeniería recién empezando y me pide un ejercicio que lea la matriz por sus columnas y no por sus filas como es usual estoy atascado en esa parte


07-Apr-2018 16:31
Luis Torres (+18)

Dala la siguiente matriz de orden 3x4 (3filas y 4 columnas):

     1    2    3    4
     5   6    7     8
    9  10  11  12
 
Si la leemos por filas (dos ciclos for) obtendremos la siguiente salida (resultado):
  1  2  3  4  5  6  7  8  9  10  11  12

Pero, si la leemos por columnas (igualmente dos ciclos for) la salida será la que veremos a continuación:
  1  5   9   2   6   10  3  7  11  4  8  12

¿Cuál es la diferencia?:
-Pues que para leer la matriz dada por filas, primero vamos a la fila 1 (allí nos detenemos) y vamos recorriendo cada elemento de la fila 1 (es decir tomamos un elemento de la columna 1, luego de la columna 2, y así hasta la última columna); en segundo lugar vamos a la fila 2 (allí nos detenemos) y vamos recorriendo cada elemento de la fila 2 (es decir comamos un elemento de la columna 1, luego de la columna 2, y así hasta la última columna); finalmente repetimos el procedimiento para la fila 3.
-Ahora, para leer la matriz dada por columna, primero vamos a la columna 1 (allí nos detenemos) y vamos recorriendo cada elemento de esa columna (columna 1) (es decir tomamos un elemento de la fila 1, luego de la fila 2, y así hasta llegar a la última fila); en segundo lugar vamos a la columna 2 (allí nos detenemos) y vamos recorriendo cada elemento de la columna 2 (tomando primero un elemento de la fila 1, luego de la fila 2 y así hasta llegar a la última fila); repetimos este procedimiento en la columna 3 y finalmente en la 4.

Si ya sabes recorrer una matriz por filas, te recuerdo que la forma clásica de hacerlo es con dos ciclos for, el truco para recorrerla por columna es invirtiendo las variables i, j que usaste para el primer programa de recorrido por filas.

Espero haberte ayudado un poco a entenderlo.
Saludos.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)