Está en la página 1de 22

ARREGLOS o ARRAYS

Elaborado por: Ms. Blanca Duarte de Báez


La principal característica de los tipos de datos simple es que
ocupan solo una casilla de memoria, por lo tanto una variable
simple, hace referencia a un solo valor a la vez. Dentro de este grupo
de datos se encuentran: números enteros y reales, caracteres,
booleanos enumerado y subrangos. Cabe señalar que los dos últimos
tipos no existen en todos los lenguajes de programación.
 
Por otra parte los tipos de datos estructurados se caracterizan por
el hecho de que con un nombre, identificador de variable
estructurada, se hace referencia a un grupo de casillas de
memoria. Es decir un tipo de dato estructurado tiene varios
componentes. Cada uno de estos puede ser de un tipo simple o
estructurado. Sim embargo, los componentes básicos, los de nivel
más bajo, de cualquier tipo de datos estructurados, son siempre tipos
de datos simples.

Con frecuencia
Elaborado por: Ms.se presentan
Blanca en la práctica problemas, cuya solución
Duarte de Báez
Ejemplo 1: Soluciones con tipos de datos simples
Un profesor necesita saber cuántos de sus alumnos tienen una
calificación mayor al promedio del grupo, para ello se deben
registrar las calificaciones de 50 alumnos.
Solución con muchas variables
 ‘Declaración e inicialización de variables
cont, calif1…califn, acum_calif entero
prom decimal
‘Ingreso y acumulación de calificaciones
Escribir “Ingrese Calificación:”, calif1

Escribir “Ingrese Calificación:”, califn
acum_calif = calif1 +…+calif50
Si calif1 > prom entonces
cont = cont + 1
fin si
….
Si califn > prom entonces
cont = cont + 1
fin si
Escribir “La cantidad de alumnos es:”, cont Elaborado por: Ms. Blanca Duarte de
Báez
Solución con doble lectura
Paso 1
‘Declaración e inicialización de variables
f, cont, calif, acum_calif entero
prom decimal
acum_calif = 0, calif = 0
‘Ciclo para ingreso y acumulación de calificaciones
desde f = 1 hasta 50
Escribir “Ingrese Calificación:”, calif
acum_calif = acum_calif + calif
fin desde
‘Cálculo de promedio de calificaciones
prom = acum_calif/f
Paso 2
cont = 0
desde f = 1 hasta 50
Escribir “Ingrese Calificación:”, calif
Si calif > prom
cont = cont + 1
Fin si
Fin desde
Escribir “La cantidad de alumnos es:”, cont
Elaborado por: Ms. Blanca Duarte de Báez
Un arreglo (array) es una colección de datos del mismo tipo, que se
almacenan en posiciones consecutivas de memoria y reciben un
nombre común.
Un arreglo es un conjunto finito y ordenado de elementos homogéneos.
Finito: Todo arreglo tiene un límite; es decir, debe determinarse cuál
será el número máximo de elementos que podrán formar parte del
arreglo.

Homogénea: Todos los elementos del arreglo deben ser del mismo tipo.

Ordenada: Se puede determinar cuál es el primer elemento, el


segundo, el tercero,.... y el n-ésimo elemento.

Para referirse a un determinado elemento de un array se deberá utilizar


un índice, que especifique su posición relativa en el array.
Elaborado por: Ms. Blanca Duarte de Báez
 
 

Tipos de arreglos

Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen en:

•Unidimensionales: Son los que tienen una sola dimensión (Vectores)


•Bidimensionales: Son los que tienen dos dimensiones (Tablas o matrices)
•Multidimensionales: Son los que tienen tres o más dimensiones.

Arreglo unidimensional Arreglo bidimensional Arreglo tridimensional

Elaborado por: Ms. Blanca Duarte de Báez


Subíndices(índices)

Subíndices(índices): Para referirse a un determinado elemento de un array se


deberá utilizar un índice, que especifique su posición relativa en el array.,
mencionando el nombre del vector y el índice.
Arreglo unidimensional (vector): Es la estructura natural para modelar listas de elementos
iguales.
Podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos
anteriores o posteriores, esto mediante el uso de un índice parea cada elemento del arreglo que
nos dá su posición relativa.
Se distinguen dos partes fundamentales para un arreglo:
Los componentes
Los índice
Para implementar arreglos unidimensionales, se debe reservar espacio de memoria, y se debe
proporcionar la dirección base del arreglo, el límite inferior y límite superior.
Representación en memoria:
Los arreglos se representan en memoria
Vec(1) Vec(2) Vec(3)deVec(4)
la siguiente
Vec(5)forma:
X: array [1..5]
Elaborado por: Ms. Blanca Duarte de Báez
Operaciones sobre arreglos
Ejemplo
 
aCalificaciones= arreglo [1,50] entero
aCalificaciones = arreglo [50] entero
aCalificaciones = arreglo [] entero
aCalif(1) aCalif (2) aCalif (3) aCalif (4) aCalif (5) …aCalif (n)
aCalif (0) aCalif (1) aCalif (2) aCalif (3) aCalif (4) …aCalif (n)

100 50 90 80 75 62 35 82 44 96 n

Operaciones con arreglos unidimensionales


 
Las operaciones posibles con un arreglo unidimensional son:
 
 Lectura
 Escritura
 Asignación
 Actualización
Elaborado por: Ms. Blanca Duarte de
Báez
Solución para el ejemplo 1, con tipo de datos estructurados, arreglo unidimensional

‘Declaración e inicialización de variables simples y estructuradas


i, cont, acum_calif entero
arreglo_calif = arreglo[50] entero
prom decimal
cont = 0, acum_calif = 0
‘Ciclo para ingreso y acumulación de calificaciones
desde i = 1 hasta 50
Escribir “Ingrese Calificación:”, arreglo_calif[i]
acum_calif = acum_calif + arreglo_calif[i]
fin desde
‘Cálculo de promedio de calificaciones
prom = acum_calif/Longitud(arreglo_calif)

Elaborado por: Ms. Blanca Duarte de Báez


Paso 2

Desde i = 1 hasta 50
Si arreglo_calif[i] > prom
cont = cont + 1
Fin si
fin desde
Escribir “La cantidad de alumnos es:”, cont

Elaborado por: Ms. Blanca Duarte de


Báez
Arreglos bidimensionales
 
Los arreglos bidimensionales se consideran una generalización de los unidimensionales,
por lo que se presentará una revisión rápida de algunas operaciones mencionadas.
 
Son también denominados matrices.

Declaración de arreglos bidimensionales


 
aCalificaciones= Arreglo [1…10, 1..5] de tipo entero
aCalificaciones (1, 1) aCalificaciones (1,2) aCalificaciones (1,3)
aCalificaciones (1,4) aCalificaciones (1,5) … aCalificaciones (m,n)

Figura 2: Matriz m= 10 n=5

Elaborado por: Ms. Blanca Duarte de


Báez
Operaciones con arreglos bidimensionales
Las operaciones posibles con un arreglo unidimensional son:
Lectura
Escritura
Asignación
Actualización
 
Solución para el ejemplo 1, con tipo de datos estructurados, arreglo bidimensional
 
‘Declaración e inicialización de variables simples y estructuradas
i,j, cont tipo entero, arreglo_calif[1…10, 1..5] acum_calif, prom tipo real
i= 1, j= 1, cont = 0, acum_calif = 0
‘Ciclo para ingreso y acumulación de calificaciones
desde i = 1 hasta 25
desde j = 1 hasta 25
Escribir “Ingrese calificación:”, arreglo_calif[i, j]
acum_calif = acum_calif + arreglo_calif[i, j]
fin desde
fin desde
Cálculo de promedio de calificaciones
prom = acum_calif/(i+j)
Elaborado por: Ms. Blanca Duarte de
Báez
Paso 2
desde i = 1 hasta 25
desde j = 1 hasta 25
Si arreglo_calif[i, j] > prom
cont = cont + 1
Fin si
fin desde
fin desde
Escribir “La cantidad de alumnos es:”, cont

Elaborado por: Ms. Blanca Duarte de Báez


Arreglos multidimensionales
 
Un arreglo multidimensional, N dimensiones se define como una colección finita,
homogénea y ordenada de elementos, K1, ….Kn. Para hacer referencia a cada
componente de un arreglo de N dimensiones, se usarán N índices, uno para cada
dimensión.
 
aCalificaciones= Arreglo [1…25, 1..25, LímiteInferior n..LímiteSuperior n] de tipo entero
 
La memoria de un computador no puede almacenar directamente un arreglo
multidimensional, su representación en memoria es lineal, a cada elemente le sigue un
único elemento, mediante un bloque de posiciones sucesivas.
 
Más adelante se describen algunas técnicas utilizadas para el almacenamiento lineal de
arreglos multidimensionales.

Elaborado por: Ms. Blanca Duarte de Báez


Linealización de arreglos bidimensionales
Como la memoria de la computadora es lineal, se debe linealizar un arreglo bidimensional
para su almacenamiento ,y se realiza de dos maneras:
Almacenamiento por renglón: Se almacena en orden consecutivo, cada una de las
filas, la primera fila en primer lugar, luego la segunda, hasta la última.

Almacenamiento por columnas: Se almacena en orden consecutivo, cada una de las


columnas, la primera columna en primer lugar, luego la segunda, hasta la última.

Elaborado por: Ms. Blanca Duarte de Báez


El medio mas natural en que se leen y almacenar los arrays en la mayoría de los
compiladores es el denominado orden por renglón o almacenamiento de fila mayor .

C, BASIC, COBOL, PL/1 y Pascal almacenan los elementos por filas.


FORTRAN emplea el orden por columnas o de columna mayor, en el que las entradas de la
primera columna vienen primero.

De modo general, el compilador del lenguaje de alto nivel debe ser capaz de calcular con
un
índice [i, J] la posición del elemento correspondiente.

Elaborado por: Ms. Blanca Duarte de Báez


Arreglos Triangulares
Triangular: es un arreglo bidimensional cuadrado, donde todos los elementos por encima o
debajo de la diagonal son cero.
Arreglo triangular superior: se caracterizan porque los elementos no nulos están por encima de
la diagonal principal, inclusive en la diagonal principal.

Arreglo triangular inferior: se caracterizan porque los elementos no nulos están abajo de la
diagonal principal, inclusive en la diagonal principal.

  
Elaborado por: Ms. Blanca Duarte de Báez
Arreglos dispersos: Son arreglos en los que existen gran cantidad de ceros, alrededor del
90%.
Linealización
Como no es deseable almacenar un arreglo con gran cantidad de ceros, una alternativa es
almacenar los elementos no nulos en vectores o estructurar como listas ligadas.
Representación vectorial: Para evitar el desperdicio de memoria que se ocasionaría al
almacenar una matriz en donde la mayoría de los elementos son ceros, es conveniente
traspasar a un arreglo unidimensional todos los elementos diferentes a cero.

Elaborado por: Ms. Blanca Duarte de Báez


Representación en lista ligada: cada nodo contienen una indicación del renglón y
columna en el cual aparece la entrada diferente de cero, el valor de la entrada y dos
apuntadores. Un apuntador es hacía el siguiente nodo en el mismo renglón y el otro es
para el siguiente nodo en la misma columna.

Elaborado por: Ms. Blanca Duarte de Báez


Espacio compartido: Otra alternativa para ahorrar espacio, es almacenar dos arreglos de
la misma dimensión, uno inferior y otro superior, pueden compartir el espacio reservad o
para uno de ellos.

Elaborado por: Ms. Blanca Duarte de Báez


LA CLASE ARREGLO

Para entender la clase arreglo, primero se requiere conocer algunos conceptos básicos
relacionados con el paradigma de la programación orientada a objetos (POO).
Una clase define a un objeto por medio de la descripción de sus datos, conocidos como
atributos y de su comportamiento representado por métodos. Los atributos y los
métodos son los miembros de la clase.

La programación orientada por objetos tiene cuatro propiedades:

Abstracción: permite concentrarse en los datos y operaciones de un objeto, sin


preocuparse del comportamiento interno del mismo.

Encapsulamiento: implica que tanto los atributos, cómo métodos forman parte de un
todo, la clase, y pueden ocultarse de los clientes de la clase, controlando de esta manera
el acceso a los integrantes.

Herencia: representa la propiedad que permite compartir atributos y métodos entre


clases.

Polimorfismo: ofrece la facilidad de que ciertos métodos pueden adoptar distintas


formas.
Elaborado por: Ms. Blanca Duarte de Báez
Elaborado por: Ms. Blanca Duarte de Báez

También podría gustarte