Sunteți pe pagina 1din 21

ARREGLOS UNIDIMENSIONALES (VECTORES)

Un arreglo unidimensional es un tipo de datos estructurado que est formado por


una coleccin finita y ordenada de datos del mismo tipo. Es la estructura natural
para modelar listas de elementos iguales. Los datos que se guarden en los
arreglos todos deben ser del mismo tipo.
El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir,
podemos acceder a cualquier elemento del arreglo sin tener que consultar a
elementos anteriores o posteriores, esto mediante el uso de un ndice para cada
elemento del arreglo que nos da su posicin relativa.
Para implementar arreglos unidimensionales se debe reservar espacio en
memoria.
Los arreglos nos permiten hacer un conjunto de operaciones para manipular los
datos guardados en ellos, estas operaciones son: ordenar, buscar, insertar,
eliminar, modificar entre otras.
Declaracin: tipo nombre_arreglo[tamao];
Donde - tipo, declara el tipo base del arreglo, que es el tipo de cada
elemento del mismo
nombre_arreglo, es el nombre del arreglo.
tamao, es el nro. de elementos del arreglo.
Ejemplo:
int lista[10]; //declara un arreglo lista con 10 elementos de tipo
int.
Los elementos del arreglo lista del ejemplo serian:
lista[0] = 34 primer elemento del arreglo
lista[1] = 15 segundo elemento del arreglo
..
lista[9] = 18 ltimo elemento del arreglo
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.
ORDENACIONES EN ARREGLOS
La importancia 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.
Existen muchos algoritmos para la ordenacin de elementos en arreglos, algunos
de ellos son:
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 especfico 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.
Bsqueda binaria: Las condiciones que debe cumplir el arreglo para
poder usar bsqueda binaria son que el arreglo este ordenado y que se
conozca el numero de elementos. Este mtodo consiste en lo siguiente:
comparar el elemento buscado con el elemento situado en la mitad del
arreglo, si tenemos suerte y los dos valores coinciden, en ese momento la
bsqueda termina. Pero como existe un alto porcentaje de que esto no
ocurra, repetiremos los pasos anteriores en la mitad inferior del arreglo si
el elemento que buscamos resulto menor que el de la mitad del arreglo, o
en la mitad superior si el elemento buscado fue mayor. La bsqueda
termina cuando encontramos el elemento o cuando el tamao del arreglo a
examinar sea cero.
Bsqueda por hash: La idea principal de este mtodo consiste en aplicar
una funcin que traduce el valor del elemento buscado en un rango de
direcciones relativas. Una desventaja importante de este mtodo es que
puede ocasionar colisiones.
ARREGLOS UNIMENSIONALES EN J AVA
Definicin.
Es una coleccin de datos del mismo tipo. Sirve para manejar un nmero n de
elementos en comn, ya sea de tipos definidos por el Lenguaje, (int, float,
String, etc.) as como aquellos definidos por el programador.
Los arreglos en J ava son dinmicos, pero no extensibles, lo cual significa que
deben ser creados con el tamao que tendrn hasta el final de su vida.
Caractersticas:
Son de tipos de datos complejos (en el sentido de que no son atmicos).
arreglo.
con el tamao que tendrn hasta el final de su vida.
o del arreglo -
1.
-1].
os arrays se crean con el operador new seguido del tipo y nmero de
elementos.
Declaracin de un arreglo.
La sintaxis de declaracin de arreglos en J ava es:
<tipo> [] <nombre>
Para declarar, por ejemplo, un arreglo de nmeros enteros utilizaremos la
siguiente sentencia:
int[] arrInt;
El arreglo an no ha sido creado, sino meramente declarado. Para crear el arreglo
(reservar su memoria e inicializarlo) deberemos recurrir al operador new:
arrInt = new int[10];
El tipo de datos del arreglo (int[] en este caso) es una clase y cada una de sus
instancias debe ser creada explcitamente, el tamao puede pensarse como un
parmetro al constructor de la clase.
A partir de este momento se puedeutilizar arrInt como un arreglo de
cualquier otro lenguaje.
Una de las caractersticas que hacen de J ava un entorno de programacin
seguro, y que se relaciona con el manejo de los arreglos es que el lenguaje no
permite la indexacin de arreglos fuera de rango, o sea, una asignacin de este
tipo generar una excepcin:
ArrInt[25] = 1;
O tambin se puede declarar de la siguiente forma:
tipo nombre_array[]=new tipo[n];
tipo nombre_array[]={valores};
Tamao de un arreglo.
J ava considera cada arreglo como un solo objeto.
El nmero de elementos de un arreglo se conoce accediendo al campo
length
double [] v = new double [15]
System.out.printl(v.length); //escribe 15
El campo length est protegido, no se puede modificar.
Inicializando el arreglo.
1. Los arrays se pueden inicializar con valores entre llaves {...} separados por
comas.
2. Tambin los arrays de objetos se pueden inicializar con varias llamadas a new
dentro de unas llaves {}
3. Si se igualan dos referencias a un array no se copia el array, sino que se tiene
un array con dos nombres, apuntando al mismo y nico objeto.
4. Creacin de una referencia a un array, se puede hacer de dos maneras:
double[] x; //preferible double x[];
5. Creacin del array con el operador new
x = new double[100];
6. Las lneas 4 y 5 se pueden unir en una sola:
double[]x = new double[100];
ARREGLOS UNIDIMENSIONALES EN PSEINT
Los arreglos son estructura de datos homogneas (todos los datos son del mismo tipo)
que permiten almacenar un determinado nmero de datos bajo un mismo identificador,
para luego referirse a los mismos utilizando sus posiciones. Los arreglos pueden
pensarse como vectores, matrices, etc.
Para crear un arreglo en PSeInt se utiliza la palabra clave Dimension, seguido del
nombre del arreglo (identificador) y su tamao entre corchetes [].
Sintaxis:
Dimension identificador [tamao];
En PSeInt los arreglos pueden comenzar desde cero o uno. Depende de cmo se
configure el programa.
Arreglos en base cero
Para empezar a programar nuestros algoritmos con arreglos en base cero, vamos al
men configurar y escogemos Opciones del lenguaje, nos saldr un cuadro como
este:
Seleccionamos el perfil <personalizado> y hacemos clic en el botn Personalizar
Saldr el siguiente cuadro:
Marcamos la casilla: Utilizar arreglos en base cero y presionamos aceptar.
De esta manera ya queda configurado el programa para utilizar arreglos en base cero.
Para comprender mejor el concepto de arreglos se realizar una serie de ejemplos.
Ejemplo 1:
Crear un arreglo llamado num que almacene los siguientes datos: 20, 14, 8, 0, 5, 19 y
24.
Salida:
Representacin grafica del anterior ejemplo:
Al utilizar arreglos en base cero los elementos validos van de 0 a n-1, donde n es el
tamao del arreglo. En el ejemplo 1 las posiciones del arreglo num entonces van
desde 0 a 7-1, es decir de 0 a 6.
Los ciclos, tambin conocidos como bucles o estructuras de control repetitivas, juegan
un papel muy importante en los arreglos. En el anterior ejemplo, imprimimos los datos
a travs de siete mensajes, una tarea que lleva cierto tiempo y ms cuando la cantidad
de datos son demasiados, por eso para facilitar el proceso, utilizamos un ciclo Para y
as mostrar todos los datos con un slo mensaje.
Ejemplo 2:
El ciclo Para nos ahorra la tarea de escribir los siete mensajes que muestran los siete
datos pedidos inicialmente.
Podemos ver que la salida es la misma:
Pero no solo podemos imprimir los datos del arreglo con un ciclo, tambin podemos
llenar con datos los arreglos con el ciclo Para.
Ejemplo 3:
Crear un arreglo de 5 posiciones y llnelo con los nmeros que el usuario desee.
Salida:
Como se puede apreciar en la salida, los nmeros ingresados por el usuario son: 10,
20, 30, 40, 50.
Hemos visto arreglos con datos numricos, pero tambin se le pueden llenar con datos
de tipo cadenas de texto.
Ejemplo 4:
Crear un arreglo de n posiciones y llenarlo con nombres de personas.
Salida:
En este ejemplo el usuario eligi 3 posiciones, llenando el arreglo con los siguientes
nombres: Humberto, Rodrigo y Roberto.
Arreglos en base 1
Comienzan desde 1 hasta n, donde n es el tamao del arreglo.
Para programar sus algoritmos en base 1 recuerde tener desmarcada la casilla:
Ejemplo 5:
Crear un arreglo de n posiciones y llenarlo con los nmeros que el usuario desee.
En el ciclo Para la variable ya no comienza con cero sino con uno y va hasta n.
Salida:
Consideraciones:
No importa con que base trabajemos en los arreglos: uno o cero, siempre
obtendremos los mismos resultados de forma eficiente, pero recomiendo al estudiante
trabajar en PSeInt con arreglos en base cero ya que a la hora de aprender un lenguaje
de programacin como por ejemplo J ava, los arreglos siempre van a comenzar desde
cero.
Tambin podemos definir uno o ms arreglos en una misma instruccin separndolos
con una coma.
Ejemplo 6:
Crear dos arreglos uno que almacene 2 nombres y otro que almacene 3 nmeros.
Salida:
EJERCICIOS RESUELTOS CON ARREGLOS
1. Sumar todos los elementos de un arreglo de tamao n.
Para sumar los elementos de un vector debemos usar un acumulador inicializado en
cero.
Salida:
2. Sumar los elementos de dos vectores y guardar el resultado en otro vector.
Salida:
3. Llenar un vector de 10 posiciones con nmeros aleatorios entre 1 y 100.
Para los nmeros aleatorios PSeInt utiliza la funcin Azar, sta escoge un entero
aleatorio entre 0 y x-1.
Salida:
De esta manera cada vez que ejecutemos el algoritmo arrojar distintos nmeros.
4. Llenar un vector con nmeros enteros (nmeros positivos negativos).
Mostrar la cantidad de nmeros positivos que hay en dicho arreglo.
Salida:
5. Almacene en un arreglo de n posiciones nombres de pases. Implementar una opcin que
al digitar una

S-ar putea să vă placă și