Arrays multidimensionales (matrices) #12

Capítulo 12: Arrays multidimensionales (matrices)

En el capítulo anterior vimos como agrupar variables del mismo tipo en un grupo, de esta manera construiamos un vector o un array (matriz) de dimensión 1, que al caso viene a ser lo mismo. Muy bien, pero imaginaos que necesitamos almacenar las notas de 25 alumnos de 7 exámenes distintos. Podríamos hacer lo siguiente:

int notasexamen1[25];

int notasexamen2[25];

int notasexamen3[25];

int notasexamen4[25];

int notasexamen5[25];

Es un rollo, pasa lo mismo que al principio, necesitamos agruparlo todo. Veis la que se lía a la hora de declarar las variables, imaginaos para leer desde el teclado la información de todas las notas, sería un suplicio escribir ese programa. Nosotros buscamos programas cuanto más sencillos mejor y más elegantes. No por ser más complejo será mejor, justo al contrario, el problema se resolverá más rápido y ahorraremos espacio. Para solucionar esto podemos crear una matriz, o un array de dimensión 2, como queráis llamarlo. Supongo que todos sabréis lo que es una matriz, si, si, de esas que véis en matemáticas. De esta manera la información quedaría mucho mejor organizada.

#include <stdio.h>

#include <stdlib.h>

#define NEXAMENES 5

#define NALUMNOS 25

int main(void){

int notas[NEXAMENES][NALUMNOS];

int i, j;

for( i=0 ; i<NEXAMENES ; i++ ) {

for( j=0 ; j<NALUMNOS ; j++ ) {

printf( «Notas del examen n %d del alumno n %d: «, i, j );

scanf( «%i», &notas[i][j] );

fflush(stdin);

}

}

system(“pause”);

return 0;

}

Así se declaran y se recorren las matrices, como hay dos dimensiones hay que ir recorriendo filas y columnas.

Veamos como se pueden declarar e inicializar a la vez:

int variable[ filas ][ columnas ] = {

{ columnas de la fila 1 },

{ columnas de la fila 2 },

… ,

{ columnas de la última fila },

};

Ya sabemos como se declarar, recorren e inicializan las matrices. Podéis experimentar y crear arrays de dimensión 3, serán más complicadas de manejar pero se puede usar el mismo formato que hemos visto hasta ahora.

Los que sepáis de matrices matemáticas me encantaría que programaseis una calculadora como la que vimos hace unos números pero que sume, reste y calcule el determinante de matrices. Leyendo los datos, haciendo las operaciones con su función correspondiente e imprimiendo los resultados en pantalla. Mucha suerte.

Números anteriores de “Programación de videojuegos”



Número 14

Número 13

Número 12

Número 11

Número 10




    el 27.10.08

 

Especiales