Arreglos

Un arreglo es una estructura de datos, o más técnicamente, un espacio de memoria que permite almacenar varios elementos de un mismo tipo. Esto quiere decir que si decidimos guardar un dato de tipo char, toda la estructura debe ser de tipo char.

A veces es más fácil imaginar, entender o mirar un arreglo como una secuencia contigua de casillas y en cada una se puede guardar un elemento.

Además, es usual dibujarlo de la siguiente forma, donde la fila superior indica los datos y la segundo solo indica la posición:

"hola"

"mundo"

"estamos"

"estudiando"

1

2

3

4

En donde en cada una de las casillas tenemos un dato almacenado y todos con una posición.

Por ejemplo la posición 0 corresponde a la palabra "hola", la posición 1 a "mundo"... etc.

Cada una de las "casillas" de un arreglo tiene asociado un número que la identifica de manera única. A esto se le llama índice o dirección. En la figura anterior, debajo de cada casilla, aparece su índice. En el lenguajes C, la primera casilla del arreglo tiene índice 0, la segunda tiene índice 1, la tercera índice 2, y así sucesivamente. Es muy importante tener presente que si el arreglo es de dimensión N, la última casilla tiene índice N-1.

La forma de declarar un arreglo es la siguiente:

tipo_dato nombre_arreglo [tamaño]

En donde: tipo_dato: El tipo de datos que contendrán todos los elementos del arreglo. nombre_arreglo: Es el nombre que tendrá el arreglo. [tamaño]: El tamaño o total de elementos.

Ejemplo C:

int ejemplo [10]
float numero [5]
char caracteres [7]

Ejemplo: Agregar elementos por pantalla y mostrar el arreglo resultante.

#include<stdio.h>
#include<stdlib.h>


int main(void){
    int x[10];
    int i;
    for (i=0; i <10; i=i+1){
        printf("De valor de x[%d]: ", i+1);
        scanf("%d",&x[i]);
    }
    for(i=0; i <10; i=i+1)
        printf("%3d", x[i]);
    return 0;
} 

Descargar el ejemplo

Para recorrer un arreglo lo podemos hacer usando un ciclo iterativo que incrementará la posición en 1 de las posiciones. En el ejemplo anterior podemos visualizar el ciclo FOR, pero también podemos crear un ciclo WHILE para recorrer nuestro arreglo.

#include<stdio.h>
#include<stdlib.h>


int main(void){
    int x[10];
    int i=0;
    while(i<10)
    {
        printf("De valor de x[%d]: ", i);
        scanf("%d",&x[i]);
        i++;
    }
    i=0;
    while(i<10)
    {
        printf("%3d", x[i]);
        i++;
    }
    return 0;
}

Descargar el ejemplo

De estos modos podemos llenar y recorrer los arreglos.

Arreglos bidimensionales

Anteriormente hemos visto lo que se conoce como arreglo unidimensional o vectores, ahora incursionaremos en dos dimensiones o las matrices.

Una matriz es un arreglo de M * N elementos, donde M es el número de filas y N el número de columnas.

La forma de declarar un arreglo es la siguiente:

tipo_dato nombre_arreglo [fila][columna]

En C:

La forma de declarar un arreglo es la siguiente:

int ejemplo [10][6]
float numero [5][3]
char caracteres [7][6]

Una matriz llamada ejemplo de 10 filas y 6 columnas de elementos tipo enteros. Una matriz llamada numero de 5 filas y 3 columnas de elementos de tipo float. Una matriz llamada caracteres de 7 filas y 6 columnas de elementos de tipo char.

Para recorrer y llenar una matriz debemos hacerlo usando dos ciclos, uno para recorrer las filas y otro para las columnas.

Ejemplo: Agrega elementos en una matriz de 2 filas y 3 columnas usando el ciclo FOR

#include <stdio.h>
#include <stdlib.h>

int main(void){
    int matriz[2][3], i, j;
    for (i=0; i<2; i++){
        for (j=0; j<3; j++){
            printf("Escriba un numero para la posicion [%i][%i] de la matriz ", i,j);
            scanf("%i", &matriz[i][j]);
        }
    }

    printf("Usted ingreso los siguientes datos en la matriz:\n");
        for (i=0; i<2; i++){
            for (j=0; j<3; j++){
                printf("La posicion [%i][%i] es: %d\n", i,j,matriz[i][j]);
            }
        }
    return 0;
}

Descarga ejemplo

Ejemplo: Agrega elementos en una matriz de 2 filas y 3 columnas usando el ciclo WHILE

#include <stdio.h>
#include <stdlib.h>

int main(void){
    int matriz[2][3], i=0, j=0;
    while(i<2)
    {
        while(j<3)
        {
            printf("Escriba un numero para la posicion [%i][%i] de la matriz ", i,j);
            scanf("%i", &matriz[i][j]);
            j++;
        }
        i++;
        j=0;
    }

    printf("Usted ingreso los siguientes datos en la matriz:\n");
    i=0;
    j=0;
    while(i<2)
    {
        while(j<3)
        {
            printf("La posicion [%i][%i] es: %d\n", i,j,matriz[i][j]);
            j++;
        }
        i++;
        j=0;
    }
    
    return 0;
}

Descarga el ejemplo

oci/lenguajec/arreglos (última edición 2014-07-19 15:00:25 efectuada por FabioDuran)