UNIVERSIDAD TÉCNICA DE AMBATO AMBATO
FACULTA FACULTAD DE INGENIERÍA INGENIER ÍA EN SISTEMAS, SISTEM AS, ELECTRONICA ELECTRO NICA E INDUSTRIAL INDUSTR IAL
TRABAJO DE PROGRAMACION
TEMA: “ARREGLOS DINAMICOS” DINAMICOS” AUTOR
: CHULDE PAÚL
DOCENTE
: ING. PATRICIO GONZALEZ
AMBATO - ECUADOR 2013
ARREGLOS DINAMICOS #$%&'$() $(),, m! apr !!*+) ) #$%&'$ #$%&'$() (),, $am En pro progra gramac mación ión,, un !!" #$%&' apropi opia"a a"am#n m#n$# $# %%a %%ama ma"o "o !!*+ $am&i' &i'n n %%ama"o inapropia"am#n$# ma$ri( "inmica o $a&%a "inmica, #! un arr#g%o "# #%#m#n$o! )u# cr#c# o m#ngua "inmicam#n$# con*orm# %o! #%#m#n$o! !# agr#gan o !# #%iminan. +# !umini!$ra como %i&r#ra!
#!$n"ar #n muc-o! %#ngua#! mo"#rno! "# programación. Un arr#g%o "inmico no #! %o mi!mo )u# un arr#g%o a!igna"o "inmicam#n$#, )u# #! un arr#g%o "# $ama/o *io, p#ro cu0o $ama/o !# *ia cuan"o !# a!igna por prim#ra 1#(. +ir1# #2c%u!i1am#n$# para r#a%i(ar arr#g%o! )u# no $i#n#n una "#*inición *ia por #n"# !u nom&r#. 3Dinmico4.
SINTAXIS
matriz =
var
Array();
new
D# #!$a *orma, -#mo! cr#a"o una ma$ri( 1aca )u# pu#"# con$#n#r un n5m#ro i%imi$a"o "# #%#m#n$o!, $an$o! como no! p#rmi$a #% !i!$#ma "on"# !# ##cu$a. La! ma$ric#! 1i#n#n a !#r como caa! )u# #n 1#( "# con$#n#r una !o%a co!a, con$i#n#n muc-a!, como !i pu"i'ramo! "i1i"ir %a caa #n compar$im#n$o! #n %o! cua%#! pu"i'ramo! ir "#po!i$an"o co!a!. A"#m!, po"#mo! cr#ar ma$ric#! con una 6"im#n!ión6, #! "#cir, )u# po"#mo! -ac#r )u# %a ma$ri( !# inici# con un n5m#ro "# #%#m#n$o! "#$#rmina"o: matriz =
var
Array(15);
new
Con #!$a in!$rucción, %o )u# -#mo! -#c-o #! cr#ar una ma$ri( "# )uinc# #%#m#n$o!. P#ro a-ora %o in$#r#!an$# #! !ar cómo %%amar a #!o! #%#m#n$o!, 0a )u# !i cr#amo! %a ma$ri(, p#ro no !amo! op#rar con #%%a, no !ir1# para muc-o, 7no8 La *orma "# acc#"#r a un #%#m#n$o "# %a ma$ri( #! %a !igui#n$#: Elemento = matriz [1];
En #!$# ##mp%o, %a 1aria&%# elemento con$#n"r #% 1a%or "#% #%#m#n$o 9 "# %a ma$ri(. E! %o )u# !# %%ama %#$(* "# %a ma$ri(, # i"#n$i*ica a cua%)ui#ra "# %o! #%#m#n$o! "# %a ma$ri(. Ha0 )u# *iar!# #n )u# u$i%i(amo! %o! corc-#$#! 6;6 para !#/a%ar un #%#m#n$o "# %a ma$ri(. E% prim#r #%#m#n$o "# %a ma$ri( #! #% "# n"ic# <=>, no #% "# n"ic# <9>. A!, para #% an$#rior ##mp%o "# una ma$ri( "# 9? #%#m#n$o!, #% 5%$imo #%#m#n$o po!i&%# #! #% 9@. D# %a mi!ma *orma, po"#mo! "ar un 1a%or a cua%)ui#ra "# %o! #%#m#n$o! "# %a ma$ri(: Matriz [5] = ‘hola’;
H#mo! a!igna"o #% 1a%or hola a% #%#m#n$o ? "# %a ma$ri(. Lo! #%#m#n$o! "# una ma$ri( pu#"#n
con$#n#r cua%)ui#r $ipo "# "a$o, 0 !# pu#"#n cam&iar #n cua%)ui#r par$# "#% programa, a% igua% )u# ocurr# con %a! 1aria&%#!. 7 !i )u#r#mo! !ar cun$o! "a$o! $#n#mo! #n %a ma$ri(8 Como "iimo! an$#!, %a! ma$ric#! !on o&#$o! "# $ipo Arra0, 0 %o! o&#$o! pu#"#n $#n#r a$ri&u$o! 3"a$o!4 0 *uncion#! 3có"igo4. E% a$ri&u$o )u# "#mo! u!ar con ma$ric#! #! *%+./: Longitud = matriz.length;
D# #!$a *orma, po"#mo! !ar cun$o! #%#m#n$o! $i#n# %a ma$ri(. R#cor"a" )u# como #% prim#r n"ic# #! <=>, #% 5%$imo #%#m#n$o !#r !i#mpr# matriz.length - 1 . +i n#c#!i$amo! )u# %a ma$ri( con$#nga m! #%#m#n$o!, po"#mo! r#"im#n!ionar %a ma$ri( ap%icn"o%# un nu#1o o&#$o "# ma$ri(: Matriz =
Array (longitud que queramos);
new
+in #m&argo, p#r"#r#mo! $o"o! %o! #%#m#n$o! )u# $u1i'ramo! an$#riorm#n$#.
EJEMPLO.class AEarregloDinamico{ /** * Este método me permite ampliar el tamaño de mi arreglo * debo tener en cuenta dos cosas muy importantes *1.- el arreglo k recibe este método no debe ser N!" *#.- el tamaño e$tra k recibe este método debe ser EN%E&"'(")%+", * *estos controles no es dicil implementarlo0 si no los implemento es para *k se ea la simplicidad de este método0 en especial para los noatos *para los e$pertos ya saben c2mo me3orarlo.
*/ public static Object45 ampliarArreglo6Object arreglo450int e$tra7{ //creo el arreglo con el tamaño original m8s el e$tra a ampliar Object nueo45 9 new Object 4arreglo.lengt:;e$tra5< //a:ora copiare los datos del ie3o arreglo al nueo or6int i 9
//antes de copiar eriico k no sea nulo pa eitar e$cepciones //si es nulo no necesito copiar0 lo de3o as i6arreglo4i5 >9 null7{ nueo4i5 9 arreglo4i5< ? ? //a:ora retorno el arreglo con tamaño e$tra y con los datos k contena antes return nueo< ? ?
* Este método me permite reducir el tamaño de mi arreglo * debo tener en cuenta tres cosas muy importantes *1.- el arreglo k recibe este método no debe ser N!" *#.- el tamaño a reducir k recibe este método debe ser EN%E&"'(")%+", * @ adem8s debe ser menor o igual al tamaño del arreglo ue recibe. *B.- se asume k el usuario es consiente k al utiliCar este método perder8 * !os ltimos datos del arreglo en la misma proporci2n k se especiica en e$tra *estos controles no es dicil implementarlo0 si no los implemento es para *k se ea la simplicidad de este método0 en especial para los noatos *para los e$pertos ya saben c2mo me3orarlo. public static Object45 reducirArreglo6Object arreglo450int e$tra7{ //creo el arreglo con el tamaño original menos el e$tra a reducir Object nueo45 9 new Object4arreglo.lengt:-e$tra5< //a:ora copiare los datos del ie3o arreglo al nueo or6int i 9 9 null7{ nueo4i5 9 arreglo4i5< ? ? //a:ora retorno el arreglo con tamaño e$tra reducido y con los datos k contena antes return nueo< ?
?
Bibliogra!a" :ttp//es.Fikipedia.org/Fiki/Array'dinGHBGA1mico :ttp//es.scribd.com/doc/B1IJ###/Arreglos-en-KA+A :ttp//ocF.utpl.edu.ec/sistemas-inormaticos-y-computacion/undamentos-de-la programacion/capituloL-arreglos.pd