100% encontró este documento útil (1 voto)
387 vistas35 páginas

Estructura de Datos Array

Este documento introduce los conceptos básicos de las estructuras de datos, específicamente arrays o vectores unidimensionales. Explica que un vector es un conjunto ordenado de elementos homogéneos que pueden ser accedidos mediante subíndices. Describe cómo los vectores se almacenan en memoria de forma contigua y cómo cada elemento puede ser tratado como una variable individual. También presenta algunas operaciones básicas como asignación y suma de elementos vectoriales.

Cargado por

arturorexz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
387 vistas35 páginas

Estructura de Datos Array

Este documento introduce los conceptos básicos de las estructuras de datos, específicamente arrays o vectores unidimensionales. Explica que un vector es un conjunto ordenado de elementos homogéneos que pueden ser accedidos mediante subíndices. Describe cómo los vectores se almacenan en memoria de forma contigua y cómo cada elemento puede ser tratado como una variable individual. También presenta algunas operaciones básicas como asignación y suma de elementos vectoriales.

Cargado por

arturorexz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 35

7

ESTRUCTUR AS DE DATOS 1:
(arrays y estructuras} 1

CONTENIDO
7.1.
7.2.
7.3.
7.4.

Introduccin a las estructuras de datos.


Arrays unidimensionales: los vectores.
Operaciones con vectores.
Arrays de varias dimensiones.

7.5. Arrays multidimensionales.


7.6. Almacenamiento de arrays en memoria.
7.7. Estructuras versus registros.

7.8. Arrays de estructuras.


ACTIVIDADES DE PROGRAMACIN RE
SUELTAS.
REVISIN DEL CAPTULO.
Conceptos clave.
Resumen.
EJERCICIOS.

En los captulos anteriores se ha introducido el concepto de datos de tipo simple que representan
valores de tipo simple, como un nmero entero, real o un carcter. En muchas situaciones se ne

cesita, sin embargo, procesar una coleccin de valores que estn relacionados entre s por
algn mtodo, por ejemplo, una lista de calif icaciones, una serie de temperaturas med idas a lo
largo de un mes, etc. El procesamiento de tales conjuntos de datos, utilizando datos simples,
puede ser ex tremadamente dif cil y por ello la mayora de los lenguajes de programacin
incluyen caracters ticas de estructuras de datos. Las estructuras de datos bsicas que soportan
la mayora de Jos lenguajes de programacin son los arrayS -concepto matemtico de
vector y matri z-.
Un array o arreglo en Latinoamrica es una secuencia de posiciones de la memoria central a
las que se puede acceder d irectamente, que contiene datos del mismo tipo y pueden ser seleccio
nados individualmente mediante el uso de subnd ices. Este captulo estudia el concepto de arrays
unidimensionales y multidimensionales, as como el procesamiento de los mismos.

1
El trmino "array se conserva en ingls por su amplia aceptacin en la comunidad de ingeniera informtica y de siste
mas. Sin embargo, es preciso constat:ir que en prcticamente toda Latinoamrica (al menos en muchos de los numerosos pa
ses que conocemos y con los que lenemos relaciones acadmicas y personales) el trmino empleado como traduccin es arre
glo. El DRAE (ltima edicin, 22.', Madrid 21 J no considera ninguno de los dos trminos como vlidos, aunque la acepcin 2
de la definicin de arreglo pudiera ser ilustraci\'a del por qu de la adopcin del !rmino por la comunidad latinoamericana:
"Regla, orden, coordinacin.

247

248

Fundamentos de programacin

7.1. INTRODUCCIN A LAS ESTRUCTURAS DE DATOS


Una estructura de datos es una coleccin de datos que pueden ser caracterizados por su organizacin
y las operaciones que se definen en ella.
Las estructuras de datos son muy importantes en los sistemas de computadora. Los tipos de datos
m_s frecuentes utilizados en los diferentes lenguajes de programacin son:

datos simples

estndar

entero (integer)
real ( real)
carcter (char)

lgico (boolean)
definido por el
programador ( no estndar)
datos estructurados

estticos

subrango (subrange)
enumerativo (enumerated )
arrays (vectores/matrices)

registros (record)
ficheros (archivos)
conjuntos (set)
cadenas (string )
dinnlicos

listas (pilas/colas)
listas enlazadas

rboles
grafos

Los tipos de datos simples o primitivos significan que no estn compuestos de otras estructuras de
datos; los ms frecuentes y utilizados por casi todos los lenguajes son: enteros, reales y carcter (char},
siendo los tipos lgicos, subrango y enumerativos propios de lenguajes estructurados como Pascal. Los
tipos de datos compuestos estn construidos basados en tipos de datos primitivos; el ejemplo ms re
presentativo es la cadena (string ) de caracteres.
Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estticas
y dinmicas. Las estructuras de datos estticas son aquellas en las que el tamao ocupado en
memo ria se detine antes de que el programa se ejecute y no puede modificarse dicho tamao
durante la eje cucin del programa. Estas estructuras estn implementadas en casi todos los
lenguajes: array (vec tores/tablas-matrices). registros,ficheros o archivos (los conjuntos son
especficos del lenguaje Pascal). Las estructuras de datos dinmicas no tienen las limitaciones o
restricciones en el tamao de me moria ocupada que son propias de las estructuras estticas.
Mediante el uso de un tipo de datos espe cfico. denominado puntero, es posible construir
estructuras de datos dinmicas que son soportadas por la mayora de los lepguajes ofrecen
soluciones eficaces y efectivas en la solucin de problen1as con1- plejos -Pascal es el lenguaje
tipo por excelencia con posibilidad de estructuras de datos dinmicos-. Las estructuras dinmicas
por excelencia son las listas --enlazadas, pilas, colas-, rboles -binarios, rbol-b, bsqueda binaria
y grafos.
La eleccin del tipo de estructura de datos idnea a cada aplicacin depender esencialmente del
tipo de aplicacin y. en menor medida. del lenguaje. ya que en aquellos en que no est implementada
una estructura -por ejemplo, las listas y rboles no los soporta COBOL- deber ser simulada con
el algoritmo adecuado, dependiendo del propio algoritmo y de las caractersticas del lenguaje su fcil
o difcil solucin.
Una caracterstica importante que diferencia a los tipos de datos es la siguiente: los tipos de datos
simples tienen como caracterstica comn que cada variable representa a un elemento: los tipos de da
tos estructurados tienen como caracterstica comn que un identificador (nombre) puede representar

mltiples datos individuales, pudiendo cada uno de stos ser referenciado independientemente.

Estructuras de datos /: (arrays y estructuras)

7.2. ARRAYS UNIDIMENSIONALES:LOS VECTORES

249

'""'

Un array (matriz o vector) es un conjunto finito y ordenado de elementos homogneos. La propiedad


ordenado significa que el elemento primero, segundo, tercero, ..., ensimo de un array puede
ser identificado. Los elementos de un array son homogneos, es decir, del mismo tipo de datos.
Un array puede estar compuesto de todos sus elementos de tipo cadena, otro puede tener todos sus
elementos de tipo entero, etc. Los arrays se conocen tambin Como matrices -en matemticas- y
tablas -en clculos financieros-.
El tipo ms simple de array es el array unidimensional o vector (matriz de una dimensin). Un
vector de una dimensin denominado NOTAS que consta de n elementos se puede representar por la
Figura 7.1.

NOTAS ( I )

NOTAS ( 2 )

NOTAS ( l )

Figura 7.1. Vector.

NOTAS ( N )

1 i

El subndice o ndice de un elemento (1, 2, ..., i, n) designa su posicin en la ordenacin del vec
tor. Otras posibles notaciones del vector son:
en matemticas y algunos lenguajes (VB 6.0 y VB.Net)
A(l ) , A(2)
,

..
.'

A[l ] , A[2]
,

A{i )
,
A[i ]
,

...'

A(n)

A[n]

en programacin ( Pascal y C)

Obsrvese que slo el vector global tiene nombre ( NOTAS ) . Los elementos del vector se refe
rencian por su subndice o ndice ( subscript), es decir, su posicin relativa en el valor.
En algunos libros y tratados de programacin, adems de las notaciones anteriores, se suele utili
zar esta otra:
A ( L :U } "' ( A ( I ) }
para I L, L+l,

. . . , U-1, U

donde cada elemento A( / ) es de lipo de datos T _ _

que significa: A, vector unidimensional con elementos de datos tipo T, cuyos subndices varan en
el rango de L a U, lo cual significa que el ndice no tiene por qu comenzar necesariamente en O o
en l.
Como ejemplo de un vector o array unidimensional, se puede considerar el vector TEMPERATU
RA que contiene las temperaturas horarias registradas en una ciudad durante las veinticuatro horas del
da. Este vector constar de veinticuatro elementos de tipo real, ya que las temperaturas normalmente
no sern enteras siempre.
El valor mni mo pennitido de un vector se denomina lmite inferior del vector (L) y el valor m
ximo pennitido se denomina lmite superior (U). En el ejemplo del vector TEMPERATURAS el lmite
inferior es 1y el superior 2 4.
y.:;,,TEMPERATURAS ( I )

donde 1 <= 1<= 24

El nmero de elementos de un vector se denomina rango del vector. El rango del vector A ( L :U
) es U-L+l. El rango del vector B ( :n) es n.
Los vectores, como ya se ha comentado. pueden contener datos no numricos, es decir, tipo ca
rcter>>. Por ejemplo, un vector que representa las frutas que se venden en un supermercado:

250

Fundamentos de programacin

FRUTAS(l
) FRUTAS
(2)

\ .S.\

uvas
manzanas

papayas
FRUTAS(I)

.
.

.
.

melocotones
FRUTAS ( N)

--

_j

Otro ejemplo de un vector pueden ser los nombres de los alumnos de una clase. El vector se de
nomina ALUMNOS y tiene treinta elementos de rango.
ALUMNOS

Luis Francisco

Jose

Victoria

Martn

30

Graciela

Los vectores se almacenan en memoria central de la computadora en un orden adyacente. As, un


vector de cincuenta nmeros denominado NUMEROS se representa grficamente por cincuenta posi
ciones de 1nemoria sucesivas.
Memoria

NUMEROSll]

Direccin X

NUMEROS[2]

Direccin X+l

NUMEROS[3]

Direccin X+2

NUMEROS [ 50 ]

Direccin X+49

Estructuras de datos /: (arrays y estructuras)

251

Cada elemento de un vector se puede procesar como si fuese una variable simple al ocupar una
posicin de memoria. As,
NUMEROS [ 2 5 ]

f-

72

almacena el valor entero o real 72 en la posicin 25. del vector NUMEROS y la instruccin de salida
'( OIUO:J ,101

escribir ( NUMEROS [ 2 5 ] )

visualiza el valor almacenado en la posicin 25., en este caso 72.


Esta propiedad significa que cada elemento de un vector -y posteriormente una tabla o
matriz es accesible directamente y es una de las ventajas ms importantes de usar un vector:

almacenar un conjunto de datos.


Consideremos un vector X de ocho elementos
X[l ]

X[2]

X[3)

X[4]

X[5]

X[6]

X[7]

X[8)

14 . 0

12 . 0

8.0

7.0

6 . 41

5.23

6 .15

7 .25

Elemen10
l.

Elemento

Elemento

2.

8.

Algunas instrucciones que manipulan este vector se representan en la Tabla 7.1.


Tabla 7.1. Operaciones bsicas con vectores.

Acciones

Resultados

escribir ( X [1] l

X [ 4 ) f- 4 5
SUMA f- X [ l ] + X [
3 ] SUMA f- SUMA+
X [ 4 ] X [ 5 ] f- x [ 5
]+3,5
X [ 6 ] f- X [ l ] + X [
2]

'

Visualiza el valor de X [ 1] o 14 . O.
Almacena el valor 45 en X [ 4 ] .
Almacena la suma de X [ 1] y x [ 3 ] o bien 22.0 en la variable
SUMA. Aade en la variable SUMA el valor de X [ 4 J , es decir.
SUMA = 67 . O. Suma 3 .5 a X [ 5 ) ; el nuevo valor de X [ 5 ] ser 9
.91.
Almacena la suma de X [ 1] y X [ 2 ] en X [ 6 ] ; el nuevo valor de X [ 6 ] ser 2 6 . 5.

Antes de pasar a tratar las diversas operaciones que se pueden efectuar con vectores, considere
mos la notacin de los diferentes elementos.
"
Supongamos un vector V de ocho elementos.
V[l ]

V[2]

V[3]

12

-7

V[4]
14 . 5

V[5]

V[6]

V[7]

V[Sl

20

l.5

2.5

-10

Los subndices de un vector pueden ser enteros, variables o expresiones enteras. As. por ejem
plo, si
I +3J
I <- 4
V [ I+ l )
V[I +2
] V [ I
-2 ] V [

represenia el elemento :( 5 ) de valor 2


O represenla el elemento 'J ( 6 ) de valor
1. 5 representa el elemento \' ( 2 ) de
valor 5 representa el elemento :\ ) de

valor 2 . 5

.1')1'.lil1

. ' . t

'

252

Fundamentos de programacin

Los arrays unidimensionales, al igual que posteriormente se vern los arrays


multidimensionales, necesitan ser dimensionados previamente a su uso dentro de un programa.
J- ....,.J "-'1

7.3. OPERACIONES CON VECTORES


Un vector, como ya se ha mencionado, es una secuencia ordenada de elementos como
X [l ) , X[2) ,

. . . , X [n]

"'

El lmite inferior no tiene por qu empezar en uno. El vector L


L(O] , L [l ] , L [2] , L [3] , L [4) , L [S]

contiene seis elementos, en el que el primer elemento comienza en cero. El vector P, cuyo rango es 7
y sus lmites inferior y superior son -3 y 3, es
[[ )X

P [ -3 ) ,
3]

P [ -2 ] , P [ -1) ,

P[O] , P[l ] ,

P[2] ,

-1

P[

Las operaciones que se pueden realizar con vectores durante el proceso de resolucin de un pro
blema son:

asignacin,
lectura/escritura,
recorrido (acceso secuencial),
actualizar (aadir, borrar, insertar),
orde11ll cin,
bsqueda.

)'..IUltni i.'BnugIA

En general, las operaciones con vectores implican el procesamiento o tratamiento de los elemen
tos individuales del vector.
Las notaciones algortmicas que utilizaremos en este libro son:
tipo

array [ l iminf

nombre_array
l imi nf . .l
imsup t ipo

. . l imsup } de t ipo

nombre_array

nombre vlido del array


lmites inferior y superior del rango del array
tipo de datos de los elementos del array: entero, real, carcter

tipo

array [ l . . 10 ) de car ct

er

NOMBRES

var
NOMBRES : N

significa que NOMBRES es un array (vector) unidimensional de diez elementos (1 a 10) de tipo ca
rcter.
tipo

array [ ' A ' . . ' Z ' J de

real

var
LISTA : L

LISTA

Estructuras de

representa un vector cuyos subndices son A, B,

datos /: (arrays y estructuras)

253

;.e.\'

y cuyos elementos son de tipo real.

t ipo
array[0 ..100] de entero : NUMERO
var

NUMERO: NU

NUMERO es un vector cuyos subndices van de O a 100 y de tipo entero.


Las operaciones que analizaremos en esta seccin sern: asignacin, lectura/escritura, recorrido
y actualizacin, dejando por su especial relevancia como tema exclusivo de un captulo la ordenacin
o clasificacin y bsqueda.

7.3.1. Asignacin
La asignacin de valores a un elemento del vector se realizar con la instruccin de asignacin:
A[29]

asigna el valor 5 al elemento 20 del vector A

f-

Si se desea asignar valores a todos los elementos de un vector, se debe recurrir a estructuras
repe titivas (desde, mient ras o repetir) e incluso selectivas (si-entonces, segun).
leer ( A [ i ] J

01ne1m1osoo
>'"\

Si se introducen los valores 5, 7, 8, 14 y 12 mediante

OOl.1..i:'l'.O'Q! S

asignaciones

oql'.1
' 'lJS'l'.:ta

A [l ]

uv

f-

,JAV!l 'i

A [ 2 ] f- 7
A [ 3 ] f- 8

A[4]

o.t olo:l:
b

14

f-

A [ 5 ] f- 12

'

El ejemplo anterior ha asignado diferentes valores a cada elemento del vector A; si se desea dar el
mismo valor a todos los elementos, la notacin algortmica se simplifica con el formato.
desde i
A[i ]

f-

= 1 hasta 5 hacer
8

fin_desde
donde A[i] tomar los valores numricos
A [ l ] = 8 , A [ 2 ] = 8 , . . ., A [ 5 ] 8

Se puede utilizar tambin la notacin


A

e-

para indicar la asignacin de un mismo valor a cada elemento de un vector A. Esta notacin se consi
derar con mucho cuidado para evitar confusin con posibles variables simples numricas de igual
nombre (A).

254

Fundamentos de programacin

7.3.2. Lectura/escritura de datos


La lectura/escritura de datos en arrays u operaciones de entrada/salida normalmente se realizan con
estructuras repetitivas, aunque puede tambin hacerse con estructuras selectivas. Las instrucciones sim
ples de lectura/escritura se representarn como
leer el elemento V[5] del vector V

leer ( V [ S J )

' ]Vi

7.3.3. Acceso secuencial al vector


(recorrido)

\) y

Se puede acceder a los elementos de un vector para introducir datos ( escribir) en l o bien para vi
sualizar su contenido ( leer). A la operacin de efectuar una accin general sobre todos los elementos
de un vector se la denomina recorrido del vector. Estas operaciones se realizan utilizando estructuras
repetitivas, cuyas variables de control (por ejemplo, I) se utilizan como subndices del vector (por
ejemplo, S [ I ] ). El incremento del contador del bucle producir el tratamiento sucesivo de los ele
mentos del vector.

Ejemplo 7.1
Lectura de veinte valores enteros de un vector denominado F.
Procedimiento 1
algoritmo leer_vect
or tipo
array [ l . . 2 0 ] de enter
o

FINAL

- r1, .

var

FINAL

;Icci:J,: f.t: A' elt n11:

inicio
desde i f- 1 hasta 2 0 hacer
leer ( F [ i J
) f in_desde

-t

r ,- .< ,,,

fin

La lectura de veinte valores sucesivos desde el teclado rellenar de valores el vector F,


comenzando con el elemento F [ l ] y terminando en F [ 2 O ] . Si se cambian los lmites inferior y
superior (por ejem plo, 5 y 10), el bucle de lectura sera
desde i f- 5 hasta 1O hacer
leer ( F [ i J )
f in_desde

.filllo1 [ijA boob

Procedimiento 2

'JA

Los elementos del vector se pueden leer tambin con bucles mientras o repetir,
i

mi'"e""ntras
<

'

leer ( F [ i ] }

'"""

i +1

20 hacer

'"""

rep t ir

o bien

.1.Gq '
hasta_que

i > 20

Estructuras de datos /: (arrays y estltJcturas)

La salida o escritura de vectores se representa de un modo similar. La estructura


desde i +-- 1 hasta i +-- 20 hacer
escribir(F[i] J
fin_desde

255

t:N\oa.
'.!:";';

visualiza todo el vector completo (un elemento en cada lnea independiente).

Ejemplo 7.2
Este ejemplo procesa un array PUNTOS,realizando las siguientes operaciones; a) lectura del array,
b) clculo de la suma de los valores del array, e) clculo de la media de los valores.
El array lo denominaremos PUNTOS; el lmite superior del rango lo introduciremos por teclado y
el lmite inferior lo consideraremos 1.
algoritmo media_puntos
const
LIMITE = 40
tipo
array[l ..LIMITE) de
real

PUNTUACION

var

PUNTUACION : PUNTOS
real : suma, media
entero : i
inicio
suma f- O
escribir ('Datos del array' )
desde i +-- 1 hasta LIMITE hacer
leer (PUNTOS[i] )
suma +-- suma+PUNTOS[i]
fin_desde
media +-- suma/LIMITE
escribir ('La media es' , media}
fin

'l'.1!.'; ' .; '

Se podra ampliar el eje1nplo, en el sentido de visualizar los elementos del arra;'.cuyo valor es su
perior a la media. Mediante una estructura desde se podra realizar la operacin, aadindole al al
goritmo anterior.
escribir(' Elementos del array superior a la media')
desde i +-- 1 hasta LIMITE hacer
si PUNTOS[i] > media entonces
escribir{PUNTOS(i])
fin_si
fin_desde

Ejemplo 7.3
Cal cular ta med ia de las estaturas de una clase. Deducir cuntos son ms altos que Ja media y cun
tos son ms bajos que dicha media.

11

256

Fundamentos de programacin

Soluci
n

..1.J

Tabla de
variables
n
H[

] ...H [ n]

i
MEDIA
ALTOS
BAJOS
SUMA

nmero de estudiantes de la clase


estatura de los n alumnos
contador de alumnos
media de estaturas
alumnos de estatura mayor que la media
alumnos de estatura menor que la media
totaliz.ador de estaturas

inicio

leer n

entera
real
entera
real
entera
entera
real

:: '

/
si

i=
i fj + 1
MEDIA
+--- SUMNn
n
BAJOS +--- O
ALTOS +--- O
e_el
1 <-

L/

_,_H

m'- /

tll-

O".l83l1S

of o.l: nl

,.
b

SUMA +--SUMA+H{ij

BAJOS r+--BAJOS + 1

_s;ei_

= <i media??
'" n -< n
i ifH[i]
0
r---+n?
H(i]
1 > MEDIA
_>----""---:i.
o
o
si
f +- ALTOS +1
escribir
ALTOS

n,
no
MEDIA
BAJOS, ALTOS
(

fin

e
m
d

clculo

'19(3

__

...

Estructuras de datos /: (arrays y estructuras)

257

7.3.4. Actualizacin de un vector


La operacin de actualizar un vector puede constar a su vez de tres operaciones elementales:
aadir
inserta
r
borrar

elementos
elementos
elementos

Se denomina aadir datos a un vector la operacin de aadir un nuevo elemento al final del vec
tor. La nica condicin necesaria para esta operacin consistir en la comprobacin de espacio de me
moria suficiente para el nuevo vector; dicho de otro modo, que el vector no contenga todos los ele
mentos con que fue definido al principio del programa.

Ejemplo 7.4
Un array TOTAL se ha dimensionado a seis elementos, pero slo se le han asignado cuatro valo
res a los elementos TOTAL[l], TOTAL[2], TOTAL[3] y TOTAL[4]. Se podrn aadir dos elemen
tos ms con una simple accin de asignacin.
TOTAL [ 5 ]
TOTAL [ 6 ]

ff-

14
12

La operacin de insertar un elemento consiste en introducir dicho elemento en el interior del vec
tor. En este caso se necesita un desplazamiento previo hacia abajo para colocar el elemento nuevo en
su posicin relativa.

Ejemplo 7.5
Se tiene un array COCHES2 de nueve elementos de contiene siete marcas de automviles en or
den alfabtico y se desea insertar dos nuevas marcas: OPEL y CITROEN.

Como Opel est comprendido entre Lanc ia y Renaul t, se debern desplazar hacia abajo
los elementos 5 y 6, que pasarn a ocupar la posicin relativa 6 y 7. Posteriormente debe
realizarse la ope racin con C it ron, que ocupar la posicin 2.
El algoritmo que realiza esta operacin para un vector de n elementos es el siguiente, suponiendo
que haya espacio suficiente en el vector.
1. //Calcular la posicin ocupada por el elemento a insertar (por ejemplo, P)
2. //Inicializar contador de inserciones i f- n
3. mientras i >= P hacer
//transferir el elemento actual i-simo hacia abajo, a la posicin
i+l COCHES[i+l] f- COCHES[i]
//decrementar contador

4.
5.
6.
7.

f-

i-1

fin_mientras
//insertar el elemento en la posicin
P COCHES[P] f- 'nuevo elemento'
//actualizar el contador de elementos del vector
n f- n+l
fin

2 En Latinoamrica, su trmino equivalente es CARRO o AUTO.

258

Fundamentos de
programacin

In sert ar
OPEL
b)

a) COCHES
1 Alfa

Romeo
2

Fiat

1 Alfa

1 Alfa Romeo

Romeo

Citron

3
4

Fiat
Ford

Opel

Ford

Ford

Lancia

Lancia

Seat
6

.J

Eenault

Opel

Lancia

seat

Renault

Seat

Renault

.A ....C.

Fiat

e) Insert ar
CITROEN

"

S se deseara realzar ms insercones, haba que ncluir una estructura de decsn si-enton
ces para preguntar si se van a realizar ms inserciones.
La operacin de borrar un elemento al final del vector no presenta ningn problema; el borrado de
un elemento del interior del vector provoca el movimiento hacia arriba de los elementos inferiores a
l para reorganizar el vector.

El algoritmo de borrado del elemento j-simo del vector COCH ES es el


siguiente:
algoritmo borrado

inicio
//se utilizar
variable auxiliar -AUX- que contendr el
una
valor se desea borrar
//del elemento
que AUX fCOCHES[j]
desde i f- j hasta N-1 hacer
//llevar elemento j+l haci a arriba
COCHES[i] f- COCHES[i +l]

fin_desde
//actualizar contador de elementos
//ahora tendr un elemento menos, N-1
N

f-

N-1

fin

7.4. ARRAYS DE VARIAS DIMENSIONES


Los vectores examinados hasta ahora se denominan arrays unidimensionales y en ellos cada elemen
to se define o referencia por un ndice o subndice. Estos vectores son elementos de datos escri tos en
una secuencia. Sin embargo, existen grupos de datos que son representados mejor en fonna de tabla
o matriz con dos o ms subndices. Ejemplos tpicos de tablas o matrices son: tablas de distancias ki
lomtricas entre ciudades, cuadros horarios de trenes o aviones, infonnes de ventas peridicas

(mes/unidades vendidas o bien mes/ventas totales), etc. Se pueden definir tablas o matrices como
arrays multidimensionales, cuyos elementos se pueden referenciar por dos, tres o ms subndices. Los
arrays no unidimensionales los dividiremos en dos grandes grupos:
arrays bidimensionales
arrays
multidimensionales

(2 dimensiones)
(3 o ms dimensiones)

Estructuras da datos /: (arrays y estructuras)

7.4.1.

259

Arrays bidimensionales (tablas/matrices)


El array bidimensional se puede considerar como un vector de vectores. Es, por consiguiente, un con
junto de elementos, todos del mismo tipo, en el cual el orden de los componentes es significativo y en
el que se necesita especificar dos subndices para poder identificar cada elemento del array.
Si se visualiza un array unidimensional, se puede considerar como una columna de datos; un array
bidimensional es un grupo de columnas, como se ilustra en la Figura 7.3.
El diagrama representa una tabla o matriz de treinta elementos (5 x 6) con 5 filas y 6 columnas.
Como en un vector de treinta elementos, cada uno de ellos tiene el mismo nombre. Sin embargo, un
subndice no es suficiente para especificar un elemento de un array bidimensional; por ejemplo, si el
nombre del array es M, no se puede indicar M [ 3 1 , ya que no sabemos si es el tercer elemento de
la primera fila o de la primera columna. Para evitar la ambigedad, los elementos de un array
bidimen sional se referencian con dos subndices: el primer subndice se refiere a lafila y el segundo
subndi ce se refiere a la columna. Por consiguiente, M [ 2 , 3 J se refiere al elemento de la segunda
fila, ter cera columna. En nuestra tabla ejemplo M [ 2 , 3 ] contiene el valor 18.
Fila 1
Fila 2

l b

Fila 3
Fila 4
Fila s

i
1
ri

olumna 6
Columna 5

""'

Columna 4
Columna 3
Columna 2
Columna 1

Figura 7.3. Array bidimensional.

Un array bidimensional M, tambin denominado n1atriz (tnninos matemticos) o tabla (tnninos


financieros), se considera que tiene dos dimensiones (una dimensin por cada subndice) y
necesita un valor para cada subndice para poder identificar un elemento individual. En notacin
estndar, nor malmente el primer subndice se refiere a la tila del array, mientras que el segundo
subndice se re fiere a la columna del array. Es decir, B [ I , J] es el elemento de B que ocupa la /
fila y la J co lumna, como se indica en la Figura 7.4.
1

...

B[I ,J ]

'
M

...

Figura 7.4. Elemento B [ ,

J del array s.

260

Fundamentos de programacin

El elemento B [ I , J J tambin se puede representar por B I , J. Ms formalmente en notacin


al gortmica, el array B con elementos del tipo T (numricos, alfanumricos, etc.) con subndices fila
que varan en el rango de 1a M y subndices columna en el rango de 1a N es
B ( l :M , l :N ) = {B [ I , J ] }

donde

I = l, .. . , M
J = 1, . . . , N
cada elemento B [ I , J 1 es de tipo T.

o bien

1 < = I < o:o


lM<= J < oo N

El array B se dice que tiene M por N elementos. Existen N elementos en cada fila y M elementos
en cada columna ( M*N) .
Los arrays de dos dimensiones son muy frecuentes: las calificaciones de los estudiantes de una
clase se almacenan en una tabla NOTAS de dimensiones NOTAS [ 2 O , 5 ] , donde 20 es el n1nero
de alumnos y 5 el nmero de asignaturas. El valor del subndice I debe estar entre 1 y 20, y el de J
en tre 1 y 5. Los subndices pueden ser variables o expresiones numricas, NOTAS (M, 4 ) y en ellos
el subndice fila ir de 1a M y el de columnas de 1a N.
En general, se considera que un array bidimensional comienza sus subndices en O o en 1 (segn
el lenguaje de progra1nacin, O en el lenguaje C, 1 en FORTRAN), pero pueden tener lmites selec
cionados por el usuario durante la codificacin del algoritmo. En general, el array bidimensional B
con su primer subndice, variando desde un lmite inferior L (inferior, lotv) a un lmite superior U (su
perior, up). En notacin algortmica

,,

B ( Ll :Ul , L2 :U2 ) = ( B [ I , J] }

donde

','

Ll < = I < =
Ul L2 <= J <=
U2

cada eletnento B [ I ,

J]

es del tipo T.

El nmero de elementos de una fila de B es U2 -L2 +1 y el nmero de elementos en una


columna de B es Ul-11+1. Por consiguiente, el nmero total de elementos del
array B es
{U2 -L2 + l ) * {Ul-Ll+ l ) .

Ejemplo 7.6
La matriz T representa una tabla de notaciones de saltos de altura (primer salto), donde las f ilas
representan el nombre del atleta y las columnas las dif erentes alturas saltadas por el atleta. Los
smbolos almacenados en la tabla son: x, salto vlido; O, salto nulo o no intentado.

2.00

2.10

2.20

2.30

2.35

2.40

Garca

Prez

Gil

Mortirner

o
o

o
o

o
o
X

o
o

[.- ''. , ,

Estructuras de datos 1: (am1ys y estructuras)

261

'
Ejemplo 7.7

Un ejemplo tpico de un array bidimensional es un tablero de ajedrez. Se puede representar cada


posicin o casilla del tablero mediante un array, en el que cada elemento es una casi lla y en el
que su valor ser un cdigo representativo de cada f igura del juego.
.)

i:

- .t.
.t.

i:
.t. .t.
.t.

- , : .:..e::

.t.

, J. U :IJ ) A
' f!Jj ''(

.fl. iw

. 'lll 8
.fl.

.t.

d
8

l:t ll

"( I +.,J-,:J ) D

Figura 7.5. Array tpico, tablero de


ajedrez.

Los diferentes elementos sern


elemento [ i , j 1 " o
el emen to [ i , j 1 "
1 el emen to [ i , j 1
ement o [ i , j
"1 2 el
3
e l emen t o [ i , j 1 4
element o [ i , j 1 5
element o [ i ,
j 1
6

l +..1- -U )

si no hay nada en la casilla [ i, j }


si el cuadro (casilla) contiene un pen blanco
un caballo blanco
un alfil blanco
una torre blanca
una reina blanca
un rey blanco

, )i ) A

y los correspondientes nmeros, negativos para las piezas negras.

Ejemplo 7.8

Supongamos se dispone de un mapa de f errocarriles y los nombres de las estaciones (ciudades)


estn en un vector denominado 'ciudad'. El array f puede tener los siguientes valores:
f [i , j) =
1
f [i , j] =
O

si existe enlace entre las ciudades iy j, e udad [ i ] y e udad [ j )


no existe enlace

NOTA
El array f resume la inf ormacin de la estructura de la red de enlaces.

.)

262

Fundamentos de programacin

7.5. ARRAYS MULTIDIMENSIONALES


Un array puede ser definido de tres dimensiones, cuatro dimensiones, hasta de ndimensiones. Los
con ceptos de rango de subndices y nmero de elementos se pueden ampliar directamente desde
arrays de una y dos dimensiones a estos arrays de orden ms alto. En general, un array de odimensiones re quiere que los valores de los n subndices puedan ser especificados a fin de identificar
un elemento in dividual del array. Si cada componente de un array tiene n subndices, el array se
dice que es slo de n-dimensiones. El array A de o-dimensiones se puede identificar como
A { Ll:Ul, L2 :U2 , . . . Ln:Un)

y un elemento individual del array se puede especificar por

,("! (' .

donde cada subndice lk est dentro de los lmites adecuados


L, <=

r,

<=

uk

donde k = l , 2 ,

..., n

El nmero total de elementos de un array A es

n(smbolo del producto)


que se puede escribir alternativamente como
( U1-L1+l}

( U,-L;+l)

* ...*

( UN-LN+l )

Si los lmites inferiores comenzasen en 1, el array se representarla por


o bien
Ak1. k2 ,
, .n
donde
1 <= K 1 <= S 1
1 <= K2 <= S2

Ejemplo 7.9

Un array de tres d imensiones puede ser uno que contenga los datos relativos al nmerO
diantes de la universidad ALFA de acuerdo a los siguientes criterios:

d;estu

cursos (primero a quinto),


sexo (varn/hembra),
diez f acultades.
El array ALFA puede ser de dimensiones 5 por 2 por 10 (alternativamente 10 x 5 x 2 o 10 x 2 X 5,
2 x 5 x 10, etc.). La Figura 7.6 representa el array ALFA.
El valor de elemento ALFA [ I , J , K ] es el nmero de estudiantes del curso I de sexo J de la
fa cultad K. Para ser vlido I debe ser I, 2. 3. 4 o 5; J debe ser 1 o 2; K debe estar comprendida
entre 1 y 10 inclusive.

Estructuras de datos 1: (arrays y estructuras)

Figura 7 .6.

263

Array de tres dmensiones.

Ejemplo 7.10

Otro array de tres dimensiones puede ser PASAJE que representa el estado actual del sistema
de reserva de una lnea area, donde
i

.,

= l, 2,

..

representa el nmero de vuelo


representa la fila del avin
representa el asiento den1ro de la fila

10

j = l, 2 '
k = l, 2 ,

60
12

Entonces
pasa j e [ i , j ' k]
pasa j e [ i , j ' k]

asento libre
asiento ocupado

'\f , _;,"

7.6. ALMACENAM IENTO DE ARRAYS EN MEMORIA


Las representaciones grficas de los diferentes arrays se recogen en la Figura 7.7. Debido a la impor
tancia de los arrays, casi todos los lenguajes de programacin de alto nivel proporcionan medios efi
caces para almacenar y acceder a los ele1nentos de los arrays, de modo que el progrrunador no tenga
que preocuparse sobre los detalles especficos de almacenamiento. Sin embargo, el almacenamiento
en la computadora est dispuesto fundamentalmente en secuencia contigua, de modo que cada acce
so a una matriz o tabla la mquina debe realizar la tarea de convertir la posicin dentro del array en
una posicin perteneciente a una lnea.
A[l ]

A [ 1,

1J A [ l , 2 ] A [ l , 31 A [ l , 4 ]

A(2]

A[2,

1J A ( 2 , 2 1 A [ 2 , 31 A [ 2 , 4 ]

A[3,

1J A [ 3 , 2 ] A [ 3 , 31 A [ 3 , 4 ]

A[i ]

.
.

A[n]
8)

b)

, s.a:
_, . ..

Figura 7.7.

Arrays de una y dos dimensiones.

b1Q

264

Fundamentos de programacin

7.6.1. Almacenamiento de un vector


El almacenamiento de un vector en memoria se realiza en celdas o posiciones secuenciales. As, en el
caso de un vector A con un subndice de rango 1 a n,
' , 1

'
ot'.l' olqmE>f3
..,
' :;,: ' l
,

' . . ' '

,.

AA
Posicin B
B+n[ [l3.]]
1
Posicin
Si cada elemento del array ocupa s bytes (1 byte = 8A[n]
bits) y B es la direccin inicial de la
.
B+1 -posicin o direccin A[2]
memo ria central de la computadora
base-, la direccin inicial del elemento

i-simo sera:

B+ ( I- l ) *S

.
A
[i ]

Al130AMJA

.<

NOTA
Si el lmite inferior no es igual a 1, considrese el array declarado como N(4:10); la direc
cin inicial de N(6) es B+(6-4)*S.

En general, el elemento N ( I ) de un array definido como N ( L :U ) tiene la direccin inicial


B+ ( I -L ) *S

7.6.2. Almacenamiento de arrays multidimensionales


Debido a que la memoria de la computadora es lineal, un array multidimensional debe estar lineali
zado para su disposicin en el almacenamiento. Los lenguajes de programacin pueden almacenar los
arrays en memoria de dos formas: orden de fila mayor y orden de columna mayor.
El medio ms natural en que se leen y almacenan los arrays en la mayora de los compiladores es
el denominado orden de fila mayor (vase Figura 7.8). Por ejemplo, si un array es B [ 1:2 , 1:3 ] , el
orden de los elementos en la memoria es:

Estructuras de datos 1: (arrays y estructuras)

265

1 B [ l , 1] 1 B [ l , 2 ] 1 B [ l , 3 ] 1 B [ 2 , 1] 1 B [ 2 , 2 ] 1 B [ 2 , 3 ]
Fila 1
Fifa 2

Figura 7.8. Orden de fila mayor.

C, COBOL y Pascal almacenan los elementos por filas.


FORTRAN e1nplea el orden de columna mayor en el que las entradas de la primera fila vienen pri
mero.

B
Columna 1
2

Columna

Columna 3

Figura 7.9. Orden de columna mayor.

'

De modo general, el compilador del lenguaje de alto nivel debe ser capaz de calcular con un ndi
ce [ i, j ] la posicin del elemento correspondiente.
l
En un array en orden de fila mayor, cuyos subndices mximos sean m y n ( m, filas;
n,
columnas), la posicin p del elemento [i,j] con relacin al primer elemento es
p = n ( i-l ) +

l'

Para calcular la direccin real del elemento [i,j] se aade p a la posicin del primer elemento y se
resta 1 . La representacin grfica del almacenamiento de una tabla o matriz B [ 2 , 4 ] y e [ 2 , 4 J
.

B [ l , 1) .B [ l , 2 ]

B [ 1, 1]

E [ 1,

B [ 2 , 3 )-i..B [ 2 , 4 ]

B[l , 2]

B [ 2 , 11

B [ 2 , 1)- B [ 2 , 2 ]

11

B [ 1, 3 )-.B [ 1, 4 )-

B [ 1, 3 ]
B [ 1, 4 ]

a]

B [ 2 , 1)
B[2, 2]
B[2, 3]
B[2, 4]

B [ 11,

21

B[2,

21

B ( 1,

31

B[2, 3J

B
B[l , 4]
B[2, 4]

[
B
B
1
l
[,
,

:r.\

b)

,,]
]
l4
]
]

a)

b)

Figura 7.10. Almacenamiento de una matriz: a) por frias, b) por columnas.

En el caso de un array de tres dimensiones, supongamos un array tridimensional A [ 1:2 1 1- : 4 ,

1: 3 ] . La Figura 7.11 representa el array A y su almacenamiento en memoria.

l
B

266

Fundamentos de programacin

En orden a detenninar si es ms ventajoso almacenar un array en orden de columna2 mayor o en orden


de fila mayor, es necesario conocer en qu orden se referencian los elementos del array. De hecho, los len
guajes de programacin no le dan opcin al programador para que elija una tcnica de almacenamiento.

I' l' 3/[l, 1'


]

A[ l,)' '.: [ l, l [l,

A [ 2 , 1, 3 ) A [ 2 , 2 , 3 ] A [ 2 , 3 , 3 ] A [ 2 , 4 , 3 ]
A [ l , 1, 2 ] A [ l , 2 , 2 ] A [ l , 3 , 2 ] A [ l , 4 , 2 ]

/ / /

3]

')

'!

A [ 2 , 1, 2 ] A [ 2 , 2 , 2 ] A [ 2 , 3 , 2 ] A [ 2 , 4 , 2 ]
A [ l , 1, l] A [ l , 2 , 1] A [ l , 3 , 1] A [ l , 4 , 1]

/ / /

A [ 2 , 1, l ] A [ 2 , 2 , 1] A [ 2 , 3 , l ] A [ 2 , 4 , l]

Figura 7.11. Almacenamiento de una matriz A [ 2 , 4 , 3 J por columnas.


l

Consideremos un ejemplo del clculo del valor medio de los elementos de un array A de 50 por
300 elementos, A [ 5O , 3 O O J Los algoritmos de almacenamiento respectivos sern:

Almacenamiento por columna mayor


t ot a l

f-

desde j f- 1 hasta 300 hacer


desde i f- 1 hasta 50 hacer
t ot al

f-

t ot al +a [ i , j ]
3

fin_desde
fin_desde

med ia

t ot al / ( 30 0*50 }

f-

Almacenamiento por fila mayor


t ot a l

f-

desde i
desde

'
]

f-

1 hasta 50 hacer
hasta 300 hacer

j f- 1

t ot al f- t ot al +a [ i , j]

f-

fin_desde
fin_desde
media

t ot al / ( 300 *50 )

7.7. ESTRUCTURAS VERSUS REGISTROS


Un array permite el acceso a una lista o una tabla de datos del mismo tipo de datosB utilizando un ni
co nombre de variable. En ocasiones, sin embargo, se desea almacenar informacin de diferentes ti
pos, tales como un nombre de cadena, un nmero de cdigo entero y un precio de tipo real (coma flo
tante) juntos en una nica estructura. Una estructura que almacena diferentes tipos de datos bajo una
misma variable se denomina registro.
[
En P002 el almacenamiento de informacin de diferentes tipos con un nico nombre
suele efec
tuarse en clases. No obstante, las clases son tipos referencia. esto significa que a los objetos de la cla-

Programacin orientada a objetos.

Estructuras de datos f: (arrays y estructuras}

267

se se accede mediante una referencia. Sin embargo, en muchas ocasiones se requiere el uso de tipos va
lor. Las variables de un tipo valor contienen directamente los datos, mientras que las variables de tipos
3
referencia almacenan una referencia al lugar donde se encuentran almacenados sus datos. El acceso a
los objetos a travs de referencia aade tareas y tiempos suplementarios y tambin consume espacio.
En el caso de pequeos objetos este espacio extra puede ser significativo. Algunos lenguajes de pro
gramacin como C y los orientados a objetos como C++, C#, ofrecen el tipo estructura para resolver
estos inconvenientes. Una estructura es similar a una clase en orientacin a objetos ]e igual a un regis
tro en lenguajes estructurados como C pero es un tipo valor en lugar de un tipo referencia.

7.7.1. Registros
Un registro en Pascal es similar a una estructura en C y aunque en otros lenguajes como C# y C++
las estructuras pueden actuar como clases, en este captulo restringiremos su definicin al puro regis
tro contenedor de diferentes tipos de datos. Un registro se declara con la palabra reservada
estructura (struct, en ingls) o registro y se declara utilizando los mismos pasos necesa
rios para utilizar cualquier variable. Primero, se debe declarar el registro y a continuacin se asignan
valores a los miembros o elementos individuales del registro o estructura.

Sintaxis
registro:
nombre_tipo
tipo_l: campo]

tipo_2:
estructura:

Ejemplo

campo2

fin_registro

nombre_clase tipo_l:

campal tipo_2:
estructura:
fechaNacimiento
campo2
entero:
mes 11 mes de nacimiento
entero: dia 11 da de nacimiento
fin_estructura
entero:
ao 11 ao de nacimiento
Pin_estructura

La declaracin anterior reserva almacenamiento para los elementos de datos individuales denomi
nados campos o miembros de la estructura. En el caso de fecha, la estructura consta de tres campos
da, mes y ao relativos a una fecha de nacimiento o a una fecha en sentido general. El acceso a los
miembros de la estructura se realiza con el operador punto y con la siguiente sintaxis
Nombre_estructura.miembro

As f echaNac imiento .mes se refiere al miembro mes de la estructura fecha, y f echaNa


cimient o . dia se refiere al da de nacimiento de una persona. Un tipo de dato estructura
ms ge neral podria ser Fecha y que sirviera para cualquier dato aplicable a cualquier
aplicacin (fecha de nacimiento, fecha de un examen, fecha de comienzo de clases, etc.).
estructura: Fecha
entero: mes
entero: dia
entero: ao
fin_estructura

268

Fundamentos de programacin

Declaracin de tipos estructura


Una vez definido un tipo estructura se pueden declarar variables de ese tipo al igual que se hace con
cualquier otro tipo de datos. Por ejemplo, la sentencia de definicin
J:!JI
Fecha Cumpleaos, delDia

reserva almacenamiento para dos variables llamadas Cumpleaos y delDia, respectivamente. Cada
una de estas estructuras individuales tiene el mismo formato que el declarado en la clase Fecha.
Los miembros de una estructura no estn restringidos a tipos de datos enteros sino que pueden ser
cualquier tipo de dato vlido del lenguaje. Por ejemplo, consideremos un registro de un empleado de
una empresa que contase de los siguientes miembros:
estructura Empleado
Cadena: nombre
entero: idNumero
real: Salar-io
Fecha:
FechaNacimiento
entero: Antigedad
fin_estructura

<--- :

Obsrvese que en la declaracin de la estructura Empleado. el miembro Fecha es un nombre


de un tipo estructura previamente definido. El acceso individual a los miembros individuales del tipo
estructura de la clase Empleado se realiza mediante dos operadores punto, de la forma siguiente:
Empleado.Fecha.Dia

y se refiere a la variable Dia de la estructura Fecha de la estructura Empleado.

'

Estructuras de datos homogneas y heterogneas


Los registros (estructuras) y los arrays son tipos de datos estructurados. La diferencia entre es
tos dos tipos de estructuras de datos son los tipos de elementos que ellos contiene. Un array
es una estructura de datos homognea, que significa que cada uno de sus componentes deben
ser del mismo tipo. Un registro es una estructura de datos heterognea, que 5ignifica que cada
uno de sus componentes pueden ser de tipos de datos diferentes. Por consiguiente, un array de
registros es una estructura de datos cuyos elementos son de los mismos tipos heterogneos.

7.8. ARRAYS DE ESTRUCTURAS


La potencia real de una estructura o registro se manifiesta en toda su expresin cuando la misma es
tructura se utiliza para listas de datos. Por ejemplo, supongamos que se deben procesar los datos de la
tabla de la Figura 7.12.
nombres en un array de cadenas de caracteres y los salarios en un array de nmeros reales. Al orga
Un sistema podra ser el siguiente: Almacenar los n meros de empleado en un array de enteros los
ni zar los datos de esta forma, cada columna de la Figura 7.13 se considera como una lista indepen
diente que se almacena en su propio array. La correspondencia entre elementos de cada empleado in
dividual se mantiene almacenan los datos de un empleado en la misma posicin de cada array.
La separacin de cada lista completa en tres arrays individuales no es muy eficiente, ya que todos
los datos relativos a un empleado se organizan juntos en un registro como se muestra en la Figura
7.13. Utilizando una estructura, se mantiene la integridad de los datos de la organizacin y bastar un
pro-

'

'

Estructuras de datos /: (arrays y


estructuras)

Nmero de empleado

Nombre del empleado

Salarlo

97005
95758
87124
67005
20001
20020
99002
20012
21001
97005

Mackoy, Jos Luis


Mortlmer, Juan
Rodrguez, Manuel
Carrigan, Luis Jos
Mackena, Luis Miguel
Garca de la Cruz, Heraclio
Mackoy, Mara Victoria
Gonz!ez, Yiceth
Gonzles, Rina
Rodrguez, Concha

1.500
1.768
2.456
3.125
2.156
1.990
2.450
4.780
3.590
3.574

Figura 7.12. Lista de datos.

grama que maneje los registros para poder ser manipulados con
eficacia. La declaracin de un array de estructuras es similar a la
declaracin de un array de cualquier otro tipo de variable. En conse
cuencia, en el caso del archivo de empleados de la empresa se puede
declarar el array de empleado con el nombre Empleado y el registro
o estructura lo denominamos Regis t roNomina
estruc
tu
ra
:
Re
g
is
tr
oN
om
in
a
en
te
ro
:
Nu
mE
mp
le
ad
o
ca
de
na
[3
0)
:
No
mb
re

re
al
:
Sa
la
ri
o
fin_estructura

Se puede declarar u n array de estructuras Reg i s t r oNomina que


permite representar toda la ta bla anterior
array [1..10] de RegistroNomina : Empleado

La sentencia anterior construye un array de diez elementos


Empleado, cada uno de los cuales es una estructura de datos de tipo Reg
i st roNomina que representa a un empleado de la empresa Aguas de
Sierra Mgina. Obsrvese que la creacin de un array de diez
estructuras tiene el mismo formato que cualquier otro array. Por
ejemplo. la creacin de un array de diez enteros denominado Emp 1ea do requiere la declaracin
array [1..10] de entero : Empleado

En realidad la lista de datos de empleado se ha representado 1nediante


una lista de registros como se mostraba en la Figura 7.13.

También podría gustarte