Anda di halaman 1dari 9

ARRAYS

DEFINICIN
Un array es una coleccin finita, homognea, y ordenada de elementos.

Finita.- Indica el nmero mximo

Homogenea.- Son del mismo tipo (entero, reales, caracteres)

Ordemada.- Llevan un rden consecutivo a traves de un ndice

Ejem.-

A= 34 45 12 05 93 Datos
(0) (1) (2) (3) (4) Indices

CLASIFICACIN
ARRAY UNIDIMENSIONAL (VECTOR)
slo utiliza un ndice para referenciar a cada uno de los elementos. Su
declaracin ser:
tipo nombre [tamao];
Es la estructura natural para modelar listas de elementos iguales.
Nota: Los elementos de un array ocupan posiciones contiguas de memoria
ARRAYS Y PUNTEROS
int vector[10];
int *puntero;
puntero=vector
(*puntero)++;
puntero++;

-->

equivale a: puntero=&vector[0];

--> equivale a vector[0]++;


--> equivale a asignar a apuntar a la siguiente direccin &vector[1];

*(puntero+i);

--> equivale a vector[i];

(puntero+i);

--> equivale a &vector[i];

EJEMPLOS
#include <stdio.h>
main()
{
int i,*puntero,vec[30],n;
puntero=vec;
printf("Ingrese el rango del vector:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",puntero);
puntero++;
}
puntero=vec;
for(i=0;i<n;i++)
{
printf("%d\n",*puntero);
puntero++;
}
}

#include <stdio.h>
main()
{
int i, *puntero, vec[30], n;
puntero=vec;
printf("Ingrese el rango del vector:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",(puntero+i));
}
for(i=0;i<n;i++)
{
printf("%d\n",*(puntero+i));
}
}

ARRAYS DE PUNTEROS
Arreglo de punteros no es lo mismo que puntero a arreglos. Son arreglos en los
que cada uno de sus elementos es un puntero.

Cada uno de los punteros puede apuntar a cualquier ubicacin en memoria


que sea del mismo tipo de dato.

EJEMPLO
#include <stdio.h>
main()
{
int *px[5];
int x,y,z;
px[0]=&x;
px[1]=&y;
px[2]=&z;
*px[0]=10;
*px[1]=20;
*px[2]=30;
printf("%d %d %d",x,y,z);
}

BIDIMENSIONAL
ARRAY BIDIMENSIONAL (MATRICES)
Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas
y columnas.
Tipo nombre[tamao filas][tamao columnas];

Ejem.-

matriz[2][3]=
(0)

2
(1)

3
(2)

4
(3)

5
(4)

Datos

(5 ) Indices

PUNTEROS
int mat[10][10];
int *puntero;
puntero=mat[0]
(*puntero)++;
puntero++;

--> equivale a: puntero=&mat[0][0];


--> equivale a mat[0][0]++;
--> equivale a asignar a apuntar a la siguiente direccin &mat[0][1];

EJEMPLOS
#include <stdio.h>
main()
{
int mat[10][10],i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&mat[i][j]);
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d",mat[i][j]);
}
printf(\n);
}
}

#include <stdio.h>
main()
{
int mat[10][10],*apmat,i,j;
apmat=mat[0];
for(i=0;i<6;i++)
{
scanf("%d",apmat);
apmat++;
}
apmat=mat[0];
for(i=0;i<6;i++)
{
printf("%d",*apmat);
apmat++;
if(i==2)
{
printf("\n");
}
}
}

CLASIFICACIN
ARRAY MULTIDIMENSIONAL
tambin es un tipo de dato estructurado, que est compuesto por n dimensiones.
Para hacer referencia a cada componente del arreglo es necesario utilizar n
ndices, uno para cada dimensin.
Tipo nombre[tamao x][tamao y][tamao z];

MULTIDIMENSIONALES

Llegados al arreglo de 2 dimensiones(matriz) cada nuevo indice va a ser una dimension


nueva fomado por las dimensiones anteriores, pero siempre de a dos dimensiones:
-

2 dimensiones:
3 dimensiones:
4 dimensiones:
5 dimensiones:
6 dimensiones:
etc.

matriz.
vector de matrices.
matriz de matrices.
vector de matriz de matrices.
matriz de matrices de matrices.

Entonces si nos referimos por ejemplo al elemento A[ 2 ][ 1] [ 4] [ 0 ] del arreglo A[ 5 ][ 5 ]


[ 5 ][ 5 ][ 5 ] nos referimos al elemento de la fila 0 y columna 4 que pertenece a la matriz
de la fila 1 columna 3 de la matriz de matrices ubicada en el elemento 2 del vector de
matrices de matrices.
Por esto no es conveniente usar ms de 3...

Anda mungkin juga menyukai