Está en la página 1de 82

Unidad 5: Arreglos

Vectores y Matrices
Prof. Eliana Guzmn U.
Semestre B!"#"
Estructuras de datos
$
%os arreglos son un ti&o de estructura de datos.
$
Una estructura de datos es una colecci'n de
datos (ue se caracteriza &or su organizaci'n y
las o&eraciones (ue se definen en ella.
$
%as estructuras de datos son muy im&ortantes
en los sistemas de com&utadora. %os ti&os de
datos ms frecuentes utilizados en los
diferentes lengua)es de &rogramaci'n son:
*i&os de datos
Estructuras de datos
Las estructuras de datos estticas son
a(uellas en las (ue el tama+o ocu&ado en
memoria se define antes de (ue el
&rograma se e)ecute y no &uede
modificarse durante la e)ecuci'n del
&rograma. Estas estructuras estn
im&lementadas en casi todos los lengua)es
de &rogramaci'n: array ,-ector.matriz/0
registros0 fic1eros o arc1i-os0 con)untos
,Pascal/.
Estructuras de datos
Las estructuras de datos dinmicas no tienen
las limitaciones o restricciones en el tama+o de
memoria ocu&ada (ue son &ro&ias de las
estructuras estticas. Mediante el uso de un ti&o
datos es&ec2fico denominado &untero0 es
&osi3le construir estructuras de datos dinmicas
(ue son so&ortadas &or la mayor2a de los
lengua)es. %as estructuras de datos dinmicas
&or e4celencia son las listas ,enlazadas0 &ilas y
colas/0 r3oles ,3inarios0 r3ol30 35s(ueda
3inaria/ y grafos.
Arreglos
Un arreglo ,matriz o -ector/ es un con)unto
finito y ordenado de elementos
1omog6neos. %a &ro&iedad ordenados
significa (ue el elemento &rimero0
segundo0 tercero070 n6simo de un arreglo
&uede ser identificado. %os elementos de
un arreglo son 1omog6neos0 es decir0 del
mismo ti&o de datos ,todos0 de ti&o
cadena o enteros0 o reales0 etc./.
Arreglos unidimensionales:
vectores
$
El ti&o ms sim&le de arreglo es el arreglo
unidimensional o -ector. Un -ector de una dimensi'n
denominado 89*AS (ue consta de n elementos se
&uede re&resentar as2:
$
El su32ndice o 2ndice de un elemento :#0!0;070i070n<
designa su &osici'n en la ordenaci'n del -ector.
$
Solo el -ector glo3al tiene nom3re ,89*AS/. %os
elementos del -ector se referencian &or su su32ndice o
2ndice0 es decir0 su &osici'n relati-a en el -ector.
Arreglos unidimensionales:
vectores
8otaci'n algor2tmica &ara declarar -ectores:
tipo
array :dimensiones< de =ti&o de dato>: =nom3re del ti&o array>
var
=nom3re del ti&o array>: identificador de la -aria3le de este ti&o
E)em&los:
tipo tipo
array :#..#"< de carcter: nom3res array :#..#""< de entero: n5mero
var var
nom3res: 80 M n5mero: 8UM
se estn declarando dos -ectores se est declarando un -ector
8 y M de #" elementos cada uno 8UM de #"" elementos de
ti&o
de ti&o carcter entero
Arreglos unidimensionales:
Operaciones con Vectores
%as o&eraciones (ue se &ueden realizar con
-ectores durante el &roceso de resoluci'n de un
&ro3lema usando la &rogramaci'n son:
$
Recorrido (acceso secuencial)
$
%ectura.escritura
$
Asignaci'n
$
Actualizaci'n ,a+adir0 3orrar insertar/
$
9rdenaci'n
$
B5s(ueda
1. Recorrido (acceso secuencial)
$
Se &uede acceder a cada elemento de un
-ector &ara introducir datos ,leer/ en 6l o
3ien &ara -isualizar su contenido
,escri3ir/.
$
A la o&eraci'n de efectuar una acci'n
general so3re todos los elementos de un
-ector se le denomina recorrido del -ector.
1. Recorrido (acceso secuencial)
$
Estas o&eraciones se realizan utilizando
estructuras re&etiti-as0 cuyas -aria3les de
control ,&or e)em&lo i/ se utilizan como
su32ndices del -ector ,&or e)em&lo S:i</.
$
El incremento del contador del 3ucle
&roducir el tratamiento sucesi-o de los
elementos del -ector.
1. Recorrido (acceso secuencial)
8ormalmente se utiliza la estructura de re&etici'n
desde0 ya (ue se conoce de antemano la cantidad
de -eces (ue se desea re&etir el 3ucle:
desde i # 1asta n 1acer
escribir,?@ntroduzca el elemento ? 0i0 ?del -ector A: B/
leer,A:i</
findesde
1. Recorrido (acceso secuencial)
$
*am3i6n se &ueden utilizar las estructuras de
re&etici'n mientras y re&etir:
i #
mientras i =C !" !acer
escribir,?@ntroduzca el elemento ? 0i0 ?del
-ector A: B/
leer,A:i</
i i D #
finmientras
1. Recorrido (acceso secuencial)
i #
repetir
escribir,?@ntroduzca el elemento ? 0i0 ?del
-ector A: B/
leer,A:i</
i i D #
!asta"ue i > !"
!. Lectura#escritura
%a lectura.escritura de datos en arreglos
normalmente se realiza con estructuras
re&etiti-as ,usando un recorrido secuencial/.
%as instrucciones sim&les de lectura.escritura se
re&resentarn como:
$
leer,A:5</ lectura del elemento 5 del -ector A
$
escribir,A:E</ escri3ir el elemento E del -ector A
!. Lectura#escritura
Generalmente se desea leer o escri3ir el -ector
com&leto0 &ara lo cual se de3e 1acer un
recorrido del -ector:
desde i# !asta n !acer
escribir,?@ntroduzca el elemento ? 0i0 ?del
-ector A: B/
leer,A:i</
findesde

!. Lectura#escritura
Para escri3ir el -ector nom3res:
desde i# !asta n !acer
escribir,nom3res:i</
findesde

!. Lectura#escritura
$
Para facilitar futuras o&eraciones con el
-ector0 se recomienda inicializar el -ector
antes de o&erar con 6l. Puede usarse
cual(uier -alor (ue res&ete el ti&o de dato
del -ector:
desde i # 1asta n 1acer
nom3re:i< ?FB
finGdesde
;. Asignaci$n
%a asignaci'n de -alores a un elemento del
-ector se realizar con la instrucci'n de
asignaci'n:
$
A:!H< 5 asigna el -alor 5 al elemento
!" del -ector A
$
Suma A:#< D A:;<
$
A:;< A:;< D #".E
$
A:#< A:I< D A:5<
;. Asignaci'n
$
Si se desea asignar -alores a todos los
elementos de un -ector0 se de3e recurrir a
estructuras re&etiti-as e incluso selecti-as.
$
E)em&lo: si se desea dar el mismo -alor a
todos los elementos del -ector A de ti&o
entero:
desde i # !asta 5 !acer
A:i< E
findesde
I. Actualizaci'n
%a o&eraci'n de actualizaci'n de un -ector
consta a su -ez de tres o&eraciones ms
elementales:
$
A+adir elementos
$
@nsertar elementos
$
Borrar elementos
I. Actualizaci'n
A+adir elementos: es la o&eraci'n de
agregar un nue-o elemento al final del
-ector. %a 5nica condici'n necesaria &ara
esta o&eraci'n consistir en la
com&ro3aci'n de es&acio de memoria
suficiente &ara el nue-o elemento0 dic1o
de otra manera0 (ue el -ector no contenga
todos los elementos con (ue fue definido.
I. Actualizaci'n
E)em&lo: se tiene un -ector de edades definido
&ara J elementos0 &ero ya tiene almacenado 5
elementos EKAKES,#/0 EKAKES,!/0
EKAKES,;/0 EKAKES,I/ y EKAKES,5/. Se
&odrn a+adir dos elementos ms al final del
-ector con una sim&le o&eraci'n de asignaci'n:
$
EKAKES,L/ !;
$
EKAKES,J/ !"
,Si conoce los es&acio del -ector (ue estn li3res./
I. Actualizaci'n
Si no se sa3e si el -ector tiene es&acios dis&oni3les0
&rimero de3e determinarse esto antes de intentar a+adir
elementos al -ector:
desde i # 1asta n 1acer
si ,edades:i<C#/ entonces
escri3ir,?@ntroduzca una edad:B/
leer,edades:i</
siGno
cont cont D #
finGsi
si ,contCn/ entonces
escri3ir,?El -ector no tiene es&acio &ara a+adir ms elementosB/
finGsi
finGdesde
I. Actualizaci'n
@nsertar elementos: consiste en introducir un
elemento en el interior de un -ector ordenado.
En este caso se necesita un des&lazamiento
&re-io 1acia a3a)o &ara colocar el nue-o
elemento en su &osici'n relati-a.
E)em&lo: se tiene un -ector de E elementos (ue
contiene nom3res ordenados alfa36ticamente y
se desea insertar dos nue-os nom3res:
Aernando y %uis.
I. Actualizaci'n
Momo Aernando est entre Marlos y Gerardo se de3en des&lazar 1acia
a3a)o los elementos ;0 I y 5 (ue &asarn a ocu&ar las &osiciones relati-as
I0 5 y L.
Posteriormente de3e realizarse la misma o&eraci'n con el nom3re %uis
(ue ocu&ar la &osici'n L.
El algoritmo (ue realiza esta o&eraci'n &ara un -ector de n
elementos es el siguiente0 su&oniendo (ue 1ay es&acio
suficiente en el -ector:
algoritmo insertarGelemento
const
nC5""
tipo
array :# .. n< de cadena:5"<: -ector
var
-ector: 89MBNES
cadena:5"<:nue-o
entero: Pos0 ocu&ada0 cont
inicio
leer,nue-o/
desde i # !asta n !acer
si ,89MBNES:i<=nue-o/ entonces
cont cont D #
finsi
findesde
Pos cont D #
desde i # !asta n !acer
si ,89MBNES:i<=>B-acioB/ entonces
ocu&ada ocu&ada D #
sino
cont cont D #
finsi
findesde
si ,contCn/ entonces
escribir,?8o se &ueden a+adir elementosB/
sino
i ocu&ada
mientras ,i >C Pos/ !acer
89MBNES:iD#< 89MBNES:i<
i i #
finmientras
89MBNES:Pos< nue-o
ocu&ada ocu&ada D #
finsi
fin
I. Actualizaci'n
Borrar elementos: la o&eraci'n de 3orrar el
5ltimo elemento de un -ector no
re&resenta ning5n &ro3lema.
El 3orrado de un elemento del interior del
-ector &ro-oca el mo-imiento 1acia arri3a
de los elementos inferiores a 6l &ara
reorganizar el -ector.
I. Actualizaci'n
Si desea 3orrar elemento
; ,Gerardo/0 de3e des&lazar
1acia arri3a los elementos
de las &osiciones I ,%orena/
y 5 ,Marcos/.
I. Actualizaci'n
E)em&lo: en el -ector del e)em&lo anterior 89MBNES0 3orrar el
elemento (ue el usuario desee.
algoritmo 3orrarGelemento
const
8C5""
tipo
array :# .. 8< de cadena:5"<: -ector
var
-ector: 89MBNES
entero: )0ocu&ada
cadena:5"<: nom
%nicio
escribir,?@ntroduzca el nom3re a 3orrar:B/
leer,nom/
I. Actualizaci'n
desde i # !asta 8 !acer
si ,89MBNES:i<Cnom/ entonces
) i
finsi
findesde
desde iC) !asta 8 !acer
89MBNES:i< 89MBNES:iD#<
findesde
ocu&ada ocu&ada #
fin
5. M6todos de ordenamiento y
35s(ueda en -ectores
Ordenaci$n (clasificaci$n)
$
Es la o&eraci'n de organizar un con)unto
de datos en alg5n orden o secuencia
es&ec2fica0 tal como creciente o
decreciente &ara datos num6ricos o
alfa36ticamente &ara datos de ti&o carcter
o cadena de caracteres.
$
9&eraciones t2&icas de ordenaci'n son:
lista de n5meros0 arc1i-os de clientes de
3anco0 nom3res en una agenda telef'nica.
Ordenaci$n (clasificaci$n)
$
En s2ntesis0 la ordenaci'n significa &oner
o3)etos en orden ascendente o
descendente. El &ro&'sito final de la
clasificaci'n es facilitar la mani&ulaci'n de
datos en un -ector.
Ordenaci$n (clasificaci$n)
%os m6todos directos son los (ue se
realizan en el es&acio ocu&ado &or el
arreglo. %os (ue -amos a estudiar son:
$
M6todo de intercam3io o 3ur3u)a.
$
9rdenaci'n &or @nserci'n
$
9rdenaci'n &or Selecci'n
&'todo de intercambio o de
burbu(a
Se 3asa en el &rinci&io de com&arar &ares
de elementos adyacentes e
intercam3iarlos entre s2 1asta (ue est6n
todos ordenados.
&'todo de intercambio o de
burbu(a
El elemento cuyo -alor es mayor su3e &osici'n a
&osici'n 1acia el final de la lista0 al igual (ue las
3ur3u)as de aire en un de&'sito.
*ras realizar un recorrido com&leto &or todo el
-ector0 el elemento mencionado 1a3r su3ido en
la lista y ocu&ar la 5ltima &osici'n.
En el segundo recorrido0 el segundo elemento
llegar a la &en5ltima &osici'n0 y as2
sucesi-amente.
&'todo de intercambio o de
burbu(a
%os &asos a dar son:
#. Mom&arar A:#< y A:!<0 si estn en orden0 se
mantienen como estn0 en caso contrario se
intercam3ian entre si.
!. A continuaci'n se com&aran los elementos ! y
;0 de nue-o se intercam3ian si es necesario.
;. El &roceso contin5a 1asta (ue cada elemento
del -ector 1a sido com&arado con sus
elementos adyacentes y se 1an realizado los
intercam3ios necesarios.
&'todo de intercambio o de
burbu(a
%a acci'n de intercam3iar entre s2 los
-alores de dos elementos A:i<0 A:iD#< es
una acci'n com&uesta (ue contiene las
siguientes acciones0 utilizando una
-aria3le au4iliar:
A[i] A[i+1]
AUX
#
!
;
&'todo de intercambio o de
burbu(a
En &seudoc'digo:
AUO A:i<
A:i< A:iD#<
A:iD#< AUO
&'todo de intercambio o de
burbu(a
algoritmo 3ur3u)a#
const
)*+,,
tipo
array :#..8< de entero: -ector
var
-ector: O
entero: i0 )0 au4
inicio
desde i # !asta 8 !acer
leer,O:i</
findesde
desde i # !asta 8# !acer
desde ) # !asta 8# !acer
si O:)< > O:)D#< entonces
AUO O:)<
O:)< O:)D#<
O:)D#< AUO
finsi
findesde
findesde
desde i # !asta 8 !acer
escri3ir,O:i</
findesde
fin
algoritmo 3ur3u)a!
const
8C!""
tipo
array :#..8< de entero: -ector
var
-ector: O
entero: i0 )0au4
inicio
desde i # !asta 8 !acer
leer,O:i</
findesde
desde i # !asta 8# !acer
desde ) # !asta 8i !acer
si O:)< > O:)D#< entonces
AUO O:)<
O:)< O:)D#<
O:)D#< AUO
finsi
findesde
findesde
desde i # !asta 8 !acer
escri3ir,O:i</
findesde
fin
&'todo de intercambio o de
burbu(a
Su&onga (ue se (uiere ordenar de forma
ascendente el -ector:
&'todo de ordenaci$n por
inserci$n
Este m6todo consiste en insertar un
elemento en el -ector en una &arte ya
ordenada de este -ector y comenzar de
nue-o con los elementos restantes.
Por ser utilizado cuando uno )uega cartas
tam3i6n se conoce con el nom3re de
m6todo de la 3ara)a.
&'todo de ordenaci$n por
inserci$n
&'todo de ordenaci$n por
inserci$n
El m6todo se 3asa en com&araciones y
des&lazamientos sucesi-os. El algoritmo
de ordenaci'n de un -ector O de 8
elementos se realiza con un recorrido de
todo el -ector y la inserci'n del elemento
corres&ondiente en el lugar adecuado.
&'todo de ordenaci$n por
inserci$n
algoritmo m6todoGinserci'n
tipo
array :#..8< de entero: -ector
var
-ector: O
entero: i0 )
inicio
desde i ! !asta 8 !acer
AUO O:i<
P i Q #
SR falso
mientras (AUO = O:P<
!acer
O:PD#< O:P<
P P Q #
finmientras
O:PD#< AUO
findesde
fin.
&'todo de ordenaci$n por
selecci$n
Este m6todo se 3asa en 3uscar el menor
elemento del -ector y colocarlo en la
&rimera &osici'n. %uego se 3usca el
segundo elemento ms &e(ue+o y se
coloca en la segunda &osici'n0 y as2
sucesi-amente.
&'todo de ordenaci$n por
selecci$n
$
%os &asos sucesi-os a dar son:
#. Seleccionar el menor elemento del -ector de
n elementos.
!. @ntercam3iar dic1o elemento con el &rimero.
;. Ne&etir estas o&eraciones con los n#
elementos restantes0 seleccionando el
segundo elemento0 continuar con los n!
elementos restantes 1asta (ue s'lo (uede
el mayor.
&'todo de ordenaci$n por
selecci$n
Pseudoc'digo con estructura desde
inicio
desde i !asta 8# !acer
AUO O:i<
P i
desde ) iD# !asta 8 !acer
si O:)< = AUO entonces
AUO O:)<
P )
finsi
findesde
O:P< O:i<
O:i< AUO
finGdesde
fin
&'todos de -.s"ueda
$
%a recu&eraci'n de informaci'n0 como ya se 1a
comentado0 es una de las a&licaciones ms
im&ortantes de las com&utadoras.
$
%a 35s(ueda se refiere a la o&eraci'n de
encontrar la &osici'n de un elemento entre un
con)unto de elementos dados: lista0 ta3la o
fic1ero.
$
E4isten diferentes algoritmos de 35s(ueda. El
algoritmo elegido de&ende de la forma en (ue
se encuentren organizados los datos.
&'todos de -.s"ueda
%a o&eraci'n de 35s(ueda de un elemento
8 en un con)unto de elementos consiste
en:
#. Keterminar si 8 &ertenece al con)unto y0
en ese caso0 indicar su &osici'n en 6l.
!. Keterminar si 8 no &ertenece al
con)unto.
&'todos de -.s"ueda
%os m6todos ms usuales de 35s(ueda
son:
$
B5s(ueda secuencial o lineal.
$
B5s(ueda 3inaria.
$
B5s(ueda &or transformaci'n de cla-es
,1as1/.
-.s"ueda secuencial o lineal
El m6todo ms sencillo de 3uscar un
elemento en un -ector es e4&lorar
secuencialmente el -ector ,recorrer el
-ector/0 desde el &rimer elemento 1asta el
5ltimo. Si se encuentra el elemento
3uscado -isualizar un mensa)e similar a
?Elemento encontrado en la &osici'n 4B0 en
caso contrario -isualizar un mensa)e
similar a ?Elemento no e4iste en el -ectorB.
-.s"ueda secuencial o lineal
$
En otras &ala3ras0 la 35s(ueda secuencial
com&ara cada elemento del -ector con el
-alor deseado0 1asta (ue se encuentra o
termina de recorrer el -ector com&leto.
$
%a 35s(ueda secuencial no re(uiere
ning5n registro &or &arte del -ector &or
consiguiente no re(uiere (ue el -ector
est6 ordenado.
-.s"ueda secuencial o lineal
Este m6todo tiene el incon-eniente del
consumo e4cesi-o de tiem&o en la
localizaci'n del elemento 3uscado.
Muando el elemento 3uscado no se
encuentra en el -ector0 se -erifican o
com&rue3an sus n elementos. Por esto no
es el m6todo ms adecuado &ara
-ectores con un gran n5mero de
elementos.
-.s"ueda secuencial o lineal
algoritmo 35s(uedaGsecuencial
const
8C#"""
tipo
array :#..8< de entero: -ector
var
-ector: O
entero: i0t0cont
inicio
desde i # !asta 8 !acer
leer,O:i</
findesde
escribir,?@ntroduzca el elemento a 3uscar: ?/
leer,t/
desde i # !asta 8 !acer
si ,O:i< C t/ entonces
escribir,?Elemento encontrado en la &osici'n ?0i/
sino
cont cont D #
finsi
findesde
si (cont*)) entonces
escribir,?El elemento ?0t0B no se
encuentra en este -ectorB/
finsi
fin.
algoritmo 35s(uedaGsecuencial!
const 8C#"""
tipo
array :#..8< de entero: -ector
var
-ector: O
entero: i0)0t
l'gica: encontrado
inicio
desde i # !asta 8 !acer
leer,O:i</
findesde
escribir,?@ntroduzca el elemento a 3uscar: ?/
leer,t/
encontrado falso
desde i # !asta 8 !acer
si ,O:i< C t/ entonces
encontrado -erdadero
) i
finsi
findesde
si encontrado entonces
escri3ir,?Elemento encontrado en la &osici'n ?0)/
sino
escri3ir,?Elemento no encontradoB/
finsi
fin.
-.s"ueda binaria
Presu&one una ordenaci'n &re-ia de los
elementos del -ector.
Este m6todo se 3asa en la di-isi'n
sucesi-a del -ector en dos &artes0 y seguir
di-idiendo cada mitad 1asta encontrar el
elemento 3uscado.
-.s"ueda binaria
Utiliza un m6todo de di-ide y -encers &ara
localizar el -alor deseado.
Mon este m6todo se e4amina &rimero el elemento
central del -ector0 si este es el elemento
3uscado0 entonces la 35s(ueda 1a terminado.
En caso contrario se determina si el elemento
3uscado est en la &rimera o segunda mitad de
la lista0 y a continuaci'n se re&ite este &roceso0
utilizando el elemento central de esa su3lista.
-.s"ueda binaria
Es un m6todo eficiente siem&re (ue el
-ector est6 ordenado.
En la &rctica esto suele suceder0 &ero no
siem&re es as2. Por esta raz'n la
35s(ueda 3inaria e4ige una ordenaci'n
&re-ia del -ector.
algoritmo 35s(uedaG3inaria
tipo
array :#..5""< de entero: -ector
var
-ector: O
entero: i0)0t
l'gica: encontrado
inicio
leer,S/
&rimero #
5ltimo 8
central /)0 ,,&rimeroD5ltimo/.!/
mientras ,&rimero =C 5ltimo/ y ,O:central< => P/ !acer
si ,P = O:central</ entonces
5ltimo central #
sino
&rimero central D #
finsi
central /)0 ,,&rimeroD5ltimo/.!/
finmientras
si P C O:central< entonces
escri3ir,?Elemento encontrado en la &osici'n ?0central/
sino
escri3ir,?Elemento no encontradoB/
finsi
fin.
E)em&los de -ectores
#. Escri3ir un algoritmo (ue &ermita calcular
la des-iaci'n estndar de una lista de 8
n5meros. El -alor de 8 no &uede ser
mayor a #5.
1
) (
1
2

=
n
media x
desviacin
n
i
i
E)em&los de -ectores
!. Escri3ir un algoritmo (ue determine el
mayor -alor de una lista % de 8 n5meros
reales.
;. Escri3ir un algoritmo (ue determine la
suma de los n5meros &ares e im&ares
de un -ector.
Arreglos de -arias dimensiones
E4isten gru&os de datos (ue se re&resentan
me)or en forma de ta3la o matriz con dos
o ms su32ndices. E)em&los t2&icos de
ta3las o matrices son:
$
Kistancias entre ciudades
$
Torarios
$
@nformes de -entas &eri'dicas
Arreglos de -arias dimensiones
Se &ueden definir a las ta3las o matrices
como arreglos multidimensionales0 cuyos
elementos se &ueden referenciar &or dos0
tres o ms su32ndices. %os arreglos de
-arias dimensiones se di-iden en dos
grandes gru&os:
$
Arreglos 3idimensionales: ta3las o
matrices.
$
Arreglos multidimensionales.
Arreglos 3idimensionales: matrices
Un arreglo 3idimensional se &uede
considerar como un -ector de -ectores.
Es un con)unto de elementos0 todos del
mismo ti&o0 en el cual el orden de los
com&onentes es significati-o y en el (ue
se necesitan es&ecificar dos su32ndices
&ara &oder identificar cada elemento del
arreglo.
Arreglos 3idimensionales: matrices
;"
#5"
Matriz A:
Aila #
Aila !
Aila ;
Aila I
Aila 5
Molumna # Molumna ! Molumna L
Arreglos 3idimensionales: matrices
;"
#5"
Matriz A:
Su32ndice i
&ara las filas
Su32ndice )
&ara las columnas
A:!05<
A:50!<
Arreglos 3idimensionales: matrices
8otaci'n algor2tmica &ara declarar matrices:
tipo
array :#..M0#..8< de =ti&o de dato>: =nom3re del ti&o array>
var
=nom3re del ti&o array>: identificador de la -aria3le de este ti&o
E)em&lo:
tipo
array :#..50 #..L< de entero: 8otas
var
8otas: A0 B
Arreglos 3idimensionales: matrices
Un arreglo 3idimensional se dice (ue tiene
MF8 elementos0 donde M es el n5mero de
filas y 8 el n5mero de columnas.
Arreglos 3idimensionales: matrices
9&eraciones con matrices:
#. Asignaci'n
!. %ectura.escritura
;. Necorrido secuencial: Por fila
Por columna
Arreglos 3idimensionales: matrices
#. Asignaci'n: consiste en asignar directamente un
-alor a cual(uier elemento de la matriz.
E)em&lo: A:#0#< ;
!. %ectura.escritura: normalmente se realiza con
estructuras de re&etici'n. Pero una instrucci'n
sim&le de lectura.escritura &odr2a ser:
leer,A/ lectura de la matriz A
escri3ir,A/ escritura de la matriz A
leer,A:!0;</ lectura del elemento en la fila !
columna ; de la matriz A.
Arreglos 3idimensionales: matrices
$
Necorrido secuencial: Se &uede acceder a los
elementos de una matriz &ara introducir datos
,leer/ en ella o 3ien &ara -isualizar su contenido
,escri3ir/0 realizar com&araciones o 35s(uedas
de elementos.
$
Esta o&eraci'n se realiza usando estructuras de
re&etici'n0 cuyas -aria3les de control se utilizan
como su32ndices de la matriz ,&or e)em&lo i0 )/.
$
El incremento del contador del 3ucle &roducir el
tratamiento sucesi-o de los elementos de la
matriz.
Arreglos 3idimensionales: matrices
El recorrido secuencial se &uede 1acer &or filas o
&or columnas.
Necorrido secuencial &or filas:
desde i # !asta ; !acer
desde ) # !asta I !acer
leer,A:i0i</
findesde
findesde
Arreglos 3idimensionales: matrices
Necorrido secuencial &or columnas:
desde ) # !asta I !acer
desde i # !asta ; !acer
leer,A:i0i</
findesde
findesde
E)em&lo #: @nicializar la matriz A de #" filas y
I columnas con un -alor constante dado S.
algoritmo inicializaci'nGmatriz
const
MC#"
8CI
tipo
array:#..M0 #..8< de entero: Matriz
var
Matriz: A
entero: i0 )0 S
%nicio
leer,S/
desde i # !asta M !acer
desde ) # !asta 8 !acer
A:i0i< S
findesde
findesde
fin.
E)em&los de matrices
E)em&lo !: Escri3ir un algoritmo (ue &ermita
sumar el n5mero de elementos &ositi-os y
negati-os de una matriz *.
E)em&lo ;: Escri3ir un algoritmo (ue
o3tenga la suma de los elementos de
cada una de las filas y de cada una de las
columnas de una matriz de M filas y 8
columnas.
E)em&los de matrices
E)em&lo I: Escri3a un algoritmo (ue realice
la suma de todos los elementos de una
matriz B de M filas y 8 columnas.
E)em&lo 5: El )efe de recursos 1umanos de
una tienda de E de&artamentos0 desea
registrar la asistencia de los tra3a)adores
cada d2a de la semana en cada
de&artamento0 &ara o3tener la siguiente
informaci'n:
E)em&los de matrices
a/ %a cantidad de tra3a)adores (ue la3oraron
cada d2a de la semana.
3/ El de&artamento al (ue ms asistieron sus
tra3a)adores durante la semana.
c/ %a cantidad de tra3a)adores (ue asistieron
el d2a s3ado y el d2a domingo.
d/ A cul de&artamento asistieron la menor
cantidad de tra3a)adores durante la
semana.
Arreglos multimensionales
Un arreglo se &uede definir de tres0 cuatro y
1asta n dimensiones.
Se mane)an los mismos conce&tos &ara los
su32ndices (ue en los -ectores o matrices.
Mada elemento del arreglo se &uede
identificar usando la cantidad de su32ndices
necesarios0 &or e)em&lo en un arreglo de n
dimensiones se escri3ir: A:@
#
0 @
!
0 @
;
0 70 @
n
<
Arreglos multimensionales
E)em&lo: Un arreglo de tres dimensiones
&uede ser uno (ue contenga los datos
relati-os al n5mero de estudiantes de una
uni-ersidad de acuerdo a los siguientes
criterios:
Q
a+o ,&rimero a (uinto/
Q
se4o ,femenino.masculino/
Q
facultad ,cinco facultades diferentes/
Arreglos multimensionales
Se4o
Aacultad
Murso

También podría gustarte