3.4 Matrices

Hasta ahora, vimos los vectores, que son variables compuestas que pueden contener varios valores del mismo tipo simultáneamente. Un vector puede verse como un agrupamiento lineal de variables del mismo tipo, en la que cada una tiene una posición dentro de la línea:

    
       int v[6];

Este vector puede representarse gráficamente como:


Este agrupamiento lineal o unidimensional puede extenderse fácilmente a dos dimensiones, en las que una dimensión puede interpretarse como la cantidad de elementos y la otra como la cantidad de componentes en cada elemento. Este agrupamiento se llama matriz, y se declara como:
 

        int m[4][6];


En esta matriz podemos guardar hasta 24 valores enteros. Estos valores están ordenados lógicamente como una tabla con cuatro filas de 6 elementos cada una. (Esta estructura es sólo una estructura lógica, físicamente la matriz se guarda en 24 posiciones consecutivas de la memoria)






Cada elemento puede accederse individualmente indicando sus dos subíndices, en lugar de uno solo. Así, la expresión:

       cout << m[2][5];


mostrará por pantalla el valor 23, que es el dato guardado en la celda [2][5] de la matriz.

Para trabajar con matrices, necesitaremos utilizar dos subíndices, uno para cada dimensión.



#include "stdafx.h"
#include <iostream>
using namespace std;

#define F 3
#define C 2   // DEFINO LA CANTIDAD DE FILAS Y COLUMNAS

void main()
{
       int i,j;
       int m[F][C];

       // CARGAR UNA MATRIZ

       for (i=0; i<F; i++)     // Con i recorro las filas
             for (j=0; j<C; j++)   // Para cada valor de i, recorro todas las columnas
             {
                    cout<< "Ingrese el elemento de la posicion "<< i <<","<< j<<":";
                    cin >> m[i][j];
             }

       // MOSTRAR UNA MATRIZ

    for (i=0; i<F; i++)
       {
             for (j=0; j<C; j++)
             {
                    cout << m[i][j] <<"  ";
             }
             cout<< endl;   // Cuando termino una fila, antes de pasar a la siguiente, debo ingresar un endl
       }

   cin >> i;
}


En este ejemplo, primero cargamos una matriz con valores enteros, y luego mostramos dichos valores.

En este ejemplo y los que siguen, trabajaremos con matrices de dos dimensiones, que pueden imaginarse como tablas. Todo esto es extensible a más dimensiones. Aunque no sea lo común, las matrices en C++ puedn tener hasta 16 dimensiones.


No hay comentarios:

Publicar un comentario