+ All Categories
Home > Documents > 7 Tradzxczuci Da

7 Tradzxczuci Da

Date post: 20-Feb-2018
Category:
Upload: giiaan-tu-niniow
View: 212 times
Download: 0 times
Share this document with a friend

of 108

Transcript
  • 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


Recommended