Date post: | 20-Feb-2018 |
Category: |
Documents |
Upload: | giiaan-tu-niniow |
View: | 212 times |
Download: | 0 times |
of 108
7/24/2019 7 Tradzxczuci Da
1/108
2003 Prentice Hall, Inc. Todos los derechos reservados.
Captulo 7 - ArraysContorno
7.1 Introduccin
7.2 Arrays
7.3 Declaracin y Creacin de matrices
7.4 Ejemplos de uso de Arrays
7.5 Las reerencias y par!metros de reerencia
7." pasar matrices a los #$todos
7.7 Las matrices de clasiicacin
7.% #atrices de &'s(ueda) lineal &'s(ueda y &inario de &'s(ueda7.* Las matrices multidimensionales
7+1, -Ejemplo pr!ctico opcional Acerca de los o&jetos) Cola&oracin entre o&jetos
2003 Prentice Hall, Inc. Todos los derechos reservados.
7/24/2019 7 Tradzxczuci Da
2/108
7.1 Introduccin Arrays structuras de datos
le!entos de datos relacionados de !is!o tipo
Per!ane"ca !is!o ta!a#o una ve" creada
ntradasde longitud fija
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.2 Arrays Colecci$n %rupo de varia&les
Tener !is!o tipo
Tipo de 'e(erencia
2003 Prentice Hall, Inc. Todos los derechos reservados.
7/24/2019 7 Tradzxczuci Da
3/108
/i0.7.1 na matri de 12 elementos.
)o!&re de la !atri" *ten+a en cuenta ue todos los ele!entos de esta !atri" tienen el !is!o
no!&re, c
ndice *o su&ndice del ele!ento de !atri" c
c /0
c /1
c /2
c /3c /
c /
c /4
c /7
c /5
c /6c /10
c /11
-
4
7/24/2019 7 Tradzxczuci Da
4/108
0
72
13
-56
0
42
-3
1
43
75
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.2 Arrays -cont.
ndice Ta!&in lla!ado su&ndice )8!ero de posici$n entre corchetes
9e&e ser un n8!ero entero positivo o e:presi$n entera
7/24/2019 7 Tradzxczuci Da
5/108
a ; s
c tiene 12elementos*c /0, c /1, ...c /11
lvalorde c /0 es -452003 Prentice Hall, Inc. Todos los derechos reservados.
7.3 Declaracin y Creacin de matrices 9eclarando y Creaci$n de !atrices
7/24/2019 7 Tradzxczuci Da
6/108
?as !atrices son o&@etos ue ocupan !e!oria
Creado din!ica!ente con lanuevapala&ra claveintc / ;neBint/12?ndice @ Balue @ n>8
14
15 anear el alor de cada elemento de la matri de :trin0 salida
1" or -intcontador = ,8contador Array.len0t8 contador
17de salida = contador >@ t> array ;contra< >@ n>8
1%
1*FetArea area:alida =ne6FetArea -8
2,outputArea.setet -salida8
21
22FGptionHane.so6#essa0eDialo0 -null+area:alida+
23 >La inicialiacin de un array con una declaracin>+
24 FGptionHane.I/GJ#AIGK#E::AE8
7/24/2019 7 Tradzxczuci Da
15/108
25
2":ystem.eit -,8
27
2%M in principal
2*
3,M in de la clase initArray
9eclarar !atri" co!o una !atri" de enteros
Co!pilador utili"a lista de iniciali"aci$n para asi+nar array
2003 Prentice Hall, Inc.
Todos los derechos reservados.
ContornoInitArray.@ava
Cada ele!ento de la !atri" corresponde a los ele!entos de lista de iniciali"aci$n
7/24/2019 7 Tradzxczuci Da
16/108
Cada ele!ento de la !atri" corresponde a los ele!entos de lista de iniciali"aci$n
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.4 Ejemplos de uso de Arrays -Cont. Clculo del valor a al!acenar en cada ele!ento de la!atri" Iniciali"ar ele!entos de 10-ele!ento de la !atri" incluso a
n8!eros enteros2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
InitArray.@ava
?nea 10
9eclarar !atri" co!o una !atri" de enteros
7/24/2019 7 Tradzxczuci Da
17/108
?nea 12Crear 10 enteros de !atri"
?nea 14
Etilice el ndice de !atri" para asi+nar valor de !atri"
1 /i0.7.4) InitArray.jaa
2 Inicialiar matri con los enteros pares de 2 a 2,.
3jaa.s6in0 importacin.8
4
5pu&lic classinitArray 9
"
7 static oid main-:trin0 ar0s ;
7/24/2019 7 Tradzxczuci Da
18/108
* inal intArrayKlen0t=1,8 constante
1, intarray ;
7/24/2019 7 Tradzxczuci Da
19/108
22
23FetArea area:alida =ne6FetArea -8
24outputArea.setet -salida8
25
9eclarar !atri" co!o una !atri" de enteros
Crear 10 enteros de !atri"
Etilice el ndice de !atri" para asi+nar valor de !atri"
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
InitArray.@ava2"FGptionHane.so6#essa0eDialo0 -null+area:alida+
27 >Iniciacin a los n'meros pares del 2 al 2,>+
2% FGptionHane.I/GJ#AIGK#E::AE8
7/24/2019 7 Tradzxczuci Da
20/108
2*
3,:ystem.eit -,8
31
32M in principal
33
34M in de la clase initArray
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.4 Ejemplos de uso de Arrays -Cont. 'esu!iendo los ele!entos de una !atri" ?os ele!entos de !atri" pueden representar una serie de valores
Pode!os resu!ir estos valores2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
7/24/2019 7 Tradzxczuci Da
21/108
Du!Array.@ava
?nea 6
9eclarar !atri" con lista de iniciali"aci$n
?neas 13-1
Du!e todos los valores de la !atri"
1 /i0.7.5) :umArray.jaa
2 otal de los alores de los elementos de una matri.
3jaa.s6in0 importacin.8
4
5pu&lic class:umArray 9
"
7 static oid main-:trin0 ar0s ;
7/24/2019 7 Tradzxczuci Da
22/108
%9
* intarray ;< = 91+ 2+ 3+ 4+ 5+ "+ 7+ %+ *+ 1,M8
1, =inttotales ,8
11
12 a0re0ar el alor de cada elemento con el total
13 or -intcontador = ,8contador Array.len0t8 contador
14totales = array ;contra
7/24/2019 7 Tradzxczuci Da
23/108
21:ystem.eit -,8
22
23M in principal
24
25M in de la clase :umArray
9eclarar !atri" con lista de iniciali"aci$n
Du!e todos los valores de la !atri"
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.4 Ejemplos de uso de Arrays -Cont. Eso de histo+ra!as hacen !atri" de datos de
visuali"aci$n +r(ica Histo+ra!a
Tra"ar cada valor nu!rico co!o &ar de asteriscos *
7/24/2019 7 Tradzxczuci Da
24/108
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Histo+ra!.@ava
?nea 6
9eclarar !atri" con lista de iniciali"aci$n
?nea 16
Para cada ele!ento de la !atri", i!pri!ir el n8!ero de asteriscos asociado
1 /i0.7.") Nisto0ram.jaa
2pro0rama de impresin isto0rama.
3jaa.s6in0 importacin. 8
4
7/24/2019 7 Tradzxczuci Da
25/108
5pu&lic classisto0rama 9
"
7 static oid main-:trin0 ar0s ;
7/24/2019 7 Tradzxczuci Da
26/108
1% or -intestrellas = ,8estrellas array ;Contador>8
2,
21M in eterior para
22
23FetArea area:alida =ne6FetArea -8
24outputArea.setet -salida8
25
9eclarar !atri" con lista de iniciali"aci$n
Para cada ele!ento de la !atri", i!pri!ir el n8!ero de asteriscos asociado
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Histo+ra!.@ava
7/24/2019 7 Tradzxczuci Da
27/108
24JptionPane.shoBKessa+e9ialo+ *null,areaDalida,
27 LPro+ra!a de histo+ra!a de i!presi$nL, JptionPane.I)MJ'KATIJ)NKDDA%@ t> recuencia ;caliicacin< >@ n>8
24
25FetArea area:alida =ne6FetArea -8
2"outputArea.setet -salida8
27
7/24/2019 7 Tradzxczuci Da
35/108
9eclarar respuestas co!o !atri" para al!acenar 0 respuestas
9eclarar (recuencia co!o un array de 11 int e i+norar el pri!er ele!entoPara cada respuesta, los valores de (recuencia de incre!ento en el ndice asociados con esa respuesta
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
DtudentPoll.@ava
2%FGptionHane.so6#essa0eDialo0 -null+area:alida+
2* >Hro0rama de Estudiantes Holl>+FGptionHane.I/GJ#AIGK#E::AE8
3,
31:ystem.eit -,8
32
33M in principal
34
7/24/2019 7 Tradzxczuci Da
36/108
35M in de la clase :tudentHoll
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.4 Ejemplos de uso de Arrays -Cont. Al+unos puntos adicionales Cuando &ucle a travs de una !atri"
ndice nunca de&e ir por de&a@o de 0
ndice de&e ser !enor ue el n8!ero total de ele!entos de la
!atri"
Cuando se produce la re(erencia de !atri" no vlido
ava +eneraArrayInde:JutJ(Qounds:ception
Captulo 1 discute el !ane@o de e:cepciones2003 Prentice Hall, Inc. Todos los derechos reservados.
7.5 Las reerencias y par!metros de reerencia 9os (or!as de pasar ar+u!entos a los !todos
7/24/2019 7 Tradzxczuci Da
37/108
Pasar por valor
Copia delvalor delar+u!ento>s se pasa al lla!ado !todo n ava, cada pri!itiva es el paso por valor
Pasar por re(erencia
?la!ador da lla!ado !todo de acceso directo a los datos deuien
lla!as
Ktodo lla!ado puede !anipular estos datos
'endi!iento !e@orado con respecto paso por valor
n ava, cada o&@eto es el paso por re(erencia
n ava, los arrays son o&@etos
Por lo tanto, las !atrices se pasan a los !todos dere(erencia
2003 Prentice Hall, Inc. Todos los derechos reservados.
7." pasar matrices a los #$todos
7/24/2019 7 Tradzxczuci Da
38/108
Para pasar ar+u!ento de !atri" a un !todo
speci(icar no!&re de la !atri" sin parntesis HourlyTe!peratures!atri"se declara co!o
inthourlyTe!peratures ;neBint/2
7/24/2019 7 Tradzxczuci Da
39/108
?nea 2
Pase !atri" por re(erencia al !todo !odi(icarArre+lo
1 /i0.7.*) HassArray.jaa
2 Hasando matrices y elementos indiiduales del arre0lo a m$todos.
Faa.a6t.Container 3de importacin8
4jaa.s6in0 importacin. 8
5
"Hassarrayclase p'&licase etiendeFApplet 9
7
% inicialiar su&pro0rama
* pu&lic oidinit -
1,9
11FetArea area:alida =ne6FetArea -8
7/24/2019 7 Tradzxczuci Da
40/108
12Container contenedor = 0etContentHane -8
13contenedor.add -area:alida8
14
15 intarray ;< = 91+ 2+ 3+ 4+ 5M8
1"
17:trin0 salida =>Eectos de pasar toda matri por reerencia) @ n>
1% >Los alores de la matri ori0inal son) @ n>8
1*
2, aPadir elementos de la matri ori0inales al :trin0 salida
21 or -intcontador = ,8contador Array.len0t8 contador
22de salida =>> array ;contra
7/24/2019 7 Tradzxczuci Da
41/108
25
2"de salida =>@ n @ nLos alores de la matri modiicada son) @ n>8
27
9eclarar -int array con lista de iniciali"aci$n
Pase !atri" por re(erencia al !todo !odi(icarArre+lo
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
PassArray.@ava
?nea 3
Pasar array /3 por valor de !todo !odi(yle!ent
?neas 3-7
7/24/2019 7 Tradzxczuci Da
42/108
Ktodo !odi(icarArre+lo !anipula la !atri" directa!ente
?neas 0-3
Ktodo !odi(yle!ent !anipula la copia de una pri!itiva
?neas 2
l pri!itivo ori+inal se ueda sin !odi(icar
2% A0re0ar modiicado elementos de la matri a :trin0 salida
2* or -intcontador = ,8contador Array.len0t8 contador
3,de salida =>> array ;contra@ n @ nEects de pasar elemento de la matri por alor) @ n>
33 >Array ;3< antes modiyElement)> array ;3
7/24/2019 7 Tradzxczuci Da
43/108
35modiyElement -array ;3
7/24/2019 7 Tradzxczuci Da
44/108
4%
4* ar0umento multiplicar por 2
5, pu&lic oidmodiyElement -intelemento
519
52elemento =28
53M
54
55M in de la clase Hassarray
Pasar array /3 por valor de !todo !odi(yle!ent
Ktodo !odi(icarArre+lo !anipula la !atri" directa!ente
Ktodo !odi(yle!ent !anipula la copia de una pri!itival pri!itivo ori+inal se ueda sin !odi(icar
2003 Prentice Hall, Inc.
Todos los derechos reservados.
7/24/2019 7 Tradzxczuci Da
45/108
Contorno
PassArray.@ava
l o&@eto pasado por re(erencia es !odi(icado
l valor pasado por pri!itivo es sin !odi(icar
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.7 Las matrices de clasiicacin Jrdenaci$n de datos Intensa investi+aci$n Atrados en ca!po de la co!putaci$n en laciencia
Jrdena!iento de &ur&u@a
Kenor valores
L&ur&u@aL a su !anera al principio de la serie ?os valores !s altosLhundenL a a&a@o de la !atri"
Etilice &ucles anidados ue hacer varias pasadas a travs de !atri"
Cada pase co!para pares sucesivos de ele!entos
7/24/2019 7 Tradzxczuci Da
46/108
?as pare@as se de@an @unto si orden creciente *o i+ual
?as pare@as se interca!&ian si decreciente2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Qu&&leDort.@ava
?nea 1
9eclarar 10-int array con lista de iniciali"aci$n
?nea 23
Pase !atri" por re(erencia al !todo de &ur&u@a para ordenar array
1 /i0.7.1,) Qu&&le:ort.jaa
2 Grdena los alores de una matri en orden ascendente.
7/24/2019 7 Tradzxczuci Da
47/108
3importjaa.a6t. 8
4jaa.s6in0 importacin.8
5
"pu&lic classQu&&le:ortetiendeFApplet 9
7
% inicialiar su&pro0rama
* pu&lic oidinit -
1,9
11FetArea area:alida =ne6FetArea -8
12Container contenedor = 0etContentHane -8
13contenedor.add -area:alida8
14
15 intarray ;< = 92+ "+ 4+ %+ 1,+ 12+ %*+ "%+ 45+ 37M8
7/24/2019 7 Tradzxczuci Da
48/108
1"
17:trin0 salida =
>Los elementos de datos ordenados de modo ori0inal @ n>8
1%
1* anear alores de matri ori0inales al :trin0 salida
2, or -intcontador = ,8contador Array.len0t8 contador
21de salida =>> array ;contra@ n @ DAA artOculos en orden ascendente @ n>8
2"
9eclarar 10-int array con lista de iniciali"aci$n
Pase !atri" por re(erencia al !todo de &ur&u@a para ordenar array
7/24/2019 7 Tradzxczuci Da
49/108
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Qu&&leDort.@ava
?nea 34
Ktodo Qu&&leDort reci&e re(erencia a un array co!o par!etro
?neas 36-3
Etilice &ucle y &ucle anidado para hacer pasadas a travs de !atri"
?neas 5-6
Di los pares son, en orden decreciente, invocar el !todo de interca!&io para interca!&iar pare@as
27 A0re0ar ordenados @ alores de matri a :trin0 salida
7/24/2019 7 Tradzxczuci Da
50/108
2% or -intcontador = ,8contador Array.len0t8 contador
2*de salida =>> array ;contra
7/24/2019 7 Tradzxczuci Da
51/108
41 &ucle para controlar el n'mero de comparaciones
42 or -intelemento = ,8
43elemento array2.len0t R18
44elemento 9
45
4" comparar lado a lado los elementos y cam&iarlos si
47 primer elemento es mayor (ue el se0undo elemento
4% si-array2 ;elemento
7/24/2019 7 Tradzxczuci Da
52/108
54
55M in del m$todo Qu&&le:ort
Ktodo Qu&&leDort reci&e re(erencia a un array co!o par!etro
Etilice &ucle y &ucle anidado para hacer pasadas a travs de !atri"
Di los pares son, en orden decreciente, invocar el !todo de interca!&io para interca!&iar pare@as
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
Qu&&leDort.@ava
?neas 5-4
Ktodo de interca!&io interca!&ia dos valores de re(erencia de !atri"
5"
57 canje de dos elementos de una matri
7/24/2019 7 Tradzxczuci Da
53/108
5% pu&lic oids6ap -intarray3 ;
7/24/2019 7 Tradzxczuci Da
54/108
7.% #atrices de &'s(ueda) lineal &'s(ueda y &inario
de &'s(ueda Q8sueda ncontrar ele!entos en +randes cantidades de datos
9eter!inar si la !atri" contiene valorvalor clavecoincidente
Q8sueda ?ineal
Q8sueda &inaria2003 Prentice Hall, Inc. Todos los derechos reservados.
7.% #atrices de &'s(ueda) lineal &'s(ueda y &inariode &'s(ueda -Cont.
?a &8sueda lineal Co!pare cada ele!ento de la !atri" conclave de bsqueda
Di la clave de &8sueda encontrado, devolver el ndice de ele!ento
7/24/2019 7 Tradzxczuci Da
55/108
Di no se encuentra la clave de &8sueda, vuelta-1*ndice no
vlido
Munciona !e@or para las !atrices peue#as o sin ordenar
Ine(iciente para !atrices !s +randes
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno?inearDearch.@ava
?nea 11
9eclarar array de enteros
1 /i0.7.11) Linear:earc.jaa
2&'s(ueda lineal de una matri.
3importjaa.a6t. 8
7/24/2019 7 Tradzxczuci Da
56/108
4jaa.a6t.eent importacin.8
5jaa.s6in0 importacin. 8
"
7pu&lic classLinear:earcetiendeFAppletimplementaActionListener 9
%
*FLa&el enterLa&el+ resultLa&el8
1,Fet/ield campoIntroducir+ result/ield8
11 intarray ;
7/24/2019 7 Tradzxczuci Da
57/108
17Container contenedor = 0etContentHane -8
1%container.setLayout -ne6/lo6Layout -8
1*
2, coni0urar FLa&el y Fet/ield para la entrada del usuario
21enterLa&el =ne6FLa&el->Enter clae de &'s(ueda entero>8
22contenedor.add -enterLa&el8
23
24campoIntroducir =ne6Fet/ield -1,8
25contenedor.add -campoIntroducir8
2"
27 re0istrar este applet como oyente de accin campoIntroducir
2%enter/ield.addActionListener-tis8
2*
7/24/2019 7 Tradzxczuci Da
58/108
9eclarar array de enteros
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
?inearDearch.@ava
?neas 36-2
Asi+nar 100 enteros de la !atri" y po&lar !atri" con ints incluso
?nea 0
'ecorrer array
?neas 3-
Di el ele!ento de !atri" en el ndice coincide conla clave de&8sueda,volver ndice
3, coni0urar FLa&el y Fet/ield para mostrar los resultados
7/24/2019 7 Tradzxczuci Da
59/108
31resultLa&el =ne6FLa&el ->Jesultado>8
32contenedor.add -resultLa&el8
33
34result/ield =ne6Fet/ield -2,8
35result/ield.setEdita&le-alse8
3"contenedor.add -result/ield8
37
3% crear matri y po&lar con enteros pares ,R1*%
3*Array =ne6 int;1,,
7/24/2019 7 Tradzxczuci Da
60/108
44M in del m$todo init
45
4" array &'s(ueda de alor clae especiicada
47 pu&lic intlinear:earc -intarray2 ;
7/24/2019 7 Tradzxczuci Da
61/108
57
5%M in del m$todo linear:earc
Crear 100 enteros de la !atri" y po&lar !atri" con ints incluso
'ecorrer array
Di el ele!ento de !atri" en el ndice coincide conla clave de&8sueda,volver ndice
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
?inearDearch.@ava
?nea 41
De invoca cuando el usuario pulsa Intro
7/24/2019 7 Tradzxczuci Da
62/108
?nea 45
Invoue el !todo linearDearch, utili"ando !atri" y clave co!o ar+u!entos &uscar
5*
", o&tener la entrada del usuario y llamar al m$todo linear:earc
"1 pu&lic oidactionHerormed -ActionEent ActionEent
"29
"3 entrada tam&i$n se puede o&tener con enter/ield.0etet -
"4Cadena :earcTey = actionEent.0etActionCommand -8
"5
"" pase reerencia de matri a linear:earc8ormalmente+ una reerencia a una
"7 matri se pasa a un m$todo para &uscar o&jeto de matri correspondiente
"% intelemento = linear:earc -array+ Inte0er.parseInt -:earcTey8
"*
7/24/2019 7 Tradzxczuci Da
63/108
7, pantalla de resultados de &'s(ueda
71 si-elementoU = R1
72result/ield.setet->alor encontrado en el elemento> elemento8
73 m!s
74result/ield.setet->Balor no encontrado>8
75
7"M m$todo actionHerormed
77
7%M in de la clase Linear:earc
De invoca cuando el usuario pulsa Intro
Invoue el !todo linearDearch, utili"ando !atri" y clave co!o ar+u!entos &uscar2003 Prentice Hall, Inc. Todos los derechos reservados.
7.% #atrices de &'s(ueda) lineal &'s(ueda y &inariode &'s(ueda -Cont.
7/24/2019 7 Tradzxczuci Da
64/108
Q8sueda &inaria (ica" para +randes, arrays ordenados
li!ina !edio de los ele!entos de &8sueda a travs de cadapasada
Co!parar ele!ento de la !atri" !edio para &uscar clave
Di el ele!ento es i+ual a la tecla
ndice de !atri" Oolver
Di el ele!ento es !enor ue la tecla
'epetir la &8sueda en la pri!era !itad de la !atri"
Di el ele!ento es !ayor ue la tecla
'epetir la &8sueda en la se+unda !itad de la !atri" De+uir &uscando hasta
ele!ento es i+ual a la clave de &8sueda *:ito
7/24/2019 7 Tradzxczuci Da
65/108
Quscar contiene un ele!ento no es i+ual a la clave *(allo
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
QinaryDearch.@ava
?nea 19eclarar array de enteros
1 /i0.7.12) Qinary:earc.jaa
2 La &'s(ueda &inaria de una matri.
3importjaa.a6t. 8
4jaa.a6t.eent importacin.8
5jaa.tet importacin.8
"
7/24/2019 7 Tradzxczuci Da
66/108
7jaa.s6in0 importacin. 8
%
*pu&lic classQinary:earcetiendeFAppletimplementaActionListener 9
1,FLa&el enterLa&el+ resultLa&el8
11Fet/ield campoIntroducir+ result/ield8
12salida FetArea8
13
14 intarray ;>8
1"
17 coni0urar I del applet de
1% pu&lic oidinit -
1*9
7/24/2019 7 Tradzxczuci Da
67/108
2, o&tener panel de contenido y esta&lecer su distri&ucin a /lo6Layout
21Container contenedor = 0etContentHane -8
22container.setLayout -ne6/lo6Layout -8
23
24 coni0urar FLa&el y Fet/ield para la entrada del usuario
25enterLa&el =ne6FLa&el->Enter clae de &'s(ueda entero>8
2"contenedor.add -enterLa&el8
27
2%campoIntroducir =ne6Fet/ield -1,8
2*contenedor.add -campoIntroducir8
3,
9eclarar array de enteros
7/24/2019 7 Tradzxczuci Da
68/108
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
QinaryDearch.@ava
?neas 5-1
Asi+nar 1 enteros de !atri" y po&lar !atri" con ints incluso
?nea 4
De invoca cuando el usuario pulsa Intro
31 re0istrar este applet como oyente de accin campoIntroducir
32enter/ield.addActionListener-tis8
33
34 coni0urar FLa&el y Fet/ield para mostrar los resultados
7/24/2019 7 Tradzxczuci Da
69/108
35resultLa&el =ne6FLa&el ->Jesultado>8
3"contenedor.add -resultLa&el8
37
3%result/ield =ne6Fet/ield -2,8
3*result/ield.setEdita&le-alse8
4,contenedor.add -result/ield8
41
42 esta&lecer FetArea para mostrar los datos de comparacin
43de salida =ne6FetArea -"+ ",8
44output.set/ont -nuea/uente ->#onospaced>+/ontLLAG+ 12.8
45contenedor.add -salida8
4"
47 crear matri y llenar con enteros pares entre , y 2%
7/24/2019 7 Tradzxczuci Da
70/108
4%Array =ne6int;15
7/24/2019 7 Tradzxczuci Da
71/108
Asi+nar 1 enteros de !atri" y po&lar !atri" con ints incluso
De invoca cuando el usuario pulsa Intro
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
QinaryDearch.@ava
?nea 4Invoue el !todo &inaryDearch, utili"ando !atri" y clave co!o ar+u!entos &uscar
"1 inicialiar cadena de presentacin para una nuea &'s(ueda
"2display =>Al0unas partes de matri &usc @ n>8
"3
"4 realia una &'s(ueda &inaria
"5 intelemento = &inary:earc -array+ Inte0er.parseInt -:earcTey8
""
7/24/2019 7 Tradzxczuci Da
72/108
"7output.setet -pantalla8
"%
"* pantalla de resultados de &'s(ueda
7, si-elementoU = R1
71result/ield.setet->alor encontrado en el elemento> elemento8
72 m!s
73result/ield.setet->Balor no encontrado>8
74
75M in del m$todo actionHerormed
7"
77 m$todo para realiar la &'s(ueda &inaria de una matri
7% pu&lic int&inary:earc -intarray2 ;
7/24/2019 7 Tradzxczuci Da
73/108
%, = &ajosint,8 &ajo Ondice elemento
%1 intAlta = array2.len0t R 18 alto Ondice elemento
%2 intmedia8 Ondice de elemento medio
%3
%4 &ucle asta &ajo Ondice es mayor (ue alto Ondice
%5 mientras (ue-&ajo = alto 9
%"= media -&aja alto 28 determinar el Ondice medio
%7
%% pantalla su&conjunto de elementos de la matri utiliada en este
%* iteracin del &ucle de &'s(ueda &inaria
*,&uildGutput -array2+ &ajo+ medio+ alto8
Invoue el !todo &inaryDearch, utili"ando !atri" y clave co!o ar+u!entos &uscar
2003 Prentice Hall, Inc.
Todos los derechos reservados.
7/24/2019 7 Tradzxczuci Da
74/108
Contorno
QinaryDearch.@ava
?neas 63-6
Di el ele!ento de &8sueda partidos clave +a!a !edia, ndice de ele!ento de retorno
?neas 67-65
Di la clave de &8sueda es !enos de ele!ento de la !atri" !edia, repetir la &8sueda en la pri!era
!itad array?neas 101-102
Di la clave de &8sueda es !ayor ue ele!ento de (or!aci$n !edia, repetir la &8sueda en se+undo
!edio array
?neas 112-137
Ktodo !uestra la acu!ulaci$n de salida contenido de la !atri" ue se &usca
*1
*2 si partidos clae elemento medio+ deuele la posicin media
7/24/2019 7 Tradzxczuci Da
75/108
*3 si-array == tecla ;medio
7/24/2019 7 Tradzxczuci Da
76/108
1," retornoR18 Clae no encontrado
1,7
1,%M in del m$todo &inary:earc
1,*
/ila11, &uild de salida mostrando su&conjunto de elementos de la matri
111 en tr!mite
112 acOo&uildGutput -intarray3 ;
7/24/2019 7 Tradzxczuci Da
77/108
Di la clave de &8sueda es !ayor ue ele!ento de (or!aci$n !edia, repetir la &8sueda en se+undo
!edio array
Di la clave de &8sueda es !enos de ele!ento de la !atri" !edia, repetir la &8sueda en la pri!era
!itad array
Ktodo &uildJutput !uestra contenido de la !atri" ue se &usca
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
QinaryDearch.@ava
?nea 125
Kostrar un asterisco al lado de ele!ento !edio
117 &ucle a tra$s de elementos de la matri
11% or -intcontador = ,8contador array3.len0t8 contador 9
7/24/2019 7 Tradzxczuci Da
78/108
11*
12, si el contador uera su&conjunto matri actual+ anee
121 espacios de relleno a la pantalla de Cuerdas
122 si-contador &ajo mostrador VVS alto
123pantalla =>>8
124
125 si elemento medio+ a0re0ue elemento a la pantalla de Cuerdas
12" se0uido de asterisco - para indicar elemento medio
127 else i -contador== medio
12%pantalla = t6oDi0its.ormat -array3 ;contra>8
12*
13, m!s A0re0ar elemento a la pantalla de Cuerdas
131pantalla = t6oDi0its.ormat -array3 ;contra>8
7/24/2019 7 Tradzxczuci Da
79/108
132
133M in de
134
135pantalla =>@ n>8
13"
137M in del m$todo &uildGutput
13%
13*M in de la clase Qinary:earc
Kostrar un asterisco al lado de ele!ento !edio
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
QinaryDearch.@ava
2003 Prentice Hall, Inc. Todos los derechos reservados.
7/24/2019 7 Tradzxczuci Da
80/108
7.* Las matrices multidimensionales ?as !atrices !ultidi!ensionales ?as ta&las con (ilas y colu!nas
Katri" &idi!ensional
9eclarando !atri" &idi!ensional& /2 /2
int& / / ; FF1, 2G, F3, GGLos alores de matri1 por ila son @ n>8
2,&uildGutput -matri18
21
22outputArea.append->@ nBalues en array2 por ila son @ n>8
23&uildGutput -array28
24
25M in del m$todo init
2"
9eclarar !atri"1 con seis iniciali"adores en dos su&listas
9eclarar array2 con seis iniciali"adores en tres su&listas
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
7/24/2019 7 Tradzxczuci Da
86/108
InitArray.@ava
?nea 3
array /(ila .len+th devuelve el n8!ero de colu!nas asociadas con la (ila su&ndice
?nea 3
Etilice la notaci$n de do&le soporte para acceder a dos di!ensiones valores de !atri"27 anear ilas y columnas de una matri para area:alida
2% pu&lic oid&uildGutput -intarray ;< ;
7/24/2019 7 Tradzxczuci Da
87/108
34 or -intcolumna = ,8columna array ;ila< .len0t8 columna
35outputArea.append -array ;ila< ;columna< >>8
3"
37outputArea.append->@ n>8
3%M
3*
4,M in del m$todo &uildGutput
41
42M in de la clase initArray
Etilice la notaci$n de do&le soporte para acceder a dos di!ensiones valores de !atri"
array /(ila .len+th devuelve el n8!ero de colu!nas asociadas con la (ila su&ndice
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
7/24/2019 7 Tradzxczuci Da
88/108
9ou&leArray.@ava
?neas 7-6
9eclarar +rados co!o 3-por- !atri"
?neas 7-6
Cada (ila representa un estudiante
7/24/2019 7 Tradzxczuci Da
89/108
7 0radosint;< ;< = 9977+ "%+ %"+ 73M+
%9*"+%7+ %*+ %1M+
*97,+*,+ %"+ %1MM8
1,
11 intestudiantes+ e!menes8
12:trin0 salida8
13FetArea area:alida8
14
15 inicialiar campos
1" pu&lic oidinit -
179
1%estudiantes = 0rades.len0t8 n'mero de estudiantes
1*e!menes = 0rados ;,
7/24/2019 7 Tradzxczuci Da
90/108
2,
21 crear FetArea y adjuntar a applet de
22area:alida =ne6FetArea -8
23Container contenedor = 0etContentHane -8
24contenedor.add -area:alida8
25
9eclarar +rados co!o 3-por- !atri"
Cada (ila representa un estudiante
7/24/2019 7 Tradzxczuci Da
91/108
9eter!ine !ni!o y !:i!o para todos los estudiantes
?neas 3-37
9eter!inar la !edia para cada estudiante
Cadena de salida2" &uild
27salida =>La matri es) @ n>8
2%&uild:trin0 -8
2*
3, llamar a m$todos mOnimo y m!imo
31de salida =>@ n @ 0rado nLo6est)> mOnimo -
32 >@ Ni0est 0rado)> m!imo - >@ n>8
33
34 llamada al m$todo promedio para calcular la media de cada estudiante
7/24/2019 7 Tradzxczuci Da
92/108
35 or -intcontador = ,8contador estudiantes8 contador
3"de salida =>@ nAera0e para el estudiante> contador >es>
37promedio -0rados ;contra#onospaced>+/ontLLAG+ 12.8
41
42 cadena de salida en lu0ar area:alida
43outputArea.setet -salida8
44
45M in del m$todo init
4"
47 encuentran caliicacin mOnima
7/24/2019 7 Tradzxczuci Da
93/108
4% pu&lic intmOnimo -
4*9
5, asume primer elemento del arre0lo caliicaciones es m!s pe(uePo
51 int&ajo 0rado = 0rados ;,< ;,
7/24/2019 7 Tradzxczuci Da
94/108
?neas 7-51
Etilice un &ucle anidado para &uscar +rado !s alto en la serie
53 &ucle a tra$s de ilas de arre0lo caliicaciones
54 or -intila = ,8ila estudiantes8 ila
55
5" &ucle a tra$s de las columnas de la ila actual
57 or -intcolumna = ,8columna e!menes8 columna
5%
5* si la caliicacin es menos de &ajo 0rado+ asi0narlo a &ajo 0rado
", si-0rados ;ila< ;columna< &ajo 0rado
"1&ajo 0rado = 0rados ;ila< ;columna
7/24/2019 7 Tradzxczuci Da
95/108
"3 oler&ajo 0rado8 deuele 0rado m!s &ajo
"4
"5M m$todo mOnimo inal
""
"7 encontramos m!imo 0rado
"% pu&lic intm!imo -
"*9
7, asume primer elemento del arre0lo caliicaciones es m!s 0rande
71 intNi00rade = 0rados ;,< ;,
7/24/2019 7 Tradzxczuci Da
96/108
7" &ucle a tra$s de las columnas de la ila actual
77 or -intcolumna = ,8columna e!menes8 columna
7%
7* si la caliicacin es mayor (ue Ni00rade+ asi0narlo a Ni00rade
%, si-0rados ;ila< ;columna
7/24/2019 7 Tradzxczuci Da
97/108
Pro!edio !todo to!a +a!a de resultados de los e:!enes co!o par!etro
?neas 63-6
Calcular la su!a de los ele!entos de !atri"
?nea 67
9ividido por el n8!ero de ele!entos para o&tener la !edia%2
%3 olerNi00rade8 deuele 0rado m!s alto
%4
%5M in del m$todo de m!ima
%"
%7 determinar el 0rado promedio para todo estudiante -o conjunto de 0rados
%% promediodo&le p'&lica -intsetGrades ;
7/24/2019 7 Tradzxczuci Da
98/108
%*9
*, intotal = ,8 inicialiar totales
*1
rados*2 suma de un estudiante
*3 or -intcuenta = ,8contar setGrades.len0t8 count
*4en total = setGrades ;count
7/24/2019 7 Tradzxczuci Da
99/108
1,2 p'&lica&uild:trin0oid-
1,39
1,4de salida =>>8 utiliada para alinear las ca&eas de las columnas
1,5
1," crear ca&eas de columna
1,7 or -intcontador = ,8contador e!menes8 contador
1,%de salida =>;> contador >8
Pro!edio !todo to!a +a!a de resultados de los e:!enes co!o par!etro
Calcular la su!a de los ele!entos de !atri"
9ividido por el n8!ero de ele!entos para o&tener la !edia
2003 Prentice Hall, Inc.
Todos los derechos reservados.
Contorno
9ou&leArray.@ava
7/24/2019 7 Tradzxczuci Da
100/108
1,*
11, crear ilas columnas de teto (ue representa los 0rados de matri
111 or -intila = ,8ila estudiantes8 ila 9
112de salida =>@ n0rades ;> remar >8
113
114 or -intcolumna = ,8columna e!menes8 columna
115de salida = 0rados ;ila< ;columna< >>8
11"M
117
11%M in del m$todo &uild:trin0
11*
12,M in de la clase Dou&leArray
2003 Prentice Hall, Inc. Todos los derechos reservados.
7/24/2019 7 Tradzxczuci Da
101/108
7+1, -Ejemplo pr!ctico opcional Acerca de loso&jetos) Cola&oracin entre o&jetos
Cola&oraciones Cuando los o&@etos se co!unican para reali"ar tareas
Cu!plida invocando operaciones *!todos
En o&@eto enva un mensaje a otro o&@eto
n 4.1, se e:tra@eron las (rases ver&ales del enunciado delpro&le!a
Oer& co!porta!ientos (rases e:hi&ici$n de clases
Ll ascensor se resta&lece el &ot$n L
Ascensor o&@eto enva !ensa@e resetQutton al o&@etolevatorQutton
Ascensor cola&ora con levatorQutton
7/24/2019 7 Tradzxczuci Da
102/108
2003 Prentice Hall, Inc. Todos los derechos reservados.
2003 Prentice Hall, Inc. Todos los derechos reservados.
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.1, Acerca de los o&jetos -cont. 9ia+ra!a de cola&oraci$n *EK? Tipo de diagrama de interaccin
l otro es el diagrama de secuencia , discutido en el Captulo 14 Kodelos cola&oraciones en siste!a
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.1, Acerca de los o&jetos -cont. )otaci$n Cola&oraci$n dia+ra!a ?os o&@etos se escri&en en (or!a o&@ect)a!e )o!&reClase
Indi(erencia JQCT)AK s$lo cuando est preocupado por
clase
7/24/2019 7 Tradzxczuci Da
103/108
?as lneas continuas conectan cola&orar o&@etos
?as (lechas representan los !ensa@es
Indica la direccin de la cola&oraci$n
Puntos para recepci$n de !ensa@es o&@eto
Puede ser i!ple!entado co!o !todos * llamadas sncronas en
ava
)o!&res de !ensa@es aparecen @unto a las (lechas2003 Prentice Hall, Inc. Todos los derechos reservados.
/i0.Dia0rama 7.1% Cola&oracin de una persona apretando un &otn del piso.
presiona el &ot$n *
MloorQutton
Persona2003 Prentice Hall, Inc. Todos los derechos reservados.
7.1, Acerca de los o&jetos -cont.
7/24/2019 7 Tradzxczuci Da
104/108
Cola&oraci$n-dia+ra!a desecuencia de mensajes Kuestra en u orden los o&@etos envan !ensa@es
Para dia+ra!as de !odelado varias cola&oraciones
Avan"a en orden nu!rico
Kenor a !ayor
?a nu!eraci$n co!ien"a con el !ensa@e 1
Di+ue una estructura anidada Kensa@e 1.1 esprimer mensaje anidado en 1 !ensa@e
Kensa@e 3.2 es elsegundo mensaje anidado en el !ensa@e 3
Kensa@e se puede pasar s$lo cuando se han apro&ado todos los
!ensa@es anidados de !ensa@e anterior2003 Prentice Hall, Inc. Todos los derechos reservados.
/i0.Dia0rama 7.1* Cola&oracin para los pasajeros (ue salen y entran en el ascensor.
Ascensor
7/24/2019 7 Tradzxczuci Da
105/108
?u"
MloorQutton
levatorDha(t
Persona
levator9oor
levatorQutton
Ca!pana
Mloor9oor
pasa@eros Persona3.1.1 doorJpened *
.2 turnJn?i+ht *
.1 resetQutton *
3.2.1 e:itlevator *
3.1.1.1 enterlevator *
elevatorArrived *3.1 Jpen9oor *
3.2 doorJpened *
3 Jpen9oor *
7/24/2019 7 Tradzxczuci Da
106/108
1 resetQutton *
2 rin+Qell *
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.1, Acerca de los o&jetos -cont. Cola&oraciones en la Mi+.7.16 Kensa@e 1 Ascensor enva resetQutton a levatorQutton
Kensa@e 2 Ascensor enva rin+Qell Qell
Kensa@e 3 Ascensor enva Jpen9oor a levator9oor
Kensa@e 3.1 levator9oor enva Jpen9oor a Mloor9oor
Kensa@e 3.1.1 Mloor9oor enva doorJpened a Baitin+Passen+er
7/24/2019 7 Tradzxczuci Da
107/108
Kensa@e 3.1.1.1 Baitin+Passen+er enva enterlevator a Ascensor
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.1, Acerca de los o&jetos -cont. Cola&oraciones en la Mi+. 7.20 *continuaci$n Kensa@e 3.2
levator9oor enva doorJpened a ridin+Passen+er Kensa@e 3.2.1
Persona enva e:itlevator a Ascensor
Kensa@e
Ascensor enva elevatorArrived a levatorDha(t
Kensa@e .1
levatorDha(t enva resetQutton a MloorQutton
Kensa@e .2
7/24/2019 7 Tradzxczuci Da
108/108
levatorDha(t enva turnJn?i+ht a la ?u"
2003 Prentice Hall, Inc. Todos los derechos reservados.
7.1, Acerca de los o&jetos -cont. 9esa(ortunada!ente, este dise#o tiene un pro&le!a Baitin+Passen+er entra Ascensor antes de salidas ridin+Passen+er
Mi@a!os este en la Decci$n 14.11
Kodi(ica!os este dia+ra!a en la Decci$n 11.6 *+esti$n de eventos