You are on page 1of 10

CAPITULO VII : ARREGLOS UNIDEMENSIONALES

Definicin de Arreglos:
Se puede visualizar un arreglo como un conjunto de datos de un mismo tipo (numrico o
alfanumrico). A los arreglos se les asigna un nombre para identificar as el conjunto total de valores. A
cada DATO participe del arreglo se le denomina ELEMENTO.
Definicin del Arreglo Unidimensional o Vectores
Un arreglo unidimensional se puede entender como el conjunto de celdas, ordenadas en fila, en las
que se depositaran datos del mismo tipo.
Un arreglo unidimensional es un conjunto de datos organizados en forma de lista. Los valores que
se muestran en el siguiente ejemplo pueden considerarse como elementos de un arreglo unidimensional o
vector:
21, 14, 15, 80, 17, 25, 30
Supongamos que cada elemento representa la edad de una persona cualesquiera.
Si a este conjunto (lista) de edades se le coloca un nombre como EDADES, se puede hacer
referencia a cualquier elemento del vector (arreglo unidimensional) agregando un nmero encerrado entre
parntesis, al que llamaremos ndice o subndice, el cual indicara la posicin que ocupa dentro del vector un
determinado elemento.
Ejemplo :
Se tiene la siguiente lista de datos que representan sueldos mensuales que paga una empresa.
150

5000

450

348

500

400

600

A este vector lo llamaremos SUELDOS, y la referencia a sus elementos seria de la siguiente forma :
Sueldo(1)=1500
Sueldo(2)=5000
Sueldo(3)=450
Sueldo(4)=348
Sueldo(5)=500
Sueldo(6)=400
Sueldo(7)=600

Los ndices o subndices pueden representarse por medio de una variable, nmero o expresin
matemtica.

Ejemplos:
VECTOR(K)
ZUM(0)
SUELDOS(K-1)
PERSON(F+(5*8-Y))
BUENO(2**3)
HOLA(VECTOR(3))
XXX(Y)
Los subndices deben ser valores enteros y positivos.

Los elementos de un vector pueden ser operados, comparados, modificados, ingresados


(ledos/aceptados) y mostrados (imprimir/mostrar/desplegar), como si fueran variables.
Ejemplos:
S =SUELDO(1)+150
SUELDO(3) =5000
SI (SUELDO(K) > 3000)ENTONCES...
MIENTRAS (SUELDO(5) = 15000) HACER
LEER SUELDO(X)
ESCRIBIR SUELDO(X)
SUELDO(VEC(3)) =2
ESCRIBIR SUELDO (4+X)
Declaracin de Arreglos Unidimensionales o Vectores
Declarar un arreglo significa indicarle al algoritmo que este va a tener un nombre especfico y un
largo mximo. Esto se realiza al comienzo del algoritmo justo despus de la palabra inicio.
Para declarar un arreglo unidimensional se debe indicar mediante la instruccin arreglo seguido por
el nombre del vector y entre parntesis la cantidad mxima de elementos a contener.
Formato:
Nombre del vector : Arreglo(1.. largo) de <tipo>
Ejemplo :
Utilizando la lista ya especificada en ejemplos anteriores, tenemos:
1.- Sueldo: Arreglo(1..7) de enteros
Esto indica, que hemos definido un vector con el nombre SUELDO que contiene como mximo 7
elementos de tipo enteros.

Diferencia entre Posicin y Elemento


Cuando hablbamos de posicin nos referimos al "lugar" de la lista que ocupa o donde se encuentra
un valor(elemento).
Ingreso de Datos en un Arreglo Unidimensional:
El siguiente algoritmo permite leer elementos a un arreglo unidimensional:

INICIO
lista : arreglo(1..4) de reales
leer lista(1)
leer lista(2)
leer lista(3)
leer lista(4)
Fin Algoritmo.
Analizando este se observa, la definicin del arreglo lista de largo 4, del tipo real. Posteriormente,
cuatro instrucciones de ingreso. Una para cada elemento.
Con metodologa expuesta, La creacin de un algoritmo que permita llenar un arreglo de 100
posiciones sera de la siguiente manera :
Inicio
ARR : Arreglo(1..100) de enteros
leer ARR(1)
leer ARR(2)
:
leer ARR(100)
Fin Algoritmo.
Sin embargo, esto se puede solucionar aplicando alguna instruccin iterativa, como por ejemplo :
Para...,el algoritmo anterior nos quedara de la siguiente manera :
Inicio

ARR : Arreglo(1..100)de enteros


Para ndice =1 Hasta 100 Hacer
leer ARR(ndice)
Fin Para
Fin Algoritmo.

Obsrvese que la variable Indice Cambia ( o asume los valores) de 1 a 100. De esta forma, cada una
de las iteraciones permite leer in elemento a una nueva posicin.
La variable ndice en este caso, se usa para referenciar un elemento distinto segn sea su valor.
Desplegar o Mostrar los elementos de un Arreglo o Vector

La lgica de este proceso, en este caso, es la misma que para leer, salvo que ahora se usa la
instruccin Mostrar.
Si se desea mostrar un elemento en particular, se indica el nombre del vector y el lugar donde esta el
elemento.
Ejemplo.
Inicio
NOM : Arreglo(1..100) de enteros
pos = 0
escribir "Deme la posicin"
leer pos
escribir "En esa posicin esta:",NOM(pos)
Fin Algoritmo.

Si se desea mostrar el contenido completo del vector, se utiliza una instruccin iterativa, que al
igual que el ingreso, permita hacer referencia a cada uno de los elementos del Vector. As tenemos .
Inicio
ARR : Arreglo(1..100) de enteros
pos = 0
Para pos = 1 Hasta 100 Hacer
Escribir ARR(pos)
Fin Para
Fin Algoritmo.

Ejemplos del uso de Vectores o Arreglos Unidimensionales


i.El siguiente algoritmo permite llenar un vector DATOS de 10 posiciones y luego mostrar
su contenido de manera inversa al ingreso.
Inicio
Datos : Arreglo(1..10) de enteros
Para x = 1 Hasta 10 Hacer
escribir "Deme un dato"
leer Dato(x)
Fin Para
Para x = 10 Hasta 1 Restando 1 Hacer
escribir Datos(x)
Fin Para
Fin Algoritmo

ii.En el siguiente algoritmo se llenar un vector llamado Lista de 100 posiciones desde la
ltima posicin hasta la primera.

Inicio
Lista : Arreglo(1..100) de enteros
Para x = 100 Hasta 1 Restando 1 Hacer
escribir "Deme un nmero"
leer Lista(x)
Fin Para
Fin Algoritmo.
iii.- En el siguiente algoritmo se llamar un vector de 100 posiciones llamado ABC y despus de
finalizado el ingreso de datos, se contar cuntos nmeros eran positivos.
Inicio
ABC : arreglo(1..100) de enteros
contador = 0
Para x = 1 Hasta 100 Hacer
escribir "Deme un nmero"
leer ABC(x)
Fin Para
Para x = 1 Hasta 100 Hacer
Si(ABC(x) > 0) Entonces
contador = contador + 1
Fin Si
Fin Para
escribir "Se ingresaron",contador,"Nmeros positivos en el vector"
Fin Algoritmo.
iv.Se tiene un vector llamado Vector de 100 posiciones. El siguiente algoritmo permite llenar
dicho vector solo con nmeros positivos ingresados por el usuario.
Inicio
Vector : Arreglo(1..100) de reales
Para p = 1 Hasta 100 Hacer
Repetir
escribir "Deme un nmero"
leer Vector(p)
Hasta Que (Vector(p) > 0)
Fin Para
Fin algoritmo

v.Supongamos que contamos con un vector llamado Lista de 100 posiciones con elementos
enteros positivos previamente ingresados. Con el siguiente algoritmo se puede determinar el promedio de
todos los elementos que hay en el vector.
Inicio
Lista : Arreglo(1..100) de enteros
acum = 0
Para x = 1 Hasta 100 Hacer
Acum = acum + Lista(x)

Fin Para
p = acum/100
escribir "El promedio es de :",p
Fin Algoritmo
vi.Usando el mismo vector del algoritmo anterior, cambiaremos todos los elementos pares por
su doble. Vamos a suponer que el arreglo ya esta lleno.
Inicio
Lista : Arreglo(1..100) de enteros
Para x = 2 Hasta 100 Sumando 2 Hacer
Lista(x) = Lista(x) * 2
Fin Para
Fin Algoritmo

Vii.- En el algoritmo de la pgina siguiente llenaremos un vector llamado N de largo 123 con
elementos enteros y positivos solamente.
Inicio
N : Arreglo(1..123)
Para x = 1 Hasta 123 Hacer
Repetir
escribir "Deme un nmero entero y positivo"
leer N(x)
Hasta que (N(x) > 0) Y (N(x) = Ent(N(x)))
Fin Para
Fin Algoritmo.
Viii.- Supongamos que tenemos un vector llamado Lista de 10 posiciones con nmeros ya
ingresados en el. El siguiente algoritmo ordena de menor a mayor dicho vector.
Inicio
Lista : Arreglo(1..10) de enteros
Para x = 1 Hasta 9 Hacer
Para y = x+1 Hasta 10 Hacer
Si(Lista(x) > Lista(y) Entonces
aux = Lista(x)
Lista(x) = Lista(y)
Lista(y) = aux
Fin Si
Fin para
Fin Para
Fin Algoritmo
ix.- Utilizaremos un vector llamado Num de 10 posiciones el cual esta vaco. El algoritmo le
permitir al usuario llenar el vector con elementos positivos nicamente y luego invertir su contenido.
Inicio
NUM : Arreglo(1..10) de enteros
Para p = 1 Hasta 10 Hacer
Repetir

escribir "Deme un nmero"


leer Num(10)
Hasta que (Num(p) > 0)
Fin Para
Para Izq = 1 Hasta 5 Hacer
aux = Num(izq)
Num(izq) = Num(11-izq)
Num(11-izq) = aux
Fin Para
Fin Algoritmo
x.- Determinaremos el mayor de los nmeros de un vector llamado Lista de 231 posiciones
elementos numricos ya ingresados. Se llaman "A" y "B".
Con estos vectores determinaremos cual de ellos posee un promedio ms alto.
Inicio
A ,B : arreglo(1..10) de enteros
:
acum_A = 0
acum_B = 0
Para pos = 1 Hasta 10 Hacer
acum_A = acum_A + A(pos)
acum_B = acum_B + B(pos)
Fin Para
Prom _A = acum_ A/10
Prom _B = acum_B/10
Si (Prom_A = Prom_B)entonces
Escribir "Ambos promedios son iguales"
Sino
Si(Prom_A > Prom_B)Entonces
Escribir "El promedio mayor correspondi al vector A"
Sino
Escribir "El promedio mayor correspondi al vector B"
Fin SI
Fin Si
Fin Algoritmo
Paralelismo entre los vectores
Los vectores no siempre se usan de manera independiente, pues en ocasiones hay informacin que
hace referencia a n mismo ente, por lo tanto, se requiere usar vectores de un modo paralelo. Esto significa
que ellos cumplirn con las siguientes caractersticas:
- La informacin almacenada en ellos guarda esta relacionada entre s a partir de su posicin

- Cualquier modificacin de sus ubicaciones tiene que ser hecha en todos los vectores que estn siendo
tratados paralelamente

As, si tenemos tres vectores en donde guardamos nombre, edad y sexo de 6 personas, entonces
tendramos algo as:

NOMBRE

EDAD

SEXO

ANITA

34

PEDRO

35

DIEGO

64

ROSA

34

CARLOS

45

HECTOR

22

figura 1

En estos vectores la informacin de una persona esta contigua en los tres vectores, as, si en la
primera posicin del vector NOMBRE aparece Anita, la edad y el sexo que indican en los otros vectores
pertenecen a ella.

En este tipo de vectores, si se altera el orden de los datos en un vector, este cambio debe realizarse
tambin en los otros dos para no perder la contiguidad de los elementos.
Por ejemplo, si intercambiamos en el vector Nombre el primer elemento por el segundo, pasara lo
siguiente: ( figura 2)

NOMBRE

SEXO

PEDRO

34

ANITA

35

DIEGO

64

ROSA

34

CARLOS

45
22

HECTOR
figura 2

EDAD

Como se puede apreciar, al no realizar el cambio en los otros dos vectores, se produjo una
alteracin en los datos, ya que ahora Pedro aparece con 34 aos my de sexo femenino que eran los datos de
Anita, as mismo quedo con los datos de Pedro. Por lo tanto, los cambios deberan hacerse tambin en los
otros dos vectores para que queden as :
NOMBRE

EDAD

SEXO

PEDRO

35

ANITA

34

DIEGO

64

ROSA

34

CARLOS

45

HECTOR

22

De esta forma los datos cambiaron posicin pero no perdieron su relacin.


Veamos otro ejemplo.
Inicio
Nombre : Arreglo(1..6) de alfanumricos
Edad : Arreglo (1..6) de enteros
Sexo : Arreglo(1..6) de carcter
Para x = 1 Hasta 6 Hacer
escribir "Deme un nombre"
leer Nombre(x)
escribir "Deme su edad"
leer Edad(x)
escribir "Identifique su sexo"
leer Sexo(x)
Fin Para
Para x = 1 Hasta 5 hacer
Para y = 1 Hasta 6 Hacer
Si(Nombre(x) > Nombre(y)) Entonces
aux_nom = Nombre(x)
Nombre(x) = Nombre(y)
Nombre(y) = aux_nom
aux_ed = Edad(x)
Edad(x) = Edad(y)
Edad(y) = aux_ed
aux_sex = Sexo(x)
Sexo(x) = Sexo(y)
Sexo(y) = aux_sex
Fin Si
Fin Para
Fin Para
Fin Algoritmo

Actividades propuestas
Desarrolle los siguientes Algoritmos:
i.- Llene un vector llamado NUMEROS, de 100 posiciones con elementos enteros positivos.
ii.- Se tiene un vector llamado Orden de largo 100 con elementos enteros pero distintos entre s. Ordene la
primera mitad de ste de menor a mayor y la segunda mitad de mayor a menor.
iii.- Se tiene un vector de 50 posiciones de letras ya ingresadas .Determine cuantas veces se da que una letra
se encuentra en una posicin que coincida con su posicin dentro del abecedario.
iv.- Una tienda de calzado a usado un vector para colocar los precios de sus zapatos de tal forma que el
precio de un zapato este ubicado en la casilla que corresponda a su nmero; as, un zapato nmero 33 tiene
su precio en la casilla 33 del vector y un zapato nmero 40 tiene su precio en la casilla nmero 40 del
vector.
Con estos datos haga un algoritmo que le permita al usuario procesar tantas ventas como desee si por cada
una de ellas tiene que leer el nmero del zapato y la cantidad de pares que desea llevar para recibir del
algoritmo el monto total a pagar.
v.-Se tiene dos vectores de largo 10 con elementos ya ingresados. Se pide crear un tercer algoritmo con la
interseccin de ellos. Esto significa que un vector que se cree en el algoritmo debe poseer los elementos que
estn en ambos vectores.
vi.-Una empresa tiene una lista de sus empleados en la que se tienen sus nombres, su edad, y su estado civil.
.Confeccione un algoritmo que permita determinar cual es la edad que se repite mas en dicha lista.
vii.- Una empresa de confecciones a colocado en un vector llamado Ventas de 100 posiciones, las ventas de
cada uno de sus 100 empleados. Estos totales ya tienen agregado el 19% de I.V.A.
Confeccione un algoritmo que permita determinar cuanto es el monto de I.V.A. dbito.
viii.- Una persona ha escrito en un vector un mensaje. Si se sabe que:
En cada casilla hay un carcter.
El mensaje no necesariamente empieza en la primera casilla del vector.
El mensaje no termina necesariamente en la ultima casilla del vector.
Cada palabra esta separada por uno o ms espacios en blanco.
Haga un algoritmo que permita determinar cuantas palabras fueron ingresadas.