Matrices.

¿Que es una matriz?.
¿Como creamos una matriz?.
Ejemplos.

¿Que es una matriz?.

En un principio podemos decir que una matriz no es otra cosa que una tabla, como las que hemos visto en la lección anterior, pero en dos dimensiones. Si nosotros representamos una tabla de 10 posiciones lo podríamos hacer así:

                   

En definitiva, en la tabla anterior tenemos 1 fila (horizontal) y 10 columnas (vertical), esto hace un total de 10 posiciones. Con lo que para referirnos a una posición solo hace falta indicar la columna a la que nos estamos refiriendo. Valor[3] Hacemos referencia a la tercera posición de la tabla llamada Valor.

Ahora bien, en según que caso, ya veremos cuales, nos puede interesar tener lo que llamaremos matriz, una "tabla" pero con más filas. Podríamos representar una matriz de 2 filas con 10 columnas de la siguiente manera:

                   
                   

En esta matriz tendríamos 20 posiciones 2*10. Para referirnos a ellas tendremos que buscar una manera diferente a como lo hemos hecho con una tabla. En realidad no es que la forma de llamar a cada una de las posiciones sea muy diferente, pero se añade un elemento más. Recuerda que cuando utilizábamos una tabla lo que hacíamos era indicar la columna que ocupaba el elemento Datos[4], pues bien, ahora nosotros deberemos indicar la fila y la columna que ocupa. Esto lo haríamos de la siguiente manera: para referirnos a una posición siempre, al igual que en el caso de una tabla, pondremos el nombre de la tabla y entre corchetes [ ] primero la fila y después la columna separados por una coma de la siguiente forma: Datos[1, 4]. De esta manera observa que los elementos que ocupan la cuarta columna se deben diferenciar entre ellos por la fila en la que se encuentran.

Observa este pequeño ejemplo en el que rellenaremos algunos campos de una matriz de 3 filas por 4 columnas, llamada Valor en la que introducimos los siguientes valores Valor[1,3] = "Excel", Valor[2,4] = "Word", Valor[3,2] = "VB". La tabla quedaría de la siguiente manera, recuerda que siempre miraremos primero la fila (horizontal) y después la columna (vertical):

Valor 1 2 3 4
1     Excel  
2       Word
3   VB    

Te recomiendo que utilices ejemplos como este para que te acostumbres a utilizar tablas y a colocar los elementos en su lugar, piensa que en programación si colocamos los elementos de una matriz de forma incorrecta o nos referimos a una posición fuera de la matriz nos puede dar error y "fastidiar" la ejecución del programa.

¿Como creamos una matriz?.

La forma de crear una matriz es exactamente igual que en el caso de una tabla, con el único cambio que en este caso debemos indicar también cuantas filas forman parte de esta. Recuerda los elementos que necesitamos para ello: el nombre, el tamaño (número de posiciones, tanto filas como columnas), y el tipo que tendrán los datos que se almacenarán en el interior de la matriz. Imaginemos que queremos definir una tabla llamada Valores con 10 columnas y 5 filas que sea de tipo Numérico, esto hace un total de 5 filas por 10 columnas un total de: 50 posiciones, pues bien, la definición sería de la siguiente forma Valores[5, 10] : Número. Observa que en un principio todas las filas que definamos dentro de una misma matriz tendrán el mismo tipo de dato.

Primer Ejemplo.

Nota importante:
Debes tener mucho cuidado que en los programas en los que utilices matrices no accedas a una posición que esté fuera del rango de la matriz, tanto fila como columna. Si sucediera esto nos daría un error y el programa terminaría su ejecución de forma incorrecta. También debemos dejar claro que en muchos lenguajes de programación las tablas, tanto en filas como en columnas empiezan a contar desde la posición 0. esto es importante porque si definimos una tabla de 5 columnas nos debemos referir a ellas desde la posición 0 a la 4. En nuestro caso para facilitar el entendimiento de los ejemplo vamos a utilizar matrices cuya primera posición es la número 1.

Vamos con un ejemplo en el que utilizaremos una matriz: queremos un pequeño programa que nos ordene unos números, que obtenemos de forma aleatoria, en pares e impares. Vamos a definir una tabla con dos filas, de esta manera pondremos en la primera fila (fila 1) los número impares y en la segunda fila (fila 2) los número pares.

Para saber si un número es par o impar lo único que deberemos hacer es dividir la cantidad entre 2 y mirar el resto. Si este resto es 0 querrá decir que el número es par y si el resto es diferente a 0 el número será impar. Para mirar el resto utilizaremos la formula Resto( ), poniendo dentro del paréntesis la división a realizar.

1 Tabla[2,10] : Número
2 IndicePar : Número
3 IndiceImpar : Número
4 Cantidad : Número
5 IndicePar = 1
6 IndiceImpar = 1
7 Mientras (IndicePar + IndiceImpar) < 21 hacer
8

Cantidad = Random(100)

9

Si Resto(Cantidad/2) = 0 y IndicePar < 11 entonces

10

Tabla[2,IndicePar] = Cantidad

11

IndicePar = IndicePar + 1

12

Finsi

13

Si Resto(Cantidad/2) <> 0 y IndiceImpar < 11 entonces

14

Tabla[1,IndiceImpar] = Cantidad

15

IndiceImpar = IndiceImpar + 1

16

Finsi

17 Fin Mientras

1.- Definimos una tabla llamada Tabla con 2 filas y 10 posiciones de tipo número.

2 y 3.- Definimos una variable llamada IndicePar que nos servirá para movernos por la fila de los pares y otra variable llamada IndiceImpar para movernos por la fila de los impares.

4.- Definimos una variable llamada Cantidad para almacenar el valor del número buscado aleatoriamente.

5 y 6.- Inicializamos las variables IndicePar e IndiceImpar a 1 para empezar a rellenar la matriz desde la primera columna.

7.- Iniciamos un bucle que se repetirá hasta que se llene completamente la matriz. Como nuestra matriz tiene 2 filas y 10 posiciones cada una de ellas en total tenemos 20 posiciones.

8.- Almacenamos en la variable Cantidad un número aleatorio del 1 al 100.

9.- Miramos si la Cantidad es par mediante la formula Resto(Cantidad/2) y si el índice que utilizamos para movernos por la fila de los números par no esté fuera de rango, no sea más grande de 10. Recordemos que si intentamos acceder a una posición fuera de la matriz nos daría un error de ejecución.

10.- Si la Cantidad es par y el IndicePar está dentro de los límites almacenamos Cantidad en la matriz Tabla en la segunda fila, reservada para los números pares, y en la posición que indique el IndicePar.

11.- Incrementamos en 1 el valor de la variable IndicePar, para avanzar una posición en la fila de los pares.

12.- Línea que nos indica el fin del primer Si.

13.- Miramos si la Cantidad es impar mediante la formula Resto(Cantidad/2) y si el índice que utilizamos para movernos por la fila de los números impares no esté fuera de rango, no sea más grande de 10.

14.- Si la Cantidad es impar y el IndiceImpar está dentro de los límites almacenamos Cantidad en la matriz Tabla en la primera fila, reservada para los números impares, y en la posición que indique el IndiceImpar.

15.- Incrementamos en 1 el valor de la variable IndiceImpar, para avanzar una posición en la fila de los impares.

16.- Línea que nos indica el fin del segundo Si.

17.- Fin del bucle.

Después de ver como se ha codificado este ejercicio te invitamos a que intentes codificar este mismo pero de una forma diferente. Envíanos tu respuesta.