Está en la página 1de 25

ARREGLOS

Qu es un arreglo

Un arreglo es un conjunto de datos o una estructura de datos homogneos


que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve
para almacenar datos en forma temporal).
Un arreglo es un conjunto de datos homogneos que son almacenados en
localidades continuas de memoria, definida por un nombre, tipo de dato y un
tamao
ARREGLO UNIDIMENSIONAL

Es un tipo de datos estructurado que est formado de una coleccin finita y


ordenada de datos del mismo tipo. Es la estructura natural para modelar
listas de elementos iguales. Estn formados por un conjunto de elementos de
un mismo tipo de datos que se almacenan bajo un mismo nombre, y se
diferencian por la posicin que tiene cada elemento dentro del arreglo de
datos. Al declarar un arreglo, se debe inicializar sus elementos antes de
utilizarlos. Para declarar un arreglo tiene que indicar su tipo, un nombre nico
y la cantidad de elementos que va a contener.
Caractersticas de un arreglo o vector

Ser una lista de un numero finito de n elementos del mismo tipo


Almacenar los elementos del arreglo en memoria contigua.
Tener un nico nombre de variable que representa a todos los elementos y
estos se diferencian por un ndice o subndice
Acceder de manera directa o aleatoria a los elementos individuales del
arreglo por el nombre del arreglo y el ndice o subndice
Clasificacin de los arreglos

Unidimensionales (Vectores o Listas)


Bidimensionales(Tablas o Matrices)
Multidimensionales (Ms de dos dimensiones)
Operaciones con arreglos
Las operaciones en arreglos pueden clasificarse de la siguiente forma:
Lectura: este proceso consiste en leer un dato de un arreglo y asignar un
valor a cada uno de sus componentes
Escritura: Consiste en asignarle un valor a cada elemento del arreglo.
Asignacin: No es posible asignar directamente un valor a todo el arreglo
Actualizacin: Dentro de esta operacin se encuentran las operaciones de
eliminar, insertar y modificar datos. Para realizar este tipo de operaciones se
debe tomar en cuenta si el arreglo est o no ordenado.
Ordenacin. Bsqueda.{ Insertar. Borrar. Modificar. }
Arreglos unidimensionales (vectores o listas).

Para acceder a cada elemento del arreglo se requiere de un solo ndice o


subndice (mismo que inicia en 0), el cual representa la posicin en la que se
encuentra.

Elementos
0 1 2 3 4 5 6 7

ndice
Inicializacin de un arreglo

Sintaxis Lenguaje C Ejemplo


Tipo_dato nombre_arreglo[tamao]; Int nmeros[8]:

0 1 2 3 4 5 6 7

ndice
Inicializacin y asignacin de valores

Sintaxis Lenguaje C Ejemplo


Tipo_dato nombre_arreglo[tamao]={E1,E2,E3,E4,E5+En} Int nmeros[8]={44,55,12,42,94,18,6,67}

Nmeros

44 55 12 42 94 18 6 67
0 1 2 3 4 5 6 7
Valor almacenado
nmeros[0]=44
nmeros[1]=55
ndice
nmeros[2]=12
De esta forma estamos asignando un valor a cada nmeros[3]=42
localidad del arreglo, en este caso el separador es nmeros[4]=94
la , y con ello identifica que cada nmero es nmeros[5]=18
asignado en una localidad diferente. nmeros[6]=6
nmeros[7]=67
Referencia a un elemento de un arreglo o vector.
Sintaxis Lenguaje C Ejemplo
nombre_arreglo[ndice]; Nmeros[2];
Nmeros[0];
Nmeros[4];

Nmeros

44 55 12 42 94 18 6 67
0 1 2 3 4 5 6 7
nmeros[0]=44
nmeros[1]=55
nmeros[2]=12
Por lo que al hacer referencia al nombre e nmeros[3]=42
ndice del arreglo podemos acceder al valor o nmeros[4]=94
dato almacenado en esa localidad: nmeros[5]=18
nmeros[6]=6
nmeros[7]=67
Referencia a un elemento de un arreglo o vector, mtodo
de acceso directo.
Sintaxis Lenguaje C Ejemplo
nombre_arreglo[ndice]; Nmeros[2];
Nmeros[0];
Nmeros[4];

Nmeros

44 55 12 42 94 18 6 67
0 1 2 3 4 5 6 7

nmeros[0]=44
Por lo que al hacer referencia al nombre e nmeros[2]=12
ndice del arreglo podemos acceder al valor o nmeros[4]=94
dato almacenado en esa localidad:
Ejemplo implementacin en c
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int numeros[8]={44,55,12,42,94,18,6,67};
int indice=0;
for(indice=0;indice <=7;indice++){
printf("el indice %d tiene un %d \t",indice,numeros[indice]);
printf("la posicion %d tiene un %d\n",indice+1,numeros[indice]);
}
return 0;
system("pause");
}
ARREGLOS BIDIMENSIONALES

Un arreglo bidimensional es una coleccin homognea, finita y


ordenada de datos, en la que se hace referencia a cada componente
del arreglo por medio de dos ndices. El primero se utiliza para indicar
el rengln, y el segundo para sealar la columna.
Un arreglo bidimensional tambin se puede definir como un arreglo
de arreglos.
Una matriz a(MxN) tiene M renglones y N columnas. Un elemento
a[i,J], se localiza en el rengln I, y en la columna J. Internamente en
memoria se reservan M X n posiciones consecutivas para almacenar
todos los elementos de matriz.
Los arreglos bidimensionales (matrices) se declaran cuando se
especifican el nmero de renglones y el nmero de columnas, junto
con el tipo de datos de los componentes.
Tipo de dato Id_arreglo=arreglo [renglones columnas];
Con renglones se declara el tipo de dato ndice para los renglones y
cuantos renglones tendr el arreglo(matriz).
Asimismo, con columnas se declara el tipo de dato del ndice de las
columnas y cuntas columnas tendr el arreglo.
Declaracin matriz nmeros

Int nmeros[4,4];
Nmeros
columnas
renglones Nmeros[1,1] Nmeros[1,2] Nmeros[1,3] Nmeros[1,4]
Nmeros[2,1] Nmeros[2,2] Nmeros[2,3] Nmeros[2,4]
Nmeros[3,1] Nmeros[3,2] Nmeros[3,3] Nmeros[3,4]
Nmeros[4,1] Nmeros[4,2] Nmeros[4,3] Nmeros[4,4]
Operaciones que se pueden realizar con arreglos
bidimensionales (matrices) son:
Lectura /Escritura
Asignacin
Actualizacin: insercin
Eliminacin
Modificacin
Ordenacin
Bsqueda
La inicializacin de las matrices puede ser de la misma forma que los
vectores, teniendo en cuenta por ejemplo

Int matriz [3] [4] = { {10,20,30,110},


{40,50,60,101},
{70,80,90,100} }
Ejemplo matrices incializada con valores
// ejemp_matrices
#include<stdio.h>
int main(){
int tabla[3][4]={{10,15,25,1},{28,64,72,25},{125,66,74,33}};
for (int i=0;i<3;i++ ){
for(int j=0 ;j<4; j++) {
printf("%d ",tabla[i][j]);
}
printf("\n");
}
}
Ejemplo captura datos matriz
// ejemp_matrices
#include<stdio.h>
int main(){
int tabla[3][4];
printf ("ingrese los valores para la matriz de 3X4 \n\n");
for (int i=0;i<3;i++ ){
for(int j=0 ;j<4; j++){
printf("Elemento [%d , %d ]: ",i,j);
scanf("%d", &tabla[i][j]);
}}
printf("\n elementos almacenados en la matriz\n\t");
for (int i=0;i<3;i++ ){
for(int j=0 ;j<4; j++) {
printf("%d ",tabla[i][j]);
}
printf("\n\t");
}
}
ARREGLOS PARALELOS

Por arreglos paralelos, se entiende dos o ms arreglos cuyos elementos se


corresponden. Es decir, los componentes que ocupan una misma posicin en
diferentes arreglos tiene una estrecha relacin semntica.
Ejemplo: Se conoce el nombre del alumno y la calificacin obtenida por ste en un
examen que fue aplicado a un grupo de 22 alumnos. Si se quisiera usar estos datos para
generar informacin, [promedio del grupo, calificacin ms alta, nombre de los alumnos
con la calificacin inferior al promedio, etc.], se tendran dos alternativas principales
para el diseo de la solucin.
Arreglos paralelos -continuacin

Si se utilizan arreglos paralelos para resolver este problema, se requiere de


dos arreglos unidimensionales: en uno se almacenar el nombre de los
alumnos y en el otro la calificacin obtenida por ste en el examen. Es decir,
a cada elemento del arreglo nombre le corresponder entonces uno del
arreglo calificacin, as, si se requiere hacer referencia a la calificacin de
Nombre[i], se utilizar Calificacin[i]. Nombres Calificaciones

Johnny Bravo 8.3


Jack Sparrow . 9.5
Francisco Mrquez
. 7.4
Alfred Hikott
. 8.5
Mastropiero
.
7.8
Guapimiro Buen rostro 10.0
Arreglos paralelos -continuacin
{Este algoritmos calcula el promedio del grupo e
imprime el nombre de los alumnos con calificacin
Hacer Ac=0;
menor al promedio}, {Nombre y Calificacin son
Repetir con I desde 1 hasta 30: variables de tipo arreglo, i es una variable de tipo
Leer Nombre[i] y Calificacin [I] entero, Prom y Ac son variables de tipo real]
Hacer Ac=Ac+Calificacion[i]
Fin del ciclo
Se calcula promedio del grupo Hacer Prom=c/30
Escribir el promedio del grupo es, Prom
// Bsqueda e impresin de los nombre de los alumnos con calificacin inferior al promedio.
Repetir con i desde 1 hasta 30
Si (calificacin[i] < Prom) entonces
escribir Nombre[i]
finsi
Fin ciclo
Ordenaciones en arreglos

Laimportancia de mantener nuestros arreglos ordenados radica en que es


mucho ms rpido tener acceso a un dato en un arreglo ordenado que en uno
desordenado.
Existenmuchos algoritmos para la ordenacin de elementos en arreglos,
algunos de ellos son:
Ordenaciones en arreglos- continuacin
Seleccin directa
Este mtodo consiste en seleccionar el elemento ms pequeo de nuestra lista para colocarlo al
inicio y as excluirlo de la lista. Para ahorrar espacio, siempre que vayamos a colocar un elemento
en su posicin correcta lo intercambiaremos por aquel que la est ocupando en ese momento.
Ordenacin por burbuja
Es el mtodo de ordenacin ms utilizado por su fcil comprensin y programacin, pero es
importante sealar que es el ms ineficiente de todos los mtodos. Este mtodo consiste en llevar
los elementos menores a la izquierda del arreglo los mayores a la derecha del mismo. La idea
bsica del algoritmo es comparar pares de elementos adyacentes e intercambiarlos entre s hasta
que todos se encuentren ordenados.
Ordenacin por mezcla
Este algoritmo consiste en partir el arreglo por la mitad, ordenar la mitad izquierda, ordenar la
mitad derecha y mezclar las dos mitades ordenadas en un array ordenado. Este ltimo paso
consiste en ir comparando pares sucesivos de elementos (uno de cada mitad) y poniendo el valor
ms pequeo en el siguiente hueco.
Algoritmos de bsqueda que existen

Bsquedas en Arreglos: Una bsqueda es el proceso mediante el cual


podemos localizar un elemento con un valor especifico dentro de un conjunto
de datos. Terminamos con xito la bsqueda cuando el elemento es
encontrado.
Bsqueda secuencial: A este mtodo tambin se le conoce como bsqueda
lineal y consiste en empezar al inicio del conjunto de elementos , e ir a travs
de ellos hasta encontrar el elemento indicado hasta llegar al final de
arreglo. Este es el mtodo de bsqueda ms lento, pero si nuestro arreglo se
encuentra completamente desordenado es el nico que nos podr ayudar a
encontrar el dato que buscamos.

También podría gustarte