Title | guia de ejercicios java resueltos |
---|---|
Author | Fernando Enriquez |
Pages | 161 |
File Size | 1.1 MB |
File Type | |
Total Downloads | 176 |
Total Views | 243 |
UNIVERSIDAD CATOLICA BOLIVIANA “SAN PABLO” FACULTAD DE CIENCIAS EXACTAS E INGENIERIA INGENIERIA DE SISTEMAS LA PAZ – BOLIVIA PROGRAMACION II GUIA DE JAVA + EJERCICIOS 2007 INTEGRANTES: OSSIO MARIN SERGIO WILLY PRUDENCIO ROBINSON ANDRES MAURICIO SALGADO FALLER IGNACIO VALDA SANCHEZ FREDDY SALVADOR DO...
UNIVERSIDAD CATOLICA BOLIVIANA “SAN PABLO” FACULTAD DE CIENCIAS EXACTAS E INGENIERIA
INGENIERIA DE SISTEMAS LA PAZ – BOLIVIA
PROGRAMACION II GUIA DE JAVA + EJERCICIOS 2007 INTEGRANTES: OSSIO MARIN SERGIO WILLY PRUDENCIO ROBINSON ANDRES MAURICIO SALGADO FALLER IGNACIO VALDA SANCHEZ FREDDY SALVADOR
DOCENTE: M.Sc . IRMA PRADO SEMESTRE I AÑO 2007
PROGRAMACION II
GUIA DE JAVA 2007
INDICE
INDICE....................................................................................................................1 PROLOGO .............................................................................................................2 INTRODUCCIÓN....................................................................................................3 Pro g ra ma c io n Orie nta d a a Ob je to s.............................................................4 Pa rtic ula rid a d e s d e Ja va ................................................................................5 El inte rp re te d e Ja va .......................................................................................8 Dife re nc ia s y similitud e s c o n C++ ................................................................11 Cla se s útile s.....................................................................................................16 Le ng ua je Ja va ................................................................................................19 EJERCICIOS RESUELTOS......................................................................................22 Se nte nc ia s Bá sic a s (Co nd ic io na le s, Aritme tic a s y Co nta d o re s)............22 PROBLEMAS PROPUESTOS..........................................................................28 Cic lo s y Se rie s..................................................................................................30 PROBLEMAS PROPUESTOS..........................................................................42 Func io ne s y e l uso d e la c la se Ma th ...........................................................44 PROBLEMAS PROPUESTOS..........................................................................57 Arre g lo s............................................................................................................59 Ap lic a c ió n d e ve c to re s – Pro g ra ma e sta d istic o ...................................83 PROBLEMAS PROPUESTOS..........................................................................89 Ma tric e s ...........................................................................................................91 Ap lic a c ió n d e Ma tric e s – Ca lc ulo s Ma tric ia le s ...................................115 Ap lic a c ió n d e ma tric e s – Inve rsio n d e Ma tric e s p o r Fa d d e vva .......123 PROBLEMAS PROPUESTOS........................................................................126 Re c ursivid a d ..................................................................................................129 PROBLEMAS PROPUESTOS........................................................................148 Eje rc ic io s c o n Grá fic o s................................................................................149 BIBLIOGRAFIA ....................................................................................................160
INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
1
PROGRAMACION II
GUIA DE JAVA 2007
PROLOGO Esta g uía fue re a liza d a p o r e stud ia nte s d e te rc e r se me stre d e Ing e nie ria d e Siste ma s d e la Unive rsid a d Ca to lic a Bo livia na c o n e l fin d e p ro p o rc io na r una he rra mie nta útil a to d o s lo s e stud ia nte s q ue e sté n c ursa nd o la ma te ria d e Pro g ra ma c io n II o q ue te ng a n a lg una d ific ulta d e n la p ro g ra ma c ió n e n Ja va o q ue simp le me nte d e se e n a mp lia r su c o no c imie nto e n e l te ma .
En e sta g uía e nc o ntra rá a p ro xima d a me nte 100 e je rc ic io s re sue lto s (p ro g ra ma s e n ja va ), c la sific a d o s e n d ife re nte s se c c io ne s. To d o s e sto s p ro g ra ma s func io na n c o rre c ta me nte
y fue ro n e je c uta d o s utiliza nd o
he rra mie nta Re a dy to Pro g ra m, d ip o nib le e n fo rma g ra tuita e n http :/ / www.sju.e d u/ ~p a rkinso / ja va to o ls/ re a d yto p ro g ra m.html
INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
2
la
PROGRAMACION II
GUIA DE JAVA 2007
INTRODUCCIÓN
En e l a ño 1991 na c ió Ja va c ua nd o e n Sun, una e mp re sa nue va , se p ro p usie ro n c re a r un nue vo
le ng ua je
d e stina d o
e n p rinc ip io
a
e le c tro d o mé stic o s, p o r lo ta nto , la p rime ra ve rsió n e ra un le ng ua je se nc illo c a p a z d e g e ne ra r c ó d ig o d e ta ma ño re d uc id o .
El c o ntinuo c a mb io e n la s c o mp uta d o ra s o b lig a b a a c a mb ia r lo s p ro g ra ma s c o ntinua me nte p o r lo q ue se p e nsó e n d e sa rro lla r una má q uina virtua l ind e p e nd ie nte q ue p o ste rio rme nte se d e no mina ria Ja va Virtua l Ma c hine (JVM) y e sto d io lug a r a l p rime r le ma d e Ja va "Write o nc e , Run Eve rywhe re ".
Evid e nte me nte , lo s e le c tro d o mé stic o s no e sta b a n inte re sa d o s e n Ja va , a sí q ue c o me nzó a intro d uc irse c o mo le ng ua je d e p ro g ra ma c ió n p a ra c o mp uta d o ra s a fina le s d e 1995, intro d uc ié nd o se c o mo una he rra mie nta ne c e sa ria , p ue sto q ue Ne tsc a p e Na vig a to r 2.0 la intro d ujo c o mo inté rp re te .
Se p ub lic ó Ja va 1.1 a p rinc ip io s d e 1997 y Ja va 1.2 a fina le s d e 1998 c o n una e vo luc ió n p ro d ig io sa d e 12 p a q ue te s inic ia le s, 23 p a q ue te s e n la ve rsió n 1.1 y 59 p a q ue te s e n la ve rsió n 1.2 ( d e no mina d a Ja va 2).
La c o mp a ñía Sun d e sc rib e a Ja va c o mo "simp le , o rie nta d o a o b je to s, d istrib uid o , inte rp re ta d o , ro b usto , se g uro , d e a rq uite c tura ne utra , p o rta b le , d e a lta s p re sta c io ne s, multita re a y d iná mic o ", y lo b ue no d e e sta d e finic ió n e s q ue
to d o
lo
q ue
d ic e , q ue
no
e s po c o , e s
a b so luta me nte c ie rto , a unq ue e n a lg uno s a sp e c to s me jo ra b le .
INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
3
PROGRAMACION II
GUIA DE JAVA 2007
Programacion Orientada a Objetos
La p rinc ip a l func ió n d e e ste tuto ria l no e s e nse ña r to d o s y c a d a uno d e lo s c o nc e p to s y p a rtic ula rid a d e s d e la p ro g ra ma c ió n d irig id a a o b je to s, a sí q ue simp le me nte se d a rá n a lg uno s c o nc e p to s q ue se d e b e n te ne r c la ro s p a ra c o me nza r.
La e struc tura g e ne ra l d e un p ro g ra ma o rie nta d o a o b je to s (POO), se e sp e c ific a e n una c la se p rinc ip a l q ue c o ntie ne n e l p ro g ra ma p rinc ip a l, (func ió n ma in()).
Una c la se e s una c o le c c io n d e va ria b le s y mé to d o s q ue ma ne ja n va ria b le s y e struc tura s d e d a to s. Se d e no mina n no rma lme nte d a to s y mé to d o s mie mb ro .
La POO se b a sa e n la p ro g ra ma c ió n d e c la se s. Una c la se c o nstituye un p a tró n o mo d e lo p a ra c re a r o b je to s. To d o s lo s o b je to s d e b e n p e rte ne c e r a una c la se d e te rmina d a y p o r lo ta nto se d ic e q ue to d o s lo s o b je to s d e b e n se r insta nc ia s d e una c la se , e s d e c ir, q ue lo s o b je to s fo rma n un c o nte xto d e c la se . Un o b je to e sta rá fo rma d o p o r la s va ria b le s y mé to d o s d e la c la se y se rá sie mp re d ife re nte d e o tro o b je to , a unq ue e ste p e rte ne zc a a la misma c la se . La s c la se s ta mb ié n p ue d e n inc luir va ria b le s sta tic q ue no fo rma rá n p a rte d e lo s o b je to s d e d ic ha c la se , sino d e la c la se e n sí, e sta s va ria b le s se d e no mina n va ria b le s d e c la se .
La he re nc ia e s o tro c o nc e p to imp o rta nte d e la POO, p e rmite d e finir nue va s c la se s b a sá nd o se e n c la se s ya e xiste nte s. Una c la se q ue se e xtie nde d e o tra , he re d a to d a s sus va ria b le s y to d o s sus mé to d o s. La c la se d e riva d a p ue d e a ña d ir nue va s va ria b le s y mé to d o s y re d e finir la s va ria b le s y mé to d o s he re d a d o s. En Ja va una c la se só lo p ue d e he re d a r d e o tra , e s lo q ue se d e no mina he re nc ia simp le . El último d e lo s c o nc e p to s c la ve s q ue se va n a p untua liza r a q uí e s e l p o limo rfismo , e l p o limo rfismo tie ne q ue ve r c o n la re la c ió n q ue se e sta b le c e INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
4
PROGRAMACION II
GUIA DE JAVA 2007
e ntre la lla ma d a a un mé to d o y e l c ó d ig o q ue e fe c tiva me nte se a so c ia c o n d ic ha lla ma d a . A e sta re la c ió n se lla ma vinc ula c ió n o b inding . La vinc ula c ió n p ue d e se r te mp ra na , e n tie mp o d e c o mp ila c ió n, o ta rd ía , e n tie mp o d e e je c uc ió n.
La vinc ula c ió n te mp ra na e s la má s e fic ie nte y e s la q ue se d a no rma lme nte c o n func io ne s no rma le s o so b re c a rg a d a s. La so b re c a rg a se
re fie re a la p o sib ilid a d d e te ne r d o s o má s func io ne s c o n e l mismo no mb re p e ro func io na lid a d d ife re nte . Es d e c ir, d o s o má s func io ne s c o n e l mismo no mb re re a liza n a c c io ne s d ife re nte s. El c o mp ila d o r usa rá una u o tra
d e p e nd ie nd o
de
lo s p a rá me tro s usa d o s. A e sto
se
lla ma
so b re c a rg a d e func io ne s. La vinc ula c ió n ta rd ía e s la q ue se utiliza c o n func io ne s re d e finid a s.
Ad e má s d e c la se s, Ja va p ro p o rc io na inte rfa c e s. Un inte rfa c e e s un c o njunto d e d e c la ra c io ne s d e mé to d o s. Si una c la se imp le me nta un inte rfa c e , d e b e d e finir to d a s la s func io ne s e sp e c ific a d a s e n é l. Una c la se p ue d e imp le me nta r ning ún, uno , o va rio s inte rfa c e s. Un inte rfa c e si so p o rta la he re nc ia múltip le d e va rio s inte rfa c e s.
Particularidades de Java A c o ntinua c ió n se e nunc ia n va ria s p a rtic ula rid a d e s d e Ja va , q ue se rvirá n a l p ro g ra ma d o r d e e ste le ng ua je a e nte nd e r me jo r la e struc tura p a ra c re a r un p ro g ra ma e n Ja va d e ma ne ra e xito sa . •
La sinta xis e s muy p a re c id a a C++ y la s p a la b ra s c la ve so n la s misma s e limina nd o a lg una s e n d e suso y a ña d ie nd o o tra s
•
p a ra re a liza r c o sa s c a ra c te rístic a s d e Ja va . En Ja va e s ha b itua l utiliza r no mb re s c o n minúsc ula s p a ra va ria b le s sie mp re y c ua nd o no se d e n a lg una s d e la s sig uie nte s situa c io ne s: o
El
no mb re
c o nsta
de
va ria s
p a la b ra s
y
no rma lme nte se p o ne una d e trá s d e o tra c o n la p rime ra le tra d e c a d a p a la b ra e n ma yúsc ula s: Ej. e lMa yo r. INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
5
PROGRAMACION II o
GUIA DE JAVA 2007 Lo s no mb re s d e c la se s e inte rfa c e s c o mie nza n sie mp re p o r ma yúsc ula s: Ej. Ge o me tría .
o
Lo s no mb re s d e o b je to s, mé to d o s, va ria b le s mie mb ro y va ria b le s lo c a le s d e lo s mé to d o s c o mie nza n sie mp re p o r minúsc ula .
o
Lo s
no mb re s
de
la s
va ria b le s
fina le s,
o
c o nsta nte s, se d e fine n sie mp re c o n ma yúsc ula s: Ej. PI. o
To d a s la s va ria b le s e n Ja va so n re fe re nc ia s y la utiliza c ió n d e la me mo ria a so c ia d a a é sta s y a lo s o b je to s q ue se ma ne ja n e s una func ió n d e l
•
re c o le c to r d e b a sura . Lo s fic he ro s d e c ó d ig o d e b e n te ne r la e xte nsió n ja va y te nd rá n e l mismo no mb re q ue la c la se p rinc ip a l q ue c o ntie ne n. Esto s fic he ro s p ue d e n c o nte ne r má s d e una c la se , p e ro só lo una d e e lla s se rá una c la se p úb lic a y se
• •
d e no mina c la se p rinc ip a l. Lo s fic he ro s ya c o mp ila d o s tie ne n la e xte nsió n c la ss y e xiste sie mp re un fic he ro d e e ste tip o p o r c la se . Una a p lic a c ió n e stá c o mp ue sta p o r uno o va rio s fic he ro s c la ss p e rmitie nd o a sí mo d ula riza r c a d a una d e la s p a rte s d e la a p lic a c ió n e n fic he ro s. La e je c uc ió n d e una a p lic a c ió n c o mie nza sie mp re p o r una c la se q ue c o ntie ne la func ió n
•
ma in() sin a ña d ir la e xte nsió n c la ss. En Ja va to d a s la s c la se s he re d a n, a unq ue no se e sp e c ifiq ue e xp líc ita me nte d e la c la se g e ne ra l Ob je c t q ue ha c e d e ra íz d e to d a la je ra rq uía d e c la se s d e Ja va . Lo s mé to d o s q ue d e fine la c la se o b je c t so n d e d o s c la se s, mé to d o s q ue se p ue d e n re d e finir p o r e l p ro g ra ma d o r, c lo ne (), e q ua ls(), to String (), fina lize () y mé to d o s q ue no p ue d e n se r re d e finid o s, so n mé to d o s fina l c o mo
g e tCla ss(), no tify(), no tifyAll()
a unq ue lo s tre s último s e stá n re la c io na d o s c o n la s he b ra s, thre a ds.
INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
6
PROGRAMACION II •
GUIA DE JAVA 2007
Ja va e s un le ng ua je fue rte me nte tip ific a d o y la c o nve rsió n e ntre re fe re nc ia s d e c la se s d ife re nte s e xig e q ue a mb a s c la se s e sté n re la c io na d a s me d ia nte he re nc ia o me d ia nte la imp le me nta c ió n d e un inte rfa z e n e l c a so d e q ue la
•
re fe re nc ia se a d e un tip o inte rfa c e . La s c la se s Ja va se a g rup a n e n p a c ka g e s a lo s q ue se p ue d e n d e finir c o mo lib re ría s d e c la se s. Si se d e c la ra una c la se sin p a c ka g e
se c o nsid e ra n p e rte ne c ie nte s a un
p a c ka g e p o r d e fe c to , de fa ult q ue e s e l d ire c to rio a c tua l. Ja va p ro p o rc io na un c o njunto d e p a q ue te s a l q ue se d e no mina API. El no mb re d e lo s p a q ue te s sue le se r un no mb re e n minúsc ula s y p ue d e c o nsta r d e va rio s no mb re s unid o s p o r p unto s. To d a s la s c la se s q ue e stá n e n e l mismo p a q ue te d e b e n e sta r e n e l mismo d ire c to rio . Lo s no mb re s c o mp ue sto s d e lo s p a q ue te s e stá n re la c io na d o s c o n la je ra rq uía d e d ire c to rio s e n q ue se g ua rd a n la s c la se s. Lo s p a q ue te s se utiliza n p a ra a lma c e na r c la se s re la c io na d a s, e vita r c o nflic to s d e no mb re s y a yud a r a la a c c e sib ilid a d d e la s c la se s. La inc lusió n d e una c la se e n un p a q ue te se ha c e me d ia nte la se nte nc ia p a c ka g e q ue se inc luye e n la p rime ra líne a d e l fic he ro ja va q ue c o ntie ne la c la se . la se nte nc ia imp o rt se g uid a d e l no mb re d e un p a q ue te má s e l no mb re d e una c la se d e e se p a q ue te , ind ic a q ue c la se se utiliza rá e n e se fic he ro c ua nd o se invo q ue a un o b je to d e la c la se •
imp o rta d a . Al c o ntra rio d e C++, Ja va no utiliza d e struc to re s, sino q ue o p c io na lme nte e l usua rio p ue d e inc luir n mé to d o q ue se e je c uta rá c ua nd o e l o b je to va ya a se r re c ic la d o , e s e l mé to d o fina lize ().
INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
7
PROGRAMACION II
GUIA DE JAVA 2007
El interprete de Java
Ja va , p a ra c o nse g uir se r un le ng ua je ind e p e nd ie nte d e l siste ma o p e ra tivo y d e l p ro c e sa d o r q ue inc o rp o re la má q uina utiliza d a , e s ta nto inte rp re ta d o c o mo c o mp ila d o . El c ó d ig o fue nte e sc rito c o n c ua lq uie r e d ito r se c o mp ila g e ne ra nd o e l Byte Co d e . Este c ó d ig o inte rme d io e s d e muy b a jo nive l, p e ro sin a lc a nza r la s instruc c io ne s má q uina p ro p ia s d e c a d a p la ta fo rma y no tie ne na d a q ue ve r c o n e l p -c o d e d e Visua l Ba sic . El
Byte Co d e
c o rre sp o nd e
al
80%
de
la s
instruc c io ne s d e la a p lic a c ió n. Ese mismo c ó d ig o e s e l q ue se p ue d e e je c uta r so b re c ua lq uie r p la ta fo rma . Pa ra e llo ha c e fa lta e l runtime , q ue sí e s c o mp le ta me nte d e p e nd ie nte d e la má q uina y de l
siste ma
o p e ra tivo
q ue
inte rp re ta
d iná mic a me nte e l Byte Co d e y a ña d e e l 20% d e instruc c io ne s q ue fa lta b a n p a ra su e je c uc ió n. Co n e ste siste ma e s fá c il c re a r a p lic a c io ne s multip la ta fo rma ,
p e ro
p a ra
e je c uta rla s
es
ne c e sa rio q ue e xista e l runtime c o rre sp o nd ie nte a l siste ma o p e ra tivo utiliza d o .
No o b sta nte , e ste p a no ra ma e stá c a mb ia nd o a p a so s a g ig a nta d o s, y a unq ue Ja va sig ue sie nd o b á sic a me nte un le ng ua je inte rp re ta d o , la situa c ió n se a c e rc a muc ho a la d e lo s p ro g ra ma s c o mp ila d o s, so b re to d o e n lo q ue a la ra p id e z e n la
e je c uc ió n d e l c ó d ig o
se
re fie re . Pa ra
c o mp re nd e r e l
func io na mie nto d e Ho tSp o t, q ue e s e l último la nza mie nto q ue ha c e Sun y q ue p ro me te inte rp re ta r lo s Byte Co d e s má s rá p id o q ue un p ro g ra ma c o mp ila d o , la s sig uie nte s imá g e ne s mue stra n c ó mo a c túa e l siste ma runtime e n lo s d ive rso s c a so s q ue ha sta a ho ra p ue d e n d a rse .
La ima g e n d e la izq uie rd a mue stra la s a c c io ne s c o rre sp o nd ie nte s a un c o mp ila d o r tra d ic io na l. El c o mp ila d o r tra sla d a la s se nte nc ia s e sc rita s e n le ng ua je d e a lto -nive l a múltip le s instruc c io ne s, q ue lue g o so n e nla za d a s junto
INTEGRANTES: Se rg io Ossio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a
8
PROGRAMACION II
GUIA DE JAVA 2007
c o n e l re sulta d o d e múltip le s c o mp ila c io ne s p re via s q ue ha n d a d o o rig e n a lib re ría s, y junta nd o
to d o
e llo , e s c ua nd o
g e ne ra
un
p ro g ra ma e je c uta b le .
La ima g e n d e la d e re c ha mue stra la fo rma d e a c tua c ió n d e un inté rp re te . Bá sic a me nte e s un e no rme b uc le , e n e l c ua l se va le ye nd o o re c o g ie nd o c a d a una d e la s instruc c io ne s d e l p ro g ra ma fue nte q ue se d e se a e je c uta r, se a na liza , se p a rte e n tro zo s y se e je c uta . Lue g o se va a re c o g e r la sig uie nte inst...