Вы находитесь на странице: 1из 11

ARREGLOS

Contenido
Introduccin .......................................................................................................................... 2
Arreglos ................................................................................................................................ 2
Vectores ............................................................................................................................ 2
Entrada de datos a un vector ........................................................................................ 3
Salida de datos de un vector ......................................................................................... 3
Matrices ............................................................................................................................. 6
Entrada de datos a una matriz ...................................................................................... 6
Salida de datos de una matriz ....................................................................................... 7
Taller ................................................................................................................................... 10




Material de estudios realizado por
Jos Gabriel Garavito Aponte
Instructor Sistemas e Informtica
SENA CTA
ARREGLOS
Introduccin
Hasta ahora slo se han estudiado los tipos de datos bsicos y las variables que con ellos
se pueden trabajar, sin embargo, stas variables slo pueden almacenar un valor a la vez,
es decir, cuando se asigna un nuevo valor, el valor anterior es borrado.
En ocasiones es necesario que una misma variable almacene vario valores, es aqu
donde se manejan los arreglos. Este material de estudios est diseado para brindar al
aprendiz los conocimientos necesarios para trabajar con arreglos.
Recuerda que La inteligencia consiste no slo en el conocimiento, sino tambin en la
destreza de aplicar los conocimientos en la prctica.
Arreglos
Son organizaciones de datos que permiten almacenar diferentes valores de una misma
variable, guardan cada valor en una posicin diferente del arreglo. Los arreglos pueden
ser da cualquier tipo de datos escalar de los que ya se han estudiado, es decir, pueden
ser variables enteras, reales, de caracteres o de cadena de caracteres.
Siempre que se trabaja con arreglos es preciso tener en cuenta que el arreglo en su
totalidad es una sola variable y que para poder acceder a cada valor almacenado en sus
diferentes posiciones, es necesario saber la posicin que ocupa el valor requerido en el
arreglo.
Los arreglos pueden ser arreglos de una sola dimensin, denominados vectores; de dos
dimensiones, denominados matrices o de tres o ms dimensiones, denominados arreglos
espaciales. En este material de estudios veremos los ms utilizados que son los dos
primeros: vectores y matrices.
Vectores
Los vectores son arreglos que solo tienen un dimensin, se pueden representar en forma
vertical o en forma horizontal. Siempre un vector debe tener un nombre de variable
previamente definido que lo identifica y entre parntesis o corchetes el nmero de la
posicin que se va a acceder, por ejemplo: si se va a definir un arreglo para almacenar
diez nmeros enteros ledos por el usuario se debe definir as:
Num: Arreglo(0..9) Entero.
Num es el nombre de la variable tipo arreglo que va a almacenar los nmeros, Arreglo
indica en el algoritmo que es un arreglo de datos, 0..9 indica que este arreglo tiene diez
posiciones comenzando desde la posicin cero hasta la posicin 9 y Entero indica que los
valores que se van a almacenar en el arreglo son de nmeros enteros.
La forma de representar este vector es:
Num(0..9)
8 -3 30 18 43 1 0 -145 23 11
Posicin 0 Posicin 1 Posicin 9
Cada celda indica una posicin del arreglo, la primera celda corresponde a la posicin 0,
la segunda a la posicin 1 y as sucesivamente hasta la posicin 9.
Para acceder a valor almacenado en el arreglo es necesario indicar el nombre del arreglo
y entre parntesis o corchetes el nmero de la posicin deseada, por ejemplo: Num(4)
hace referencia al valor almacenado en la posicin cuatro del vector Num, en este caso
corresponde al valor 43. Tambin es posible acceder a un valor del arreglo mediante una
variable numrica entera que guarde el valor de la posicin que se deseada, por ejemplo:
Num(I) accede a la posicin I del arreglo siendo I una variable entera que toma valores
entre 0 y 9.
Entrada de datos a un vector
Para leer los datos que se van a almacenar en un vector es necesario indicar el nombre
de la variable que identifica el vector y la posicin del vector que se va a leer, para
generar las posiciones del vector se utiliza uno de los ciclos automticos ya estudiados,
por ejemplo:
Para I = 0 hasta 9 Haga
Lea (Num(I))
Fin Para I

Las tres instrucciones anteriores permiten leer los datos del vector Num, porque:

El ciclo Para I = 0 hasta 9 Haga, permite generar cada una de las diez posiciones del
vector, Lea Num(I) permite que el usuario escriba el valor que va a almacenar en la
posicin I del vector y Fin Para I genera el siguiente valor de I que indica la siguiente
posicin del vector.
Salida de datos de un vector
Para mostrar los datos de un vector es necesario acceder al vector y esto se hace, como
ya se ha visto, con el nombre de la variable y la posicin deseada. Las siguientes lneas
permiten mostrar el contenido del vector Num.
Para I = 0 hasta 9 Haga
Escriba (Num(I))
Fin Para I

El ciclo Para I = 0 hasta 9 Haga, permite generar cada una de las diez posiciones del
vector, Escriba Num(I) permite mostrar el valor almacenado en la posicin I del vector y
Fin Para I genera el siguiente valor de I que indica la siguiente posicin del vector.

Como ejemplo completo se plantea el siguiente: se leen por teclado diez valores
numricos enteros, haga un algoritmo que permita leer los valores, calcular la suma de
dichos valores y mostrar los nmeros almacenas en el vector y el valor de la suma.

Anlisis: como entradas se tienen: diez posiciones del vector y diez nmeros enteros que
sern digitados por el usuario. Como salidas se piden: los nmeros que entr el usuario y
el valor calculado de la suma. El proceso consiste en acceder a cada posicin del vector
para sumarla. Nota: Hay que tener presente que para leer, procesar o mostrar los datos
del vector es necesario acceder a cada posicin mediante un ciclo de repeticin
automtica. De acuerdo a este planteamiento, el algoritmo es:

Inicio
Variables
Num: Arreglo(0..9) Entero
Suma, I: Entero
//Entrada de Datos
Para I = 0 hasta 9 Haga
Lea Num(I)
Fin Para I
//Clculo de la sumatoria.
Suma = 0
Para I = 0 hasta 9 Haga
Suma = Suma + Num(I) //incrementa el acumulador suma segn el contenido
//del vector Num en la posicin I.
Fin Para I
//Salidas o resultados
//Las siguientes tres lneas muestran los datos del vector.
Para I = 0 hasta 9 Haga
Escriba (Num(I), , )
Fin Para I
//La siguiente lnea muestra el valor de la suma y termina el algoritmo
Escriba(El valor de la suma de los datos del vector num es: ,Suma)
Termine.

El diagrama de flujo correspondiente al pseudocdigo anterior es:





















































I = 1 Hasta 9
I = 1 Hasta 9
Inicio
Num(I)
Fin Para I
Suma = 0
Fin Para I
Suma = Suma + Num(I)
I = 1 Hasta 9
Fin Para I
Num(I)
Termine
Suma
Matrices
Son arreglos de datos en dos dimensiones, es decir, organizados en forma de filas y
columnas, las filas en forma horizontal y las columnas en forma vertical. Al igual que los
vectores, las matrices se identifican con una variable y entre parntesis o corchetes los
nmeros de la posicin que se desea acceder separados por coma, el primer nmero
corresponde a la fila y el segundo a la columna; por ejemplo: Notas(2,3) hace referencia al
contenido de matriz notas en la fila dos columna 3. De igual manera las posiciones de la
fila y la columna se pueden indicar con variable numricas enteras, por ejemplo:
Notas(I,J) hace referencia al contenido de la matriz Notas en la fila I columna J, siendo I
una variable numrica que toma los valores desde la fila 0 hasta la columna N y J una
variable numrica entera que toma los valores desde la columna 0 hasta la columna M.
Entrada de datos a una matriz
Para leer los datos que se van a almacenar en una matriz es necesario indicar el nombre
de la variable que identifica la matriz y la posicin de la matriz que se va a leer indicando
primero el nmero de la fila y luego el nmero de la columna separados por coma, para
generar las posiciones de la matriz se utiliza uno de los ciclos automticos ya estudiados,
por ejemplo:
//Lectura de datos de la matriz Notas.
1. Escriba(Cuantas columnas tiene la matriz )
2. Lea (N) //Lectura del total de filas de la matriz
3. Escriba(Cuantas filas tiene la matriz )
4. Lea (M) //Lectura del total de columnas de la matriz
5. Para I = 0 hasta N-1 Haga //El ciclo para I genera las posiciones de las filas.
6. Para J = 0 hasta M-1 Haga //El ciclo para J genera las posiciones de las Columnas.
7. Lea(Notas(I,J) //Lectura del contenido de la matriz Notas en la posicin I,J
8. Fin Para J //Cierre del ciclo para J
9. Fin Para I //Cierre del ciclo para I

Las dos primeras lneas del algoritmo anterior permiten mostrar un mensaje indicando que
se va a solicitar la cantidad de filas y el valor que se digite es almacenado en la variable
N, las dos siguientes lneas permiten mostrar un mensaje para indicar que se va a solicitar
la cantidad total de columnas y el valor que se digite se almacenar en la variable M. La
quinta lnea inicia el ciclo para la variable I la cual contar una a una las filas de la matriz,
obsrvese que este ciclo termina en N-1 porque inicia desde 0. Por ejemplo, si se da 3
como valor para la variable N, la variable I tomar los valores 0, 1 y 2. La sexta lnea inicia
el ciclo para la variable J la cual contar una a una las columnas de la matriz, obsrvese
que este ciclo termina en M-1 porque inicia desde 0. Por ejemplo, si se da 4 como valor
para la variable N, la variable I tomar los valores 0, 1, 2 y 3. La sptima lnea permite
ingresar el valor que se va a almacenar en la matriz Notas en la posicin I,J; recordando
que I toma los valores de las filas y J toma los valores de las columnas. La octava lnea
finaliza el ciclo para J y la novena lnea termina el ciclo I. Cuando hay dos ciclos, uno
dentro de otro, el ciclo interno funciona en su totalidad por cada valor del ciclo externo, por
ejemplo, en el caso de este ejemplo cuando I toma valor 0, J toma todos los valores
desde 0 hasta M-1(0, 1, 2, 3), luego I toma valor 1 y J vuelve a tomar los valores 0, 1, 2, 3
y as sucesivamente hasta que J tome el ltimo valor (M-1).

Salida de datos de una matriz
Para mostrar los datos de una matriz es necesario acceder a la matriz y esto se hace,
como ya se ha visto, con el nombre de la variable que la identifica y la posicin de la fila y
la columna deseada. Las siguientes lneas permiten mostrar el contenido de la matriz
Notas.
Para I = 0 hasta N-1 Haga
Para J = 0 hasta M-1 Haga
Esceriba(Notas(I,J), , )
Fin Para J
Fin Para I

Como ejemplo completo se plantea el siguiente: una empresa tiene tres vehculos para el
desplazamiento de sus funcionarios a cumplir con actividades laborales. Se pide hacer un
algoritmo que permita registrar el consumo diario de combustible de cada vehculo y al
final de la semana calcular el consumo de cada vehculo.

Anlisis: se tienen como entradas la cantidad de vehculos (CV), 3 para este caso, los
das hbiles (DH) de la semana 6 (de lunes a sbado) y el consumo diario de cada
vehculo CCS(I,J). La salida que se pide es calcular el total de combustible consumido por
cada vehculo, es decir, la sumatoria del consumo de cada da. El proceso es: pedir el
total de vehculos para que el algoritmo no quede limitado slo a tres vehculos sino que
pueda ser de uso general, almacenar en una matriz de tres filas y seis columnas el
consumo diario de cada vehculo, es decir, cada fila representar un vehculo y cada
columna un da de la semana. Luego se deben sumar todos los datos de la primera fila y
almacenarlos en una nueva columna de la misma matriz y continuar con este proceso
para todos los vehculos. Este caso se puede representar grficamente as:



De acuerdo a este planteamiento, el algoritmo correspondiente es:



Inicio
Variables
CCS: Arreglo(0..9,0..7) Real
CV, DH, I, J : Entero

//Entrada de Datos.
Escriba(Cuntos vehculos tiene la empresa: )
Lea(CV)
Escriba(Cuntos das hbiles tiene la semana: )
Lea(DH)

//Entrada de datos a la matriz CCS.
Para I = 0 hasta CV-1 Haga //Ciclo para controlar los vehculos de la empresa.
Para J = 0 hasta DH-1 Haga //Ciclo para controlar los das hbiles de la semana.
Lea(CCS(I,J)) //Entrada de datos a la matriz en la posicin I,J.
Fin Para J //Finaliza el ciclo de la J
Fin Para I //Finaliza el ciclo de la I

//Clculo del consumo semanal de combustible.

//Inicializacin en cero 0 de la columna donde se va a calcular el total del consumo.
Para I = 0 hasta CV-1 haga // Este ciclo permite inicializar en 0 la celda donde se va
CCS(I,DH) = 0 // a calcular el total de consumo de combustible da cada
Fin Para I // vehculo durante la semana.
//Clculo del consumo
Para I = 0 hasta CV-1 Haga //Ciclo para controlar los vehculos de la empresa.
Para J = 0 hasta DH-1 Haga //Ciclo para controlar los das hbiles de la semana.
CCS(I,DH)=CCS(I,J)+CCS(I,DH) //Esta lnea se explica al final del algoritmo.
Fin Para J //Finaliza el ciclo de la J
Fin Para I //Finaliza el ciclo de la I

//Salida de datos.
Para I = 0 hasta CV-1 haga // Este ciclo permite inicializar en 0 la celda donde se va
Escriba (CCS(I,6)) // Muestra el consumo de la semana del vehculo I
Fin Para I // vehculo durante la semana.
Termine

Explicacin de la lnea CCS(I,CV)=CCS(I,J)+CCS(I,CV): En esta lnea se guarda en la
ltima celda de cada fila (CCS(I,CV)) el acumulado del consumo del vehculo I, por eso se
trabaja con la variable I que representa las filas (vehculos) y con CV que representa la
ltima columna de cada fila.

El diagrama de flujo correspondiente es:








































A continuacin se plantea un taller donde se deben realizar algoritmos con arreglos, todos
los ejercicios deben ser resueltos.




J = 1 Hasta DH-1
Inicio
CV
DH
I = 1 Hasta CV-1
CCS(I,J)
Fin Para J
Fin Para I
I = 1 Hasta CV-1
Fin Para J
CCS(I,DH) = 0
1
1
I = 1 Hasta CV-1
J = 1 Hasta DH-1
Fin Para J
Fin Para I
CCS(I,DH)=CCS(I,J)+CCS(I,DH)
I = 1 Hasta CV-1
Fin Para J
CCS(I,6)
Termine
Taller
1. Dados los datos de un vector numrico de N posiciones, calcular el promedio de
los nmeros del vector.
2. Se tiene un vector de Nombres que almacena N nombres, haga un algoritmo que
permita buscar un nombre e indicar en qu posicin se encuentra el nombre. Suponga
que no se repiten nombres.
3. Se tienen los vectores A, B y C que almacenan cada uno N cantidad de nmeros,
calcular la suma de los tres vectores posicin por posicin. Por ejemplo:
R(I)=A(I)+B(I)+C(I).
4. Se tiene un vector de nmeros que almacena N nmeros, haga un algoritmo que
permita buscar un nmero e indicar cuntas veces aparece el nmero en el vector.
5. Dado un vector de N nombres haga un algoritmo que permita insertar un nuevo
nombre en una posicin dada que no sea al final del vector
6. Dado un vector de N nmeros, buscar el nmero mayor y la posicin que ocupa.
7. Haga un algoritmos para clasificar por el mtodo de la burbuja un vector de N
posiciones.
8. Dados los datos de una matriz numrica, haga un algoritmo que muestre los datos
de la diagonal principal y los datos de la diagonal secundaria.
9. Modifique el algoritmo anterior para sumar los datos de la diagonal principal en una
variable y los de la diagonal secundaria en otra, luego calcular la resta de estas dos
sumatorias y mostrar todos los datos de la matriz y los calculados.
10. En un supermercado se tienen N departamentos, haga un algoritmo que permita
almacenar los datos de cada departamento da a da y calcular en un columna adicional el
promedio de las ventas por cada departamento. Calcular cul fue el departamento de
mayor promedio y el de menor promedio.
11. En un almacn se registran los datos de las ventas realizadas por cada vendedor
en una matriz de tamao N * M donde N corresponde a los das de la semana y M al total
de vendedores, haga un algoritmo que permita calcular el promedio de ventas de cada
vendedor y el promedio de ventas del almacn el cual se calcula promediando los
promedios de los vendedores entre el nmero de vendedores. El algoritmo debe indicar a
cada vendedor si est por encima o por debajo del promedio de las ventas del almacn.
12. Dados los datos de una matriz numrica de tamao N * M, calcular la suma de las
filas, la suma de las columnas y la resta de estas dos sumatorias.
13. Dados los datos de una matriz numrica de tamao N * M haga un algoritmo que
permita hallar la matriz transpuesta.
14. Dada una matriz numrica de tamao N * M, haga un algoritmo que permita hallar
el mayor, el menor y la posicin de cada uno.
15. Consulte cmo funciona el mtodo de clasificacin rpida, implemente el
respectivo algoritmo.

Вам также может понравиться