Académique Documents
Professionnel Documents
Culture Documents
Arreglos
Arreglos
Losarreglossonlasestructurasdedatosmssencillas.
Definicin:Losarreglossonungrupodeposicionesenmemoriarelacionadasentresporelhechode
quetodastienenelmismonombreylosdatosquecontienesontodosdelmismotipo.
Sonentidadesestticasyaqueconservanelmismotamaodurantetodalaejecucindelprograma.
Para poder referirnos a una posicin en particular o al datos dentro de esa posicin del arreglo, se
especificaelnombredelarregloyelnmerodeposicindelelemento.Lasposicionesgeneralmente
secuentanapartirdelcerocomoprimeraposicin.
Declaracindeunarreglo:
Seledaunnombreysedefinesutamaoyeltipodedatosquevaacontener(caracteres,enteros,
reales,etc.)
EnC:
intarreglo[10]/*unarreglode10enteros*/
floatarreglo[10]/*unarreglode10reales*/
chararreglo[10]/*unarreglode10caracteres*/
Altas,BajasyCambios
Altaenunarreglo:Severificaquehayaespacioyseinsertaelelementoenlaposicindisponible.Si
elarreglotieneunordendeterminadohayquebuscarlaposicincorrectaprimero,luegorecorrerlos
elementosparagenerarunespacioyfinalmenteseinsertaeldato.
Altaenunarreglo(secuencial)
/* dato es el elemento a dar de alta y pos indica la posicin
disponible */
alta(int arr[], int dato, int *pos)
{
if(*pos == MAX) /* Verifica si esta lleno */
printf("Error: el arreglo esta lleno");
else
{
arr[*pos] = dato; /* Inserta el dato */
*pos++; /* Incrementa la posicin */
}
}
Altaenunarreglo(ordenado)
/* dato es el elemento a dar de alta y cantidad indica el nmero de
datos existentes. Este procedimiento inserta un dato en un arreglo de enteros
en orden ascendente */
http://ict.udlap.mx/people/ingrid/Clases/IS211/Arreglos.html
1/3
18/9/2015
Arreglos
Bajaenunarreglo
Paraeliminarunelementodeunarregloprimeroseverificaqueno
estvacoelarreglo,luegosebuscaeldato,seeliminay,deser
necesario,serecorrenlosdemsparacubrirelespacioquequed.
baja(int arr[], int dato, int *cantidad)
{
int i, pos;
if(*cantidad == 0) /* Verifica si hay datos */
printf("Error: el arreglo esta vaco");
else
{
pos = -1; /* Recorre el arreglo buscando dato */
for(i=0; i<cant;i++)
if(arr[i] == dato) /* Si lo encontr */
pos = i;
if(pos == -1) /* No lo encontr */
printf("Error: No se encontr el dato %d", dato);
else
{ /* Recorre los datos eliminando el que se encontraba en pos*/
for(i=pos; i<*cantidad-1; i++)
arr[i] = arr[i+1];
*cantidad--; /* Decrementa cantidad */
}
}
}
Cambio
Paramodificarunelementodeunarregloprimeroseverificaqueno
http://ict.udlap.mx/people/ingrid/Clases/IS211/Arreglos.html
2/3
18/9/2015
Arreglos
estvacoelarreglo,luegosebuscaeldato,ysemodifica.
cambio(int arr[], int dato, int cantidad, int nuevo)
{
int i, pos;
http://ict.udlap.mx/people/ingrid/Clases/IS211/Arreglos.html
3/3