• No se han encontrado resultados

PROGRAMACION II GUIA DE JAVA + EJERCICIOS 2007

N/A
N/A
Protected

Academic year: 2022

Share "PROGRAMACION II GUIA DE JAVA + EJERCICIOS 2007"

Copied!
10
0
0

Texto completo

(1)

“ SA N PA BLO ”

FA C ULTA D DE C IENC IA S EXA C TA S E ING ENIERIA

ING ENIERIA DE SISTEMA S LA PA Z – BO LIVIA

PRO G RA MA C IO N II G UIA DE JA VA

+ EJERC IC IO S 2007

INTEG RANTES:

O SSIO MARIN SERG IO WILLY

PRUDENC IO RO BINSO N ANDRES MAURIC IO SALG ADO FALLER IG NAC IO

VALDA SANC HEZ FREDDY SALVADO R

DO C ENTE: M.Sc . IRMA PRADO

SEMESTRE I AÑO 2007

(2)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a 1

INDIC E...1

PRO LO G O ...2

INTRO DUC C IÓ N...3

Pro g ra ma c io n O rie nta d a a O b 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

C la se s útile s ...16

Le ng ua je Ja va ...19

EJERC IC IO S RESUELTO S...22

Se nte nc ia s Bá sic a s (C o nd ic io na le s, Aritme tic a s y C o nta d o re s)...22

PRO BLEMAS PRO PUESTO S...28

C ic lo s y Se rie s...30

PRO BLEMAS PRO PUESTO S...42

Func io ne s y e l uso d e la c la se Ma th ...44

PRO BLEMAS PRO PUESTO S...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

PRO BLEMAS PRO PUESTO S...89

Ma tric e s ...91

Ap lic a c ió n d e Ma tric e s – C a 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

PRO BLEMAS PRO PUESTO S...126

Re c ursivid a d ...129

PRO BLEMAS PRO PUESTO S...148

Eje rc ic io s c o n G rá fic o s...149

BIBLIO G RAFIA ...160

(3)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a 2

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 C a 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 la 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

(4)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a 3

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 rim e r le m a 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 p o 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 .

(5)

INTEG RANTES: Se rg io O ssio , 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 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 (PO O ), 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 PO O 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 PO O , 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 lim o rfism o tie ne q ue ve r c o n la re la c ió n q ue se e sta b le c e

(6)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a 5 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 d e 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 d e 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.

(7)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a 6 o 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. G e 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 d e 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 rm itie nd o a sí m o 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 O b 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 tC la 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 d s.

(8)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a 7 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 , d e 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 m b re d e un p a q ue te m á s e l no m b 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 ().

(9)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld a

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 C o 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 C o d e c o rre sp o nd e a l 80% d e 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 d e l siste ma o p e ra tivo q ue inte rp re ta d iná mic a me nte e l Byte C o 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.

C o 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 e s 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 C o 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

8

(10)

INTEG RANTES: Se rg io O ssio , And ré s Prud e nc io , Ig na c io Sa lg a d o , Fre d d y Va ld 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 .

9 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 instruc c ió n q ue se d e b e inte rp re ta r y se c o ntinúa c o n e ste p ro c e so ha sta q ue se te rmina n la s

instruc c io ne s o ha sta q ue e ntre la s instruc c io ne s ha y a lg una q ue c o ntie ne la o rd e n d e d e te ne r la e je c uc ió n d e la s instruc c io ne s q ue c o mp o ne n e l p ro g ra ma fue nte .

La ima g e n sig uie nte , situa d a a la izq uie rd a , mue stra un tip o d e inté rp re te má s e fic ie nte q ue e l a nte rio r, e l inté rp re te d e Byte C o d e s, q ue fue p o p ula riza d o ha c e má s d e ve inte a ño s p o r la Unive rsid a d d e C a lifo rnia a l c re a r e l UC SD Pa sc a l. En e ste c a so , e l inté rp re te tra b a ja so b re instruc c io ne s q ue ya ha n sid o tra sla d a d a s a un c ó d ig o inte rme d io e n un p a so a nte rio r. Así, a unq ue se e je c ute e n un b uc le , se e limina la ne c e sid a d d e a na liza r c a d a una d e la s instruc c io ne s q ue c o mp o ne n e l p ro g ra ma fue nte , p o rq ue ya lo ha n sid o e n e l p a so p re vio . Este e s e l siste ma q ue Ja va utiliza , y la Má q uina Virtua l Ja va e s un e je mp lo d e e ste tip o d e inté rp re te . No o b sta nte , sig ue sie nd o le nto , a unq ue se o b te ng a un c ó d ig o ind e p e nd ie nte d e p la ta fo rma muy c o mp a c to , q ue p ue d e se r e je c uta d o e n c ua lq uie r o rd e na d o r q ue d isp o ng a d e una má q uina virtua l c a p a z d e inte rp re ta r lo s Byte C o d e s tra sla d a d o s.

Referencias

Documento similar

Las  aplicaciones Android están escritas en lenguaje Java.  Aunque  ya hemos 

Para implementar las comunicaciones entre las aplicaciones Java y Matlab se han utilizado las funciones del paquete java.net (implementación en Java) y de la

+ Este ejemplo contiene lectura presuposiciones (están intentando molestarme), causa y efecto (hace), cuantificadores universales (constantemente), juicios (pesados),

También podrás elegir nuevos cursos con un nivel más avanzado para seguir especializándote.. Contenido

El documento suministra a la industria petrolera peruana lineamientos prácticos para implementar un programa eficaz de monitoreo de calidad del agua tanto en las descargas como en

JOSE ALBERTO ZAMORA

History and the Java type of environment, are the first steps of learning a simple language, powerful, reliable and secure, plus its versatility is most demanded. application

La relación marginal de sustitución entre un bien Q 1 y otro Q 2