Você está na página 1de 34

e dit orial

ndice

8 a program ar 17 t e cnol ogias 21 t ut orial 23 gnu/ l inux 27 proj e ct o 30 anl is e s 32 int e rne t 33 bl ue s cre e n 34 com unidade

3 not cias 4t e m a de capa

e q u ipa P RO G RAM AR

adm inis t rao


Rui M aia D avid P int as s il go

coorde nador
S rg io S ant os

A pre s e nt ao e divu l g ao
A l t im a e dio f oi um m arco m uit o im port ant e para o nos s o proj e ct o. Nunca a re v is t a P RO G RAM AR t inh a s ido t o f al ada, t o div ul gada e , principal m e nt e , nunca t inh a s ido t o l ida. F oi t am bm aps o l anam e nt o da q uart a e dio q ue f ize m os a nos s a prim e ira apre s e nt ao pbl ica, q ue t ev e l ugar no B arCam pP T 2006. Es t e ev e nt o de corre u no P l o 2 da Univ e rs idade de Coim bra e t ev e com o pbl ico prof is s ionais e am adore s da nos s a re a. Es t e s re s ul t ados e l ev am a f as q uia da q ual idade q ue nos e xigida por part e dos nos s os l e it ore s , q ual idade e s s a q ue q ue re m os cont inuar a garant ir. e s s a, port ant o, a razo do at ras o de al guns dias de s t a e dio. P e dim os de s cul pa de s de j por e s t e f act o, m as cons ide ram o-l o com pre e ns v el ,v is t o q ue ainda s om os um a e q uipa de am adore s , q ue t rabal h a ne s t e proj e ct o por s at is f ao pe s s oal . Ne s t a e dio pode m e ncont rar a nov a s e co T e cnol ogias , de dicada a art igos q ue , e m bora no e s t ej am dire ct am e nt e re l acionadas com program ao, s o im port ant e s para o de s e nv ol v im e nt o de al gum as apl icae s . Es t a com e a com um art igo s obre RF I D , um t e m a cada v e z m ais dis cut ido act ual m e nt e. I re m os t am bm apre s e nt ar e m bre v e um nov o port alpara a re v is t a, m ais dinm ico e com m ais inf orm ae s s obre o proj e ct o, de s e nv ol v ido por m e m bros da nos s a e q uipa.

coorde nador adj unt o


M ig ue l P ais

re daco

F e rnando M art ins P at ric F ig ue ire do Joo P e re ira F bio Corre ia D anie l Corre ia Tiag o S al g ado M arce l o M art ins P e dro S ous a P e dro Cal de ira

col aboradore s
Jos O l ive ira

cont act o w e bs it e

re vis t aprog ram ar @ port ug al -a-prog ram ar.org w w w .re vis t a-prog ram ar.inf o

<2 >

Srgio Sant os

not cias

MI Tf inancia ins t it ut os port ugue s e s


O acordo do G ov e rno port ugus com o M as s ach us e t t s I ns t it ut e ofT e ch nol ogy (M I T) e nv ol v e um f inanciam e nt o pbl ico gl obal de 32 m il h e s de e uros s ins t it uie s nacionais abrangidas pe l o P rogram a M I TP ort ugal . O P rogram a e nv ol v e q uat ro re as t e m t icas : Enge nh aria de Conce po e Sis t e m as Av anados , Sis t e m as de Ene rgia, Sis t e m as de T rans port e s e Sis t e m as de B ioe nge nh aria.

O acordo de coope rao com o ins t it ut o nort e - am e ricano M I T e nv ol v e a Es col a de Enge nh aria da Univ e rs idade do M inh o, a F acul dade de Cincias da univ e rs idade de L is boa, as f acul dade s de Cincias e T e cnol ogia da Univ e rs idade de Coim bra e da Univ e rs idade Nov a de L is boa e a F acul dade de Enge nh aria da Univ e rs idade do P ort o. Env ol v e ainda o I ns t it ut o Supe rior de Econom ia e G e s t o da Univ e rs idade Tcnica de L is boa e o I ns t it ut o Supe rior Tcnico da Univ e rs idade Tcnica de L is boa. Se gundo o t e xt o do acordo, as ins t it uie s nacionais , e m parce ria com o M I T , pode ro nos prxim os cinco anos cont rat ar prof e s s ore s conv idados de m rit o int e rnacional e inv e st igadore s e m ps -dout oram e nt o. O program a pre v ainda q ue os e s t udant e s , inv e st igadore s e doce nt e s e m ins t it uie s port ugue s as col abore m com e q uipas de inv e st igao no M I T .

AM D t ripl ica l ucro


A Adv ance d M icro D e v ice s (AM D ) s upe rou as e xpe ct at iv as dos anal is t as f inance iros , l ucrando 134 m il h e s de dl are s e f act urando 1,33 bil h o de dl are s no t e rce iro t rim e s t re de 2006. A e s t im at iv a dos anal is t as e ra um a re ce it a de 1,31 bil ie s de dl are s . As m arge ns ope racionais da e m pre s a, cont udo caram , f act o q ue a AM D at ribui a v e ndas m e nos ace l e radas de ch ips para de s k t ops . A q ue da de m arge m re f l et e t am bm a dis put a com a riv al I nt el q ue re port ou q ue da de 35% no l ucro ne s t e t rim e s t re . P ara o q uart ot rim e s t re , a AM D pre v um cre s cim e nt o apoiado na f us o com a f abricant e canadiano de ch ips grf icos ATI . O obj e ct iv o o de of e re ce r produt os int e grados ao m e rcado de com put adore s m v e is e e l et rnicos de cons um o.

F ire f ox 2.0 at inge 2 m il h e s de dow nl oads e m 24 h oras


O F ire f ox 2.0 at ingiu os 2 m il h e s de dow nl oads no prim e iro dia, com picos de 30 dow nl oads por s e gundo. I st o s ignif ica q ue o F ire f ox e s t em v ias de s upe rar os 3 m il h e s de dow nl oads e m 4 dias do I E7. Es t e s s o re s ul t ados m uit o pos it iv os para a e q uipa de de s e nv ol v im e nt o da M ozil l a. No e nt ant o, o nm e ro de ut il izadore s do I nt e rne t Expl ore r 7 de v e r aum e nt ar com o l anam e nt o do W indow s V is t a.

<3>

t e m a de capa
pos s v el a apl icao dos s cript s div ul gados inde pe nde nt e m e nt e da bas e de dados e m caus a. de re f e rir q ue com um cada s is t e m a de bas e de dados pos s uir as s uas prprias e xt e ns e s e m bora, as norm as SQ L 92 e SQ L -9 9 se j am , gros s o m odo, im pl e m e nt adas por t odos .

O bj e ct iv o

B as e s de D ados
As B as e s de D ados (B D ) s o im pre s cindv e is a q ual q ue r s is t e m a e s o por is s o pre s e na cons t ant e no dia-a-dia de t odos q uant os f aze m de s e nv ol v im e nt o.
Es t a re al idade adv m da ne ce s s idade de " m e m ria pe rs is t e nt e " q ue q ual q ue r apl icao t e m , por m ais s im pl e s q ue s e j a. I st ov is v el e bv io num com pl e xo s is t ema bancrio, m as t am bm v is v el , por v e ze s m e nos bv io, num j ogo q ue guarda as pont uae s dos m e l h ore s j ogadore s num s im pl es f ich e iro de t e xt o. I nde pe nde nt e m e nt e do s uport e us ado, a ne ce s s idade de guardar e re cupe rar dados e xis t e e um a cons t ant e em q ual q ue r apl icao.

Um a B D t e m com o obj e ct iv o l t im o guardar e re cupe rar dados , e q uant o m ais de pre s s a mel h or . Es t a a ide ia q ue s e t e m e m m e nt e q uando s e f al aem B D. t am bm com e s t e e out ros obj e ct iv os e m m e nt e , q ue os art igos s e ro apre s e nt ados . Os t e m as f ocados v o pe rm it ir a q ual q ue r um iniciar-s e no m undo das B Ds e e v ol uir a pont o de criar conh e cim e nt o e s e ns ibil idade s uf icie nt e s para crit icar e dis cut ir s e m pre q ue o t e m a de conv e rs a f or o univ e rs o das B D s.

B as e de D ados
D e um a f orm a s im pl e s , um a B D pode s e r de f inida com o um s im pl e s banco de dados organizado s e gundo um a de t e rm inada e st rut ura. Act ual m e nt e , os Sis t e m as de G e s t o de B as e s de D ados (SG B D ) m ais com uns e m ais us ados s o os re l acionais , q ue as s e nt am s obre um a e s t rut ura de re l ae s e nt re e nt idade s . No e nt ant o, o m undo das B D no s e e s got a nos Sis t e m as de G e s t o de B as e de D ados Re l acionais - Re l at ional D at abas e M anage m e nt Sy s t em na t e rm inol ogia das B D - (RD B M S) . Exis t em out ras B D com e s t rut uras h ie rrq uicas ou por obj e ct os , m as a s ua ut il izao no m uit o dif undida e s o norm al m e nt e us adas e m cas os part icul are s .

m bit o
Ne s t e m bit o, ao l ongo das prxim as e die s da Re v is t a P rogram ar v o s e r apre s e nt ados art igos s obre bas e s de dados abrange ndo um conj unt o de t e m as q ue aj udam a com pre e nde r m e l h or e s t e m undo, de s de a ide al izao de um m ode l o de dados at t are f a de t uning de um a bas e de dados . Em paral el o com os art igos h av e r um a s e co prt ica q ue il us t rar e pe rm it ir acom panh ar os conh e cim e nt os aq ui apre s e nt ados . Es t a s e co prt ica s e guir a norm a S Q L -9 9 para q u e s e j a

Exe m pl o
De f orm a a il us t rar e a pe rm it ir um m e l h or acom panh am e nt o de s t e art igo, o m e s m o v ai s e r com pl e m e nt ado com um e xe m pl o.

<4>

t e m a de capa
D ado q ue ne ce s s rio ide nt if icar univ ocam e nt e cada um dos int e rv e nie nt es de cada e nt idade , t orna-s e ne ce s s rio dot ar cada e nt idade com um ide nt if icador nico. P e ns ando no cas o do ut il izador , um pos s v e l ide nt if icador s e r o nm e ro do bil het e de ide nt idade (B I ) . P e ns ando no cas o do l iv ro, um pos s v el ide nt if icador s e r o I SB N. Ne s t e cas o, ide nt if icaram -s e as ch av e s candidat as de cada um a das e nt idade s , q ue s o as proprie dade s q ue pe rm it em ide nt if icar univ ocam e nt e q ual q ue r ut il izador ou l iv ro at rav s de um a proprie dade , ou de um conj unt o de proprie dade s . P or e xe m pl o, um a pos s v el ch av e candidat a pode ria para um ut il izador s e r o nom e e a m orada, q ue j unt os t am bm ide nt if icam univ ocam e nt e um ut il izador . D o conj unt o das ch av e s candidat as se l e cciona-s e a m e l h or q ue t orna pos s v el ide nt if icar univ ocam e nt e q ual q ue r ut il izador , ne s t e cas o o ut il izador at rav s do B I ,e ol iv ro at rav s do I SB N. T e ndo as ch av e s prim rias s e l e ccionadas , as e nt idade s f icam as s im re pre s e nt adas : -l iv ro: I SB N, t e m pe l o m e nos um aut or ,t em um t t ul o, t e m um a e dit ora; - ut il izador: B I ,t e m um nom e , um a m orada; - re q uis io: I SB N, B I . Agora a e nt idade re q uis io pos s ui duas proprie dade s , I SB Ne B I , q ue s o as ch av es prim rias das e nt idade s l iv ro e aut or , re s pe ct iv am e nt e . O u se j a, a e nt idade re q uis io pos s ui duas ch av e s e st range iras , um a v e z q ue e s s as duas proprie dade s s o ch av e s de out ras e nt idade s . D e para-s e agora um de s af io: q uala ch av e prim ria da re q uis io? M e dit e m os um pouco: s e um a re q uis io no m ais do q ue um a l igao e nt re um ut il izador e um l iv ro, e nt o um ut il izador e um l iv ro de f ine m univ ocam e nt e um a re q uis io. D ado q ue um l iv ro ide nt if icado por I SB N e um ut il izador por B I , e nt o a ch av e prim ria de s t a e nt idade s e r o par I SB N, B I .

O de s af io cons t ruir um a B D para um a pe q ue na bibl iot e ca pe rm it indo re gis t ar no s os l iv ros , m as t am bm os ut il izadore s e as re q uis ie s de l iv ros .

M ode l o Re l acional
O m ode l o re l acionalde f ine a e s t rut ura da B D e o prim e iro pas s o no de s e nh o de um a B D . Es t e m ode l o m ode l a a re al idade de f orm a l gica, ou, por out ras pal av ras , re pre s e nt a a s ol uo l gica para um dado probl e m a. As s im , o prim e iro pas s o ide nt if icar as e nt idade s e m caus a. D ado o de s af io de um a pe q ue na bibl iot e ca, a m e s m a t e r: -l iv ro: q ue re pre s e nt a um l iv ro; - ut il izador: q ue re pre s e nt a os ut il izadore s da bibl iot e ca. Um a das principais f une s de um a bibl iot e ca e m pre s t ar l iv ros , e s t a re al idade no e s t ainda re pre s e nt ada no m ode l o e ne ce s s rio cri-l a. As s im , num a s e gunda it e rao, al t e ram os o m ode l o para pe rm it ir q ue os ut il izadore s s e l igue m aos l iv ros at rav s de re q uis ie s . D e st af orm a, as e nt idade s ide nt if icadas s o: -l iv ro: q ue re pre s e nt a um l iv ro; - ut il izador: q ue re pre s e nt a os ut il izadore s da bibl iot e ca; - re q uis io: q ue re pre ns e nt aal igao e nt re um l iv ro e um ut il izador da bibl iot e ca. As s im , um a v e z ide nt if icadas as e nt idade s , ne ce s s rio ide nt if icar as caract e rs t icas e proprie dade s de cada um a de l as : -l iv ro: t e m pe l o m e nos um aut or ,t e m um t t ul o, um a e dit ora e o I SB N; - ut il izador: t e m um nom e , um a m orada e o nm e ro do bil het e de ide nt idade ; - re q uis io: t e m o ide nt if icador do l iv ro re q uis it ado e t e m o ide nt if icador do ut il izador q ue e f e ct uou a re q uis io.

<5>

t e m a de capa
D ado q ue um l iv ro pode pos s uir m ais de um aut or, e q ue um aut or pode t e r m ais de um a obra, ide nt if icam -s e duas nov as e nt idade s : aut or e aut oria; e re f orm ul am -s e as e nt idade s . As s im , num a t e rce ira it e rao s obre as e nt idade s f icam os com : -l iv ro: q ue re pre s e nt a um l iv ro; - ut il izador: q ue re pre s e nt a os ut il izadore s da bibl iot e ca; - re q uis io: q ue re pre s e nt aal igao e nt re um l iv ro e um ut il izador da bibl iot e ca; - aut or: q ue re pre s e nt a um aut or; - aut oria: q ue re pre s e nt a um aut or de um l iv ro. Num a s e gunda it e rao s obre as caract e rs t icas e proprie dade s de cada e nt idade concl ui-s e q ue : -l iv ro: I SB N, t e m um t t ul o, t e m um a e dit ora, t e m um nm e ro de copias dis ponv e is ; - ut il izador: B I ,t e m um nom e , um a m orada; - re q uis io: I SB N, B I ; - aut or: t e m um nom e ; - aut oria: I SB N e o ide nt if icador do aut or. Um a ch av e candidat a para a e nt idade aut or s e r o nom e , m as dado q ue pode h av e r m ais de um aut or com o m e s m o nom e , e m part icul ar porq ue os aut ore s s o, m odo ge ral , conh e cidos ape nas pe l o se u nom e prprio e ape l ido, ne s t e cas o no e xis t e ne nh um a ch av e candidat a s uf icie nt e m e nt e boa para s e r e l e it a, razo pe l a q ual s e adiciona um cam po e xt ra para ide nt if icao e s e e f e ct ua a l igao de s s e cam po e xt ra de ide nf icao com a aut oria. As s im , f icam os com : -l iv ro: I SB N, t e m um t t ul o, nm e ro de cpias dis ponv e is , idEdit ora; - ut il izador: B I ,t e m um nom e , um a m orada; - re q uis io: I SB N, B I ; - aut or: idAut or, t e m um nom e ; - aut oria: I SB N, idAut or. de not ar q ue a e nt idade aut oria anl oga de aut or, f aze r a re l ao de aut ore s com ch av e prim ria com pos t a ch av e s e st range iras . de l igao ou s e j a, por l iv ros , a s ua pe l as duas F igura 1 O m ode l o pare ce , priori, f inal izado, m as a v e rdade q ue o m e s m o no e s t norm al izado. O l h ando at e nt am e nt e para a e nt idade l iv ro, not am os q ue a e dit ora ir-s e - re pe t ir v ariads s im as v e ze s e m t odas as e nt radas de l iv ros q ue pe rt e nam a um a m e s m a e dit ora. P ara e v it ar e s t a re pe t io do nom e da e dit ora, o m ode l o t e m de s e r norm al izado. A norm al izao um proce s s o de re e s t rut urao do m ode l o l gico de f orm a a e l im inar re dundncia, organizar os dados de f orm a e f icie nt e e re duzir pot e nciais anom al ias . O l h ando m ais at rs no e xe m pl o, t am bm j ef e ct uam os um a " ps e udo-norm al izao" , ao s ubs t it uir no l iv ro a re gra " t e m de t e r pe l o m e nos um aut or" pe l as e nt idade s aut or e aut oria. Norm al izando o m ode l o, t e m os q ue a proprie dade e dit ora pas s a a s e r um a e nt idade , e l iv ro pas s a a f aze r re f e rncia e dit ora e m q ue s t o: - e dit ora: idEdit ora, nom e ; -l iv ro: I SB N, t e m um t t ul o, cpias dis ponv e is , idEdit ora; - ut il izador: B I ,t e m um nom e , um a m orada; - re q uis io: I SB N, B I ; - aut or: idAut or, t e m um nom e ; - aut oria: I SB N, idAut or. D e st af orm a, t odos os l iv ros q ue pe rt e nce m a um a m e s m a e dit ora t m a m e s m a re f e rncia, idEdit ora. Not e -s e q ue t am bm na e nt idade e dit ora s e apl icou a criao de um a proprie dade prpria para a ide nt if icao unv oca, e m bora aq ui o nom e pude s s e t e r s ido s e l e ccionado com o ch av e prim ria, um a v e z q ue a probabil idade de e xis t ire m duas e dit oras dis t int as com o nom e e xact am e nt e igual inf m a.

<6>

t e m a de capa
As e nt idade s principais de f inidas no e xe m pl o pode m s e r v is t as no diagram a da f igura 1. de re f e rir q ue no diagram a no cons t am as e nt idade s re l acionais , as ch av es prim rias e s t o re pre s e nt adas a v e rm e l ho (P K ) e o s e u nom e e s t norm al izado para " id<Ent idade > [P roprie dade ] " .

Re l ae s
As re l ae s s im pl e s m e nt e l igao, e nt re pode m s e r de para N" . re f e ridas at rs re pre s e nt am a l gica de re l ao, ou as e nt idade s . Es s as re l ae s " 1 para 1" ," 1 para N" , ou de " M

F igura 2 P or f im , o diagram a da f igura 3 (1). apre s e nt a o m ode l o com pl et o, com as re l ae s e as e nt idade s re l acionais com os nom e s norm al izados para " P K _<idEnt idade > " . As ch av e s e st range ira e s t o re pre s e nt adas a v e rde (F K ) e as ch av e s e st range iras q ue s o t am bm ch av es prim rias e st o re pre s e nt adas a azul (P F K) .

Um a re l ao diz-s e de " 1 para 1"q uando um el e m e nt o de um a e nt idade s e re l aciona unicam e nt e com out ro e l e m e nt o de out ra e nt idade . Es t a a re l ao m ais s im pl es e m e nos int e re s s ant e q ue e xis t e, no ne ce s s it ando s e q ue r de e nt idade s adicionais para a re pre s e nt ar. No cas o de um e l e m e nt o de um a e nt idade s e re l acionar com m ais de um e l e m e nt o de out ra e nt idade , e s t am os na pre s e na de um a re l ao de " 1 para N" . No e xe m pl o apre s e nt ado e xis t e um a re l ao de s t e t ipo: um l iv ro pos s ui um ou m ais aut ore s . Es t a re l ao re pre s e nt ada pe l a e nt idade aut oria: um I SB N re l aciona-s e com um ou m ais idAut or. Um a re l ao " M para N" re pre s e nt a m l t ipl as re l ae s e nt re os e l e m e nt os de duas e nt idade s . No e xe m pl o apre s e nt ado e xis t e um a re l ao de s t e t ipo: um ut il izador pode re q uis it ar v rios l iv ros e um l iv ro pode s e r re q uis it ado por v rios ut il izadore s . S no pos s v el q ue um ut il izador re q uis it e o m e sm o l iv ro v rias v e ze s de v ido e s col h a do de s e nh o do m ode l o. Es t a re l ao as s im re pre s e nt ada pe l a e nt idade re q uis io, q ue de v ido ao f act o da ch av e prim ria s e r cons t it uda pe l as ch av e s prim rias das e nt idade s re l acionadas , no pe rm it e q ue um ut il izador re q uis it e v rias v e ze s o m e s m o l iv ro. Es t a re s t rio no um a l im it ao, ne m de v e se r v is t a com o t al , um a v e z q ue f acil m e nt e ul t rapas s v e l de f inindo um a out ra ch av e prim ria para a e nt idade . O diagram a da f igura 2 apre s e nt a o e xe m pl o com as e nt idade s re l acionais m at e rial izadas .

F igura 3 Cada um a de s t as e nt idade s v ai re s ul t ar num obj e ct o na bas e de dados , um a t abe l a, e cada um a das proprie dade s de cada obj e ct o v ai re s ul t ar num a col una. M as e s t e pas s o acont e ce r ape nas num prxim o art igo, act ual m e nt e im port ant e re t e r os conce it os de M ode l o Re l acional , M ode l o L gico, Ent idade , P roprie dade , Ch av e Candidat a, Ch av e P rim ria, Ch av e Es t range ira e Norm al izao.
1) A not ao us ada no diagram a a not ao O racl e TM (O racl e TM um a m arca re gis t ada)

<7>

F e rnando M art ins

a program ar
<html> <head> <script src="codigoAJAX.js"></script> </head> <body> <form action="" method="post"> Utilizador Pretendido: <input type="text" name="username" id="username" onKeyUp= "verificaUtilizador(this.value)"> </form> <div id="resposta"></div> </body> </html>

P ginas dinm icas com ASPe AJAX


Q ue m nunca pe ns ou e m f aze r um Ch at ou um a Sh out B ox? Exact o, m uit os de ns , no e nt ant o, al go t o f ul cral com o a act ual izao da conv e rs a t ornav a-s e um q ue bra-cabe as df icilde s ol ucionar. O u s e f azia um re f re s h pgina (al go de s agradv el e a ev it ar) , ou... Enf im , s e ria ape nas m ais um proj e ct o no concre t izado. O ra, f oi pre cis am e nt e para s ol ucionar e sse s probl e m as q ue nas ce u o AJAX (As y nch ronous Jav aScriptand XM L ) . Q uando f al am os e m AJAX conv m t er a noo q ue no s e t rat a propriam e nt e de um a l inguage m de program ao nov a, e m uit o m e nos s e re f e re ao h abit ual de t e rge nt e.T rat as e s im , de um a t cnica para act ual izar inf orm ao rapidam e nt e. I m agine m os , por e xe m pl o, um ch at . Com o h abit ual H TM L Re f re s h o brow s e r iria carre gar a pgina t oda nov am e nt e . J com o AJAX ape nas s e r act ual izado aq uil o q ue q uis e rm os , ne s t e cas o, o 'corpo' da conv e rs a. AJAX corre prat icam e nt e em t odos os s e rv idore s m as , para q ue pos s am os us uf ruir de s t e , pre cis are m os t am bm de um a l inguage m Se rv e r-Side , ne s t e cas o o ASP . Al m dis s o o AJAX t e m a part icul aridade de s e r ape nas v is v e l e m brow s e rs q ue t e nh am s uport e com pl et o XM L . Act ual m e nt e e xis t em ape nas dois brow s e rs a s uport ar t ot al m e nt e e st at e cnol ogia: o I nt e rne t Expl ore r e o M ozil l a F ire f ox. Em brow s e rs com o o Saf ari ou o O pe ra com um as apl icae s com AJAX apre s e nt are m al guns e rros , ou de f icincias . M as , de ixe m o-nos de t e oria e pas s e m os prt ica. I re m os criar um a pgina de re gis t o, com a part icul aridade de garant ir q ue no h aj am us e rnam e s re pe t idos .

A part e do '<s cript s rc=" codigoAJAX.j s" > </ s cript > ', incl ui o cdigo AJAX para q ue se j a pos s v e la v e rif icao. J o pargraf o abaixo, s e r a t al re a e m q ue nos dit o se o us e rnam e j e xis t e ou no. A aco v e rif icaUt il izador(t h is .v al ue ) , re q ue re o t h is .v al ue para q ue o brow s e r s aiba q ue de v e act ual izar a re s pos t a s e m pre q ue o t e xt o al t e rado. A f uno s e m o t h is .v al ue t e ria de s e r inv ocada por um bot o at rav s do onCl ick por e xe m pl o, cas o cont rrio no iria f uncionar. O cdigo AJAX o s e guint e: codigoAJAX.j s (o cdigo t am bm pode ria s e r ins e rido na pgina do f orm ul rio m as , por m ot iv os de organizao, s e param o-l o) .

function handleHttpResponse() { if (http.readyState == 4) { if (http.status == 200) { if (http.responseText.indexOf( 'invalid') == -1) { results = http.responseText. split(","); document.getElementById( "resposta").innerHTML = results[0]; emProceso = false; } } } }

<8>

a program ar
function verificaUtilizador() { if (!emProceso && http) { var valor = escape(document. etElementById("username").value); var url = "utilizadores.asp? txtUser="+ valor; http.open("GET", url, true); http.onreadystatechange = handleHttpResponse; emProceso = true; http.send(null); } }

Em s e gundo, v e rif icam os s e o ut il izador j e xis t e , por um a Q ue ry St ring com o v al or ins e rido pe l o ut il izador, v al or e s s e q ue s e r re ce bido no f ich e iro ASP . Es t e dir de f init av e m e nt e s e o ut il izador e s t ocupado ou no. P or l t im o, e xe cut ado o obj e ct o H TTP , q ue s e s t dis ponv el e m al guns brow s e rs . P ara t e rm inar , s nos f al t a o cdigo ASP , q ue no pas s a de m e ia dzia de l inh as . P rim e iram e nt e , o cdigo ir re col h erov al or da v ariv e l Ut il izador , at rav s do re q ue s t .Q ue ry St ring. D e s e guida, s e r f e it a a v e rif icao e , f inal m e nt e , s e r-nos - dit o s e o ut il izador e s t dis ponv el . P ara e v it ar 'bug's " s s e r apre s e nt ado re s ul t ado s e o v al or da v ariv el no f or nul o. ut il izadore s .as p
<% if request.querystring("Utilizador") <> "" then utilizador = request.querystring( "Utilizador") if utilizador = "p@p" then response.write "Ocupado, escolha outro." else response.write "Est Disponvel!" end if end if %>

function getHTTPObject() { var xmlhttp; @cc_on @if (@_jscript_version >= 5) try { xmlhttp=new ActiveXObject( "Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp=new ActiveXObject( "Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } @else xmlhttp = false; @end @ if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { try { xmlhttp=new XMLHttpRequest(); } catch (e) { xmlhttp=false; } } return xmlhttp; }

Agora s t e st ar! Es t e cdigo e s t m uit o s im pl e s , m as um a bas e para, por e xe m pl o, incl uir re cordSe t s e int e ragir com um a bas e de dados .

Es t e cdigo, pare ce be m com pl icado m as no o . T em t rs e t apas s im pl e s. P rim e iro dize m os com o e onde q ue o brow s e r nos v ai re s ponde r , na re a 're s pos t a'.

<9 >

P at ric F igue ire do

var emProceso = false; var http = getHTTPObject();

a program ar
So t am bm us ados no incre m e nt o e de cre m e nt o de um a unidade ou e m ope rae s re l acionais com o a igual dade , dif e re na, m aior ou m e nor q ue , e nt re out ros .

O pe rador Nom e
+ * / %

Jav aScript (part e 2)


Ne s t a l t im a part e do art igo s obre program ao em Jav aScript s e ro abordados t e m as um pouco m ais t cnicos , be m com o m ais av anados e e v ol udos , do q ue na m e t ade ant e rior. Abordare m os os ope radore s , capt ul o onde s e ro t rat ados as s unt os re l accionados com a arit m t ica, as re l ae s , a l gica e nt re out ros , abordare m os as f une s e as ins t rue s q ue e xprim e m condie s e re pe t ie s / cicl os , f al are m os t am bm um pouco s obre program ao orie nt ada a obj e ct os , o bs ico a de s t e nv el e um a pe q ue na al us o aos v e ct ore s . Es pe re m os q ue gos t e da l e it ura.

Adio Subt raco M ul t ipl icao D iv is o Re s t o da div is o

Exe m pl o de ut il izao:

Som a e m Jav aScript


<html><head> <script language=Javascript> var x=1000; var y=18; soma=x+y; </script> </head><body> <script language=Javascript> document.write(soma); </script> </body></html

O pe radore s
O s ope radore s act uam s obre um a ou m ais v ariv e is de f orm a a produzir os re s ul t ados pre t e ndidos . A l inguage m de program ao Jav aScript pos s ui m uit os ope radore s de div e rs os t ipos . Aq ui ire m os ape nas abordar os as pe ct os m ais bs icos dos div e rs os t ipos de ope radore s dis ponv e is .

Com o pos s v el v e rif icar no cdigo m uit o s im pl e s e de s cre v e um a pe q ue na s om a. O m e sm o se v e rif ica para as out ras ope rae s . O Jav aScript dis ponibil iza t am bm ope radore s de incre m e nt o e de cre m e nt o.

O pe rador Nom e
+ + --

O pe radore s A rit m t icos


O s ope radore s arit m t icos s o ut il izados para re al izar ope rae s m at e m t icas s im pl es com o a adio, a s ubt raco, a m ul t ipl icao, a div is o e o re s t o da div is o int e ira. Exis t e t am bm o da ne gao unria q ue no v ai s e r abordado.

I ncre m e nt o D e cre m e nt o

As ins t rue s de incre m e nt o com o a de a+ + s o de ps incre m e nt o e as ins t rue s de incre m e nt o + + a s o ins t rue s de pr incre m e nt o. Q uando s e t rat am de ins t rue s de de cre m e nt o a-- ou --a, a de nom inao s e r a m e s m a.

<10>

a program ar O pe radore s R e l acionais


O s ope radore s re l acionais com o o prprio nom e indica, e s pe cif icam ope rae s de re l ao e nt re v al ore s .

O pe radore s L g icos
O s ope radore s l gicos l inguage m Jav aScripts o: e xis t e nt es na

O pe rador
== != > < >= <=

Nom e

igual dif e re nt e m aior m e nor m aior ou igual m e nor ou igual

O pe rador
! & & ||

Nom e

Nav e gao Conj uno D is j uno

Exe m pl o de ut il izao:
<html><head> <script type="text/javascript"> var x = 1; var y = 2; var z = y; function relaccionais(){ document.write("<br/>Varivel x="+x); document.write("<br/>Varivel y="+y); document.write("<br/>Varivel z="+z); document.write("<br/>"); w = x == y; document.write ("<br/>y==z->"+w); w = x != y; document.write ("<br/>y!=z->"+w); w = x >= y; document.write ("<br/>x>=y->"+w); w = x < y; document.write ("<br/>x<y->"+w); } </script> </head><body> <script type="text/javascript"> relaccionais(); </script> </body></html>

Es t e s ope radore s s o os ope radore s q ue m anipul am v al ore s l gicos . A dis j uno incl us iv a s re s ul t a num v al or f al s o q uando os dois ope radore s s o f al s os (m e s m o q ue O U) . Cas o cont rrio de v ol v e v e rdade iro. A conj uno s pode re s ul t ar num v al or v e rdade iro q uando am bos os v al ore s o f ore m (m e s m o q ue E) . J a ne gao re s ul t a no v al or cont rrio do ope rador .

O pe radore s bit a bit


O pe radore s Jav aScript . bit a bit dis ponv e is em

O pe rador
x& y x|y x^ y -x x<<y x> > y x> > > y

Conj uno D is j uno incl us iv a D is j uno e xcl us iv a Ne gao l gica D e sl ocam e nt o e s q ue rda D e sl ocam e nt o dire it a D e sl ocam e nt ol gico dire it a

Nom e

O pe radore s de cade ias


Ao cont rrio dos out ros ope radore s ape nas e xis t e um ope rador de cade ias q ue s e rv em para concat e nar cade ias (s t rings ) .

O pe rador
Com e s t e s ope radore s pos s v e lf aze r ope rae s para de t e rm inar s e os v al ore s s o iguais , dif e re nt e s , m aiore s ou m e nore s , e nt re out ros . + O ope rador + f im da out ra.

Nom e

Concat e nao acre s ce nt a um a cade ia no

<11>

a program ar

F une s
Um a f uno um a s e q uncia de ins t rue s q ue cons t it ui um a e nt idade coe re nt e e q ue pode s e r inv ocada a part ir de q ual q ue r pont o do program a e s crit o e m Jav aScript .O program ador pode criar as s uas prprias f une s q ue s o na m aioria das v e ze s e s crit as no cabe al h o do f ich e iro e s o inv ocadas pos t e riorm e nt e q uando ne ce s s rio. P ort ant o, pode m os v e r um a f uno com o um a s rie de ins t rue s q ue e ngl obam os de nt ro do m e s m o proce s s o. As f une s ut il izam -s e cons t ant e m e nt e , no s as q ue e s cre v e m com o t am bm as q ue j e st o de f inidas no s is t e m a, com o as pars e I nt (q ue um a s t ring) , pars e F l oat (s t ring) ou NaN (q ue um v al or) , pois t odas as l inguage ns de program ao t m f une s para re al izar proce s s os h abit uais . As f une s s e rv e m para s e re m ch am adas , s e m pre q ue e xis t ir um a aco q ue s e j a ne ce s s ria e m div e rs os l ocais da pgina/ s it e/ program a, s t e ndo de f inido o s e u cdigo um a nica v e z. P ara de f inir um a f uno obrigat rio ut il izar ce rt os padre s : f unct ion nom e daf uncao () { ins t rue s da f uno ... } D e pois ape nas ne ce s s rio dar as ins t rue s ce rt as f uno de f orm a a act uar da f orm a pre t e ndida e inv oc-l a no e s q ue ce ndo de adicionar () f re nt e do s e u nom e .

Ins t ru o s w it ch
No Jav aScript e xis t e um a out ra ins t ruo de condio a ins t ruo s w it ch . F orm at o s w it ch : s w it ch (e xpre s s o) { cas e v al orx: ins t ruox; ... bre ak ; cas e v al ory : ins t ruoy ; ... bre ak ; ... } P as s ando a e xpl icar o com port am e nt o do cont rol o s w it ch : s e o v al or da e xpre s s o coincidir com o v al orx e xe cut a-s e a ins t ruox, cas o no s e j a, f az-s e o m e s m o m as para o v al ory, e as s im s uce s s iv am e nt e, at s e r e ncont rada um a igual dade .

Ins t ru e s It e rat ivas


Na l inguage m de program ao Jav aScript ape nas e xis t em t rs ins t rue s it e rat iv as , o cicl o w h il e , o do-w h il e , e o cicl of or .

O cicl o w h il e
Es t e cicl o ut il iza-s e q uando ne ce s s rio re pe t ir um nm e ro inde f inido de v e ze s a e xe cuo de um as s e nt e nas , s e m pre q ue s e cum pra um a condio. m ais f cilde s e e nt e nde r q ue o cicl of or porq ue s om e nt e s e indica a condio q ue t e m q ue s e cum prir para q ue s e re al ize um a re pe t io. w h il e (condio) { s e nt e nas do cicl o; ... }

I ns t rue s condicionais
Ins t ru o ife e l se
I f com o o prprio t e rm o e m I ngl s indica s ignif ica " se " , as s im s e ndo, e s t a ins t ruo s e rv e para re al izar s cript s q ue de pe ndam de um a condio. Um I f pre s s upe q ue ce rt a aco s s e r e xe cut ada, cas o s e v e rif icar um a ce rt a condio.

<12>

a program ar O cicl o do-w h il e


Ut il iza-s e ge ral m e nt e q uando no s abe m os q uant as v e ze s h av e r de s e e xe cut ar o cicl o, as s im com o acont e ce com cicl o w h il e , com a dif e re na de q ue o cicl o, inde pe nde nt e m e nt e da e xpre s s o t e st e, s e r s e m pre e xe cut ado pe l o m e nos um a v e z.
do { sentenas do ciclo; ... } while (condio) objecto.atributo objecto.metodo()

O bj e ct os
O Jav aScript dis pe de um conj unt o de obj e ct os pre de f inidos . O s obj e ct os t m at ribut os (v ariv e is ) e m t odos (f une s ) . A s int axe para a ut il izao de obj e ct os , m t odos e at ribut os e m Jav aScript m uit o s im pl e s:

O cicl of or
O cicl o f or ut il iza-s e para re pe t ir m ais ins t rue s num de t e rm inado nm e ro de v e ze s . Ent re t odos os cicl os o f or cos t um a s e r ut il izado q uando s abe m os ao ce rt o o nm e ro de v e ze s q ue q ue re m os q ue s e j a e xe cut ada a s e nt e na, ou at q uando.
for (iniciao;condio;actualizao) { sentenas a executar; ... }

Al guns obj e ct os s o criados aut om at icam e nt e pe l o brow s e r , out ros t m de s e r criados obrigat oriam e nt e pe l o program ador .
obj = new Object();

V e ct ore s
Um v e ct or um a e s t rut ura de dados com div e rs os e l e m e nt os do m e s m o t ipo, e m re l ao q ual , at rav s de um ndice , s e pode de s ignar cada um dos s e us e l e m e nt os . Os el e m e nt os de um v e ct or pode m t am bm se r v e ct ore s , dando orige m a um a e s t rut ura m uit o com pl e xa.

O f uncionam e nt o do cicl of or o s e guint e: a e xpre s s o de iniciao e xe cut ada um a v e z ant e s da prim e ira it e rao;a condio t e st ada ant e s de cada it e rao do cicl o e se f or v e rdade ira e xe cut a a prxim a ins t ruo do cicl o, s e f or f al sa t e rm ina o cicl o. A ins t ruo e xe cut ada no cicl of or pode s e r s ubs t it uda por div e rs as ins t rue s .

Concl us o
Ne s t a s e gunda e l t im a part e do art igo de Jav aScript f oram abordados t e m as m ais av anados , m as igual m e nt e bs icos , da program ao e m Jav aScript . Ne s t a e dio abordm os a program ao com ope radore s , f une s , ins t rue s condicionais (if , s w it ch ) , ins t rue s it e rat iv as (f or, w h il e , dow h il e , cont inue , brak e ) , program ao orie nt ada a obj e ct os (P OO)e v e ct ore s . No f im de s t e art igo e s pe ram os q ue o l e it or t e nh a apre ndido t udo o q ue ne ce s s it a s abe r para s e iniciar ne s t a l inguage m . Agora a s ua v e z.

Ins t ru e s bre ak e cont inu e


A ins t ruo bre ak int e rrom pe um cicl o. I nt e rrom pe r um cicl o s ignif ica s air de l e e de ix-l ot odo com o e s t de f orm a a cont inuar com o f l uxo do program a im e diat am e nt e. A ins t ruo cont inue int e rrom pe o cicl o pas s ando as s im para a it e rao s e guint e.

<13>

Joo P e re ira

a program ar
24 catch(Exception e){ 25 System.out.println(e.getMessage()); 26 } 27 28 if( file.isDirectory() ){ 29 System.out.println("Directoria"); 30 } 31 32 else if( file.isFile() ){ 33 System.out.println("Ficheiro"); 34 } 35 36 File [] roots = file.listRoots( ); 37 38 for (int i=0; i<roots.length; i++){ 39 System.out.println (roots[i] ); 40 } 41 42 file.delete(); 43 } 44 }

I nput / O ut put e m Jav a


Ne s t e art igo v am os abordar um a m at ria q ue , a nos s o v e r, bas t ant e int e re s s ant e e im port ant e no m undo da program ao: o I nput / O ut put ne s t e cas o apl icado a Jav a.
I re m os com e ar com M anipul ao de F ich e iros e D ire ct orias . V am os v e r a s e guint e cl as s Jav a onde s o de m os t radas as principais f une s da Cl as s F il e , q ue a ut il izada para re al izar a m anipul ao. Em s e guida v am os e xpl icar o q ue cada l inh a f az.
1 import java.io.*; 2 3 public class JavaFile{ 4 public static void main(String args[]){ 5 6 File file=new File("C:\\file.txt"); 7 8 System.out.println(file.getName()); 9 10 file.setReadOnly(); 11 12 System.out.println(file.isHidden()); 13 System.out.println(file.canRead()); 14 System.out.println(file.canWrite()); 15 16 file.renameTo(new File( "C:\\Ficheiro.txt")); 17 18 try{ 19 if( !file.exists() ){ 20 file.createNewFile(); 21 } 22 }

Com o pode m os v e r na l inh a 6 ins t anciado um obj e ct o F il e q ue re pre s e nt a o cam inh o (pat h ) para um pos s v e ll ocal do s is t ema ope rat iv o. bom l e m brar q ue e s t e ape nas re pre s e nt a um f ich e iro ou dire ct oria, no pre s s upondo q ue o cam inh o e xis t a re al m e nt e . Ne s t e cas o, o cam inh o o C:\\f il e .t xt , q ue apont a para o f ich e iro f il e .t xt na dire ct oria C:. T am bm pode ria apont ar ape nas para um a dire ct oria e no para um a f ich e iro, com o o cas o. Na l inh a 8 pode m os v e r o m t odo ge t Nom e () , q ue pe rm it e obt e r o nom e do f ich e iro ou dire ct oria re pre s e nt ada pe l oF il e. Es t a cl as s pe rm it e t am bm dar at ribut os a f ich e iros ou dire ct orias , com o o cas o do m t odo s e t Re adO nl y () q ue d ao f ich e iro ou dire ct oria o at ribut o de ape nas pode r s e r l ido e no e s crit o, t al com o e s t re pre s e nt ado na l inh a 10. A cl as s F il e pe rm it e t am bm v e rif icar at ribut os e , para is s o, pode m os us ar os m t odos is H idde n() q ue v e rif ica s e o f ich e iro ou dire ct oria s e e ncont ra ocul t o(a) (l inh a 12) , canRe ad() q ue v e rif ica s e pos s iv e ll er o f ich e iro ou dire ct oria (l inh a 13) e o m t odo canW rit e () q ue v e rif ica s e pos s iv el e s cre v er no f ich e iro ou dire ct oria (l inh a 14) .

<14>

a program ar
O m t odo re nam e T o() na l inh a 16 pe rm it e re nom e ar um f ich e iro ou dire ct oria, m as para al m dis s o pe rm it e t am bm m ov er f ich e iros e dire ct orias bas t ando para is s o dar um cam inh o dif e re nt e no nov o nom e a dar , o q ue no o cas o ne s t e e xe m pl o. O s m t odos e xis t s () e cre at e Ne w F il e () l inh a 19 e l inh a 20, s o dois m t odos m uit o im port ant e s na m anipul ao de f ich e iros e dire ct orias , o m t odo e xis t s () pe rm it e v e rif icar se o f ich e iro ou dire ct oria re pre s e nt ados no F il e re al m e nt e e xis t e. O m t odo cre at e Ne w F il e () cria um nov of ich e iro com o cam inh o re pre s e nt ado, ne s t e cas o iria criar of ich e iro f il e .t xtna dire ct oria C:. Em bora aq ui no e s t ej a aq ui pre s e nt e, t am bm t e m os os m t odos m k dir() e m k dirs () q ue t m a m e s m a f uncional idade q ue o m t odo cre at e Ne w F il e () , m as ne s t e cas o criada um a dire ct oria. A dif e re na do m k dir() para o m k dirs () bas icam e nt e q ue o m t odo m k dir ape nas cria um dire ct orio num cam inh o j e xis t e nt e , ou se j a, por e xe m pl o, no s e guint e cam inh o C:\P rogram as \ o m k dir() pode ria criar dire ct orias de nt ro da dire ct oria P rogram as , ape nas e s s e a re f e rida dire ct oria j e xis t is s e pre v iam e nt e . J o m k dirs pe rm it iria criar t oda a arv ore de dire ct orias , m e s m o se e st a no e xis t is s e . Nas l inh as 28 e 32 pode m os v e r os m t odos is D ire ct ory () e is F il e () q ue v e rif icam re s pe ct iv am e nt e s e o cam inh o dado um dire ct rio ou um f ich e iro. Na l inh a 36 t e m os o m t odo l is t Root s( ) . T rat a-s e de um m t odo bas t ant e t il nom e adam e nt e e m s is t e m as W indow s , v is t o q ue re t orna um array com t odas as driv es ou raze s do s is t e m a ope rat iv o, por e xe m pl o A :, C:, D :, E:, e t c... J e m s is t e m as G NU/ L inux o cont e do do array s e r ape nas / ,v is t o se r a raiz do s is t e m a. P ara t e rm inh ar e s t a part e do art igo, t e m os na l inh a 42 o m t odo de l et e () q ue com o o prprio nom e indica pe rm it e el e m inar o f ich e iro ou dire ct oria re pre s e nt ado pe l oF il e. D e pois de t e rm inado o e s t udo s obre a m anipul ao de f ich e iros v am os agora pas s ar e s crit a dos m e s m os , obs e rv ando o s e guint e cdigo:
1 import java.io.*; 2 3 public class FileWrite{ 4 5 public static void main(String args[]){ 6 7 try{ 8 9 PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("C:\\file.txt",true))); 10 11 out.println("Java Input/Output"); 12 out.println(System.getProperty( "os.name").toString()); 13 out.println(System.getProperty( "user.name").toString()); 14 out.println("Fim"); 15 out.println(); 16 out.close(); 17 18 } 19 20 catch(IOException e){ 21 System.out.println(e.getMessage()); 22 } 23 } 24 }

Aps e xe cut ar e s t a apl icao s e r criado um f ich e iro de t e xt o e m C:\\ (nos s is t e m as W indow s , para out ros Sis t e m as O pe rat iv os bas t ar m udar o de s t ino) , com cont e do se m e l h ant e a e st e: Jav aI npu t / O ut pu t W indow s XP M agician F im V am os agora anal is ar o cdigo de f orm a a com pre e nde r o obj e ct iv o de cada l inh a. Na l inh a 9 pode m os v e r o obj e ct o " out "a s e r ins t anciado. Es t a um a ins t anciao um pouco com pl e xa m as t e m a s ua razo de se r . Se gundo al guns t e st es j f e it os e s t a ins t anciao a f orm a m ais s im pl e s e com

<15>

a program ar
mel h or re ndim e nt o de e s cre v e r num f ich e iro. V am os agora at e nt ar e m al guns de t al h e s . Na l t im a part e da ins t ncia " ne w F il e W rit e r(" C:\\f il e .t xt " ,t rue ) " pode m os v e r q ue para al m de t e rm os com o argum e nt o o nom e do f ich e iro, t e m os t am bm um argum e nt o bool e an. Es t e s e m dv ida um argum e nt o m uit o im port ant e pois q uando col ocado " t rue " diz ao program a q ue de v e e s cre v e r no f ich e iro, com a part icul aridade de no apagar ne h um do s e u cont e do ant e rior, ou s e j a, o program a no e s cre v e r por cim a do q ue j l a s e e ncont ra. No cas o de s e col ocar com o argum e nt o um bool e an " f al se " , ou ape nas o nom e do f ich e iro, o program a cada v e z q ue f or e xe cut ado v ai re e s cre v er o f ich e iro a part ir do incio apagando t oda a inf orm ao j l cont ida. Num prim e iro cas o, ir apare ce r duas v e ze s o cont e do do f ich e iro aps e xe cut ar o program a duas v e ze s com o argum e nt o " t rue " . O cont e do do f ich e iro s apare ce r um a v e z, aps e xe cut ar o program a duas v e ze s , com o argum e nt o " f al s e " ou ape nas s e m argum e nt o. Na l inh a 11, be m com o na 12,13,14,15, pode m os v e r a ut il izao do m t odo print l n() s obre o obj e ct o" out " , q ue v ai pe rm it ir e s cre v er um a l inh a no f ich e iro. Exis t e m out ros m t odos com o o print () , w rit e () com f uncional idade idnt icas e m bora m e nos ut il izados a nv e lda e s crit a de f ich e iros de t e xt o. P or f im , t e m os o m t odo cl os e q ue ir " f e ch ar" o f ich e iro, al go q ue de v e s e r s e m pre e xe cut ado as s im q ue s e t e rm ina a e s crit a num f ich e iro. as s im t e rm inada a l igao e nt re o f ich e iro e o program a. , port ant o, um pas s o f ul cral ,v is t o q ue cas o no e xe cut ado, pode r de it ar a pe rde r o cont e do do f ich e iro. Agora q ue j s abe m os com o e s cre v er em f ich e iros ape nas f al t a a l e it ura dos m e s m os . P ara is s o v am os com e ar por obs e rv ar o cdigo s e guint e.
1 import java.io.*; 2 3 public class FileRead{ 4 5 6 7 8 9 public static void main(String args[]){ try{ BufferedReader leitor = new BufferedReader(new FileReader("C:\\file.txt")); String linha = ""; linha = leitor.readLine(); while(linha != null){ System.out.println(linha); linha = leitor.readLine(); }

10 11 12 13 14 15 16 17 leitor.close(); 18 19 } 20 21 catch(IOException e){ 22 System.out.println(e.getMessage()); 23 } 24 } 25}

D e um a f orm a re s um ida, o q ue e s t e cdigo ir f aze r s im pl e s m e nt e ir ao f ich e iro f il e .t xt , l erl inh a-a-l inh a e im prim ir na cons ol a. Com o pode m os v e r na l inh a 9 criado um obj e ct o B uf f e re dRe ade r q ue , at rav s de um obj e ct o F il e Re ade r, ir ace de r ao f ich e iro f il e .t xt . Na l inh a 10 ire m os criar a v ariv el 'l inh a', do t ipo St ring, inicial izando-a com o St ring v azia (" " ) . Em s e guida, na l inh a 11, v am os l e r a prim e ira l inh a do f ich e iro e v am os col ocar o cont e do de s s a l inh a na v ariv ell inh a, s ob f orm a de St ring. Nas l inh as 12,13,14 e 15, f e it o um cicl o para l e rt odas as l inh as do f ich e iro, cada v e z q ue o cicl o d um a v ol t a, im pre s s o o v al or da l inh a ant e rior e l ido a l inh a s e guint e , at no e xis t ire m m ais l inh as no f ich e iro. F inda a l e it ura, a l igao ao f ich e iro t e rm inada, com o pode m os v e r na l inh a 17. O re s ul t ado f inal v ai s e r e xact am e nt e o cont e do do f ich e iro. Aps e s t as t rs part e s do art igo o l e it or j cons e guir re al izar as principais f une s de I O e m Jav a. Exis t e m um s e m nm e ro de out ras f orm as de f aze r o q ue f oi aq ui de m ons t rado, be m com o um out ro s e m nm e ro de out ras cois as de s e pode f aze r com Jav aI O.

<16>

F bio Corre ia

t e cnol ogias
D e s e nh ado para au t om at izar o proce s s o de de s e nv ol v im e nt o e de pl oying de apl icae s R F I D, o RF I D Anyw h e re u m a pl at af orm a de m iddl e w are q u e re s ponde aos re q u is it os f s icos da t e cnol ogia, proporcionando t am bm a capacidade de s im u l ao e de re s pos t a e m am bie nt e s RF I D de produ o.

RF I D Appl icat ions


D e s e nv ol v im e nt o de apl icae s para dis pos it iv os RF I D
A t e cnol ogia RF ID j e xis t e h al guns anos , m as ape nas agora com e a a e m e rgir. O s dis pos it ivos ide nt if icadore s (ch ips ) baixaram s ignif icat ivam e nt e o pre o/ unidade , f aze ndo e s t a t e cnol ogia m ais propcia a inve s t im e nt os .
RF I D s ignif ica Radio F re q ue ncy I de nt if icat ion, ou s e j a, com pe q ue nos ch ips q ue pode m s e r de v rios f orm at os e t am anh os , com um de t e rm inado cdigo, cons e guim os ide nt if icar de t e rm inado produt o. P or e xe m pl o, q uando e s t e pas s a por um a ant e na RF I D , q ue e nv ia um s inal de rdio, e s t e re f ract ado pe l o ch ip, pode ndo s e r e s t e m t odo f e it o de duas m ane iras : por re f raco s im pl e s , onde o ch ip re ce be o s inal de rdio e com a f ora de s s e s inal cons e guida um a re f ract ao, ou e nt o, por t rans m is s o inde pe nde nt e, q ue q uando o s inal re ce bido o ch ip re s ponde com o s e u prprio s inal . Es t e l t im o m t odo pe rm it e um a m aior dis t ncia e nt re o ch ip e a ant e na. P ara de s e nv ol v e r apl icae s para e s t a t e cnol ogia e xis t e um produt o com grande e xpe rincia de m e rcado ch am ado RF I D Any w h e re , um s of t w are Sy bas e .

Q uat ro raze s para a ut il izao de s t e s of t w are : s im ul ao e m t e m po re al de e nt rada/ s ada de dis pos it iv os RF I D num a re de t ot al m e nt e pe rs onal izav el , ope s de de s e nv ol v im e nt of l e xv e is , q ue pe rm it e m ao program ador o t ot al cont rol o s obre a pl at af orm a q ue e st a de s e nv ol v er , s e gurana de nv e l e m pre s arial , onde t odas as com unicae s e f e ct uadas s o pas s adas por H TTP S e o s uport e a v rios H ardw are V e ndors . Ne s t e art igo ire i apre s e nt ar ao l e it or um t ut orial s t e p-by-s t ep para e xe cut ar s im ul ae s no RF I D Any w h e re , com o obj e ct iv o de obs e rv ar a e nt rada e a s ada das div e rs as t ags (ch ips ) no s is t e m a.

P as s os :

(no f im de cada pas s o grav ar cl icando na dis q ue t e v e rde dire it a)

1 Conf igurao dos Sim ul adore s :


Criar dois RF I D M ul t iprot ocol Sim ul at or conne ct or a part ir da dropdow n m e nu s upe rior . Conf igurar os cone ct ore s com os s e guint e s dados :

<17>

t e cnol ogias
2 Conf igurar o P rot ocol o AL E:
Se l e ccionar AL ESe rv ice M odul e , e xpandir o grupo Source s e adicionar as s e guint es f ont e s (ins e rir f ont e e carre gar no s inal+ para cada um dos cas os ) : Source 1:I nv T racSim 1 Source 2: I nv T racSim 2 Nam e : I nv T racSource 1AL E Se nd Re port s as O bj e ct :T rue - Subs cribe rs Es cre v e r I nv T racAl eT CP e carre gar no [+ ] Criar um s e gundo obj e ct o AL E Ev e nt Cy cl e , re pe t indo os pas s os ant e riore s com as s e guint e s proprie dade s : D urat ion (m s ) : 5000 L ogical Re ade rs : Source 2 Re portD e f init ions : 2 1 Re port : Re portNam e : Source 2Addit ions EP Ct oB e Re port e d: AD D I TI O NS 2 Re port : Re portNam e : Source 2D e l et ions EP Ct oB e Re port e d: D EL ETI O NS Nam e : I nv T racSource 2AL E Se nd Re port s as O bj e ct :T rue Subs cribe rs : I nv T racAl eT CP

3 Conf igurar o T CPm e s s aging:


Criar um nov o obj e ct o T CP M e s s aging a part ir do dropdow n m e nu s upe rior e conf igurar com os s e guint e s dados : I P Adre s s : l ocal h os t Nam e : I nv T racAl eT CP P ort : 10002

4 Conf igurar os AL E Ev e nt Cy cl e conne ct ors :


Criar um nov o obj e ct o AL E Ev e nt Cy cl e a part ir do dropdow n m e nu s upe rior e conf igurar com os s e guint e s dados : - Ev e ntCy cl e - - St art -St op Condit ions - - - D urat ion (m s ) : 5000 -L ogical Re ade rs Es cre v e r Source 1 e carre gar no [+ ] Re port (s ) de f init ion: 2 G rav ar para um nov o grupo de apare ce r: - re port Spe cs 1 - Nam e : Source 1Addit ions - EP Ct oB e Re port e d: AD D I TI O NS - re port Spe cs 2 - Nam e : Source 1D e l et ions - EP Ct oB e Re port e d: D EL ETI O NS Re port s

Crie um l t im o obj e ct o AL E Ev e nt Cy cl e , re pe t indo os pas s os ant e riorm e nt e dados com as s e guint e s proprie dade s : D urat ion (m s ) : 5000 L ogical Re ade rs : Source 1 Source 2 Re portD e f init ions : 1 G rouping P at t e rns : urn:e pc:pat :s gt in-9 6:X.X.X.* I ncl ude Count :T rue I ncl ude T ag Uri: F al se Re portI fEm pt y: T rue Re portNam e : Count Re port EP Ct oB e Re port e d: CURRENT Nam e : I nv T racCount AL E Se nd Re port s as O bj e ct :T rue Subs cribe rs : I nv T racAl eT CP

Not a: Es t a de m ons t rao us a m ais AL E

re port s e cone ct ore s do q ue s e ria norm al m e nt e re q ue rido. I st o f e it o para m os t rar um a m aior v arie dade de ope s AL E.

<18>

t e cnol ogias
P ara v e r o re s ul t ado:
-I niciar/ Re iniciar t odos os com pone nt es al t e rados / criados ; - Corre r a s e guint e apl icao: \Sy bas e \RF I D Any w h e re \B in\iAny w h e re .Rf idNe t .Al e .Re port V i ewer .e xe ; Cl icar no s e parador T CP / I P M odif icar a s e rv e r portpara 10002 Cl icar e m St art Acabou de conf igurar a s ua s im ul ao no RF I D -Any w h e re ! prim e ira com t odo o s of t w are (e s s e ncial m e nt e RF I D Any w h e re e .NET) e h ardw are (v rios t ipos de t ags , com put adore s , dis pos it iv os m v e is , re ade rs , e t c.) ne ce s s rios para de s e nv ol v er e t e st ar s ol ue s RF I D de q ual idade e m pre s arial . Se gundo a Sy bas e , os obj e ct iv os principais s o o de s e nv ol v im e nt o da t e cnol ogia, a dis ponibil izao de F ram e w ork s ope ns ource para o m e rcado e o e s t abe l e cim e nt o de parce rias com f orne ce dore s de h ardw are , I SV s, I nt e gradore s , As s ociae s e I ns t it ut os de I nv e st igao. A Sy bas e , um dos l de re s de m e rcado na re a e m pl e no de s e nv ol v im e nt o q ue o RF I D , apos t a na inv e st igao no cam po e de ixa as s im um de s af io s e m pre s as m ais v iradas para a re a da dis t ribuio e da com e rcial izao: o de pode re m t e r um s ignif icat iv o aum e nt o de produt iv idade com a apos t a ne s t at e cnol ogia e m e rge nt e.

CR IA D O CENTR O D E INV ES TIG A O R F ID EM P O R TUG A L

S YB ASE RF ID S O L UTIO NS CENTER


O Ce nt ro ir-s e - f ocar e s s e ncial m e nt e no de s e nv ol v im e nt o de F ram e w ork s ope ns ource de s t inadas ao m e rcado e m pre s arial port ugus . J no 2 t rim e s t re de 2007 pre t e nde -s e dis ponibil izar um a prim e ira v e rs o de s t e f ram e w ork q ue ir cont e m pl ar s ol ue s de t rack ing de pe s s oas , inv e nt rio de produt os , s is t e m a de ge s t o de arm azns , e nt re out ros D ia 19 de Se t e m bro de 2006 a Sy bas e P ort ugal anunciou e m com unicado a criao de um ce nt ro de inv e st igao e de s e nv ol v im e nt o de s ol ue s RF I D, o prim e iro da Sy bas e a nv el m undial . O Ce nt ro de I nv e st igao RF I D coorde nado por P aul o L ope s , B us ine s s De v el opm e nt M anage r da Sy bas e , e o prim e iro ce nt ro de com pe t ncias da Sy bas e e xcl us iv am e nt e de dicado a RF I D . As s ol ue s s e ro de s e nv ol v idas com bas e e m produt os m iddl e w are Sy bas e e de parce iros , nom e adam e nt e a Sy m bol , I nt e rm e c/ Cagicom p e Al ie n/ Cre at iv e Sy s t e m s , e nt re out ros . O Ce nt ro e s t a f uncionar nas ins t al ae s da Sy bas e P ort ugal e m Carnaxide e cont a

Cas os de Suce s s o
EM P O RTUG AL

S ATU O e iras

Com a t e cnol ogia RF I D ace l e rado o proce s s o de v al idao de bil het e s, ev it ando as s im a acu m u l ao de pe s s oas nas e nt radas das e s t ae s do SATU.
O m ais re ce nt e t rans port e criado pe l a Cm ara M unicipal de O e iras t am bm apos t a na t e cnol ogia RF I D para a e nt rada de pas s age iros e carre gam e nt o dos bil het e s. Um norm al pas s age iro de s t e t rans port e ape nas t e m de adq uirir um cart o (com o cus t o de 0.50 ) e carre gar o m e s m o com as v iage ns q ue pre t e nde r e f e ct uar, para q ual q ue r das e s t ae s da l inh a do SATU (Sis t e m a Aut om t ico de T rans port e Urbano) . Na prxim a im age m pode m os v e r a Ant e na de l e it ura das t ags e m but idas nos cart e s dos ut il izadore s , q ue nat ural m e nt e e st ar l igada a um re ade r.

<19 >

t e cnol ogias

EM ESP ANH A

Corre os de Es paa

O v e cul o da prxim a im age m ut il iza para s e m ov e r um s is t e m a de carris e puxado por cabos de ao na part e inf e rior do m e s m o, q ue por s ua v e z s o m ov idos por m ot ore s pre s e nt e s na prim e ira e s t ao do pe rcurs o.

Es t am os act ual m e nt e a f inal izar a ins t al ao do h ardw are e a com e ar a ins t al ao do m iddl e w are q ue f oi f orne cido pe l a Sy bas e , e m de cl arae s
dos Corre os A im pl e m e nt ao de s t e s is t e m a de cont rol o por radiof re q uncia nos s e us 15 ce nt ros de t rans port e e arm aze nam e nt o dis t ribudos por t oda a Es panh a t ev e um cus t o de m ais de um m il h o de e uros , para aq uis io da t e cnol ogia ne ce s s ria. Es t a q uant ia incl ui s of t w are e s pe cf ico e a s ua int e grao nos s is t e m as inf orm t icos dos Corre os , a aq uis io de 5.000 t ags pas s iv as , a ins t al ao de m ais de 1.9 00 ant e nas f ixas e m ais de 330 re ade rs m v e is para e s s e s ce nt ros , f orne cidos pe l a Sy m bol T e ch nol ogie s . Com o principais be ne f cios , os Corre os re conh e ce m q ue com um s is t e m a RF I D se cons e guiu m e l h orar a q ual idade do s e rv io, dar um m aior v al or aos s e us cl ie nt es e e st abe l e ce r um a v ant age m com pe t it iv a em re l ao concorrncia. A e m pre s a t am bm adm it e q ue obt m um m e nor cus t o " de v ido e st andardizao da t e cnol ogia e ao cus t o unit rio das t ags pas s iv as e m re l ao s t ags act iv as " , e um a m aior f uncional idade , " j q ue al m do cont rol o de q ual idade pode m os apl icar a out ras f uncional idade s com o o cont rol o de e l e m e nt os l ogs t icos (carros , cam ie s , e t c.) .

Em baixo pode m os v is ual izar duas m q uinas de carre gam e nt o de cart e s , onde ao ce nt ro s e col oca o cart o, s e m e st ar e m cont act o dire ct o com a prpria m q uina, pe rm it indo as s im aos ut il izadore s um carre gam e nt o m ais rpido, e v it ando os norm ais at ras os de im pre s s o de bil het e s. Ne s t e m om e nt o o pe rcurs o de s t e t rans port e ainda al go re duzido, m as s e m dv ida t il para a popul ao da zona.

<20>

D anie l Corre ia

t ut orial
propriedades &= "Atributos:" & ficheiro.Attributes.ToString & vbCrLf propriedades &= "Criao:" & ficheiro.CreationTime.ToString & vbCrLf propriedades &= "Ultimo Acesso:" & ficheiro.LastAccessTime.ToString & vbCrLf propriedades &= "Modificao:" & ficheiro.LastWriteTime.ToString & vbCrLf End With Console.WriteLine(propriedades) Return True Catch ex As Exception Return False End Try End Function

V is ual B as ic.NET 4 part e


Na e dio ant e rior f ize m os um a abordage m s obre a ut il izao de array s e com o us ar as cl as s e s do nam e s pace Sy s t e m .I O para a m anipul ao de f ich e iros . Com o s abe m os , q ual q ue r f ich e iro pos s ui um conj unt o de proprie dade s , proprie dade s e st as q ue e s t o ace s s v e is us ando a cl as s e F il eI nf o.
Dim ficheiro As New FileInfo("ficheiro.txt")

F u no M ain
Sub Main() Dim strCaminho As String = "" While Trim(strCaminho) = String.Empty Console.Write("Caminho do ficheiro: ") strCaminho = Console.ReadLine() Console.Clear() End While If Not getProperties(strCaminho) Then Console.WriteLine("Erro") System.Threading.Thread.Sleep(2000) Else Console.ReadLine() End If End Sub

P roprie dade s do t ipo, nom e do f ich e iro, l ocal izao, e xt e ns o, at ribut os , t am anh o, et c, e s t o f acil m e nt e ace s s v e is re corre ndo as proprie dade s incorporadas na cl as s e F il eI nf o. Exe m pl o:

O ut pu t
Cam inh o do f ich e iro: c:\f ich e iro.t xt P rop. do f ich e iro ====== Nom e : f ich e iro.t xt Cam inh o: c:\f ich e iro.t xt Ext e ns o: .t xt T am anh o 37 At ribut os : Arch iv e Criao: 11-10-2006 16:27:14 Ul t im o Ace s s o: 11-10-2006 16:28:14 M odif icao: 11-10-2006 16:28:14 Com o v im os , um a das v ant age ns e m us ar a cl as s e F il eI nf o, a pos s ibil idade de obt er proprie dade s de um f ich e iro de um a f orm a rpida, m as no s . Es t a cl as s e incorpora t am bm f une s para criar f ich e iros , m ov er ou copiar da s ua l ocal izao act ualpara out ra, apagar , e ncript ar , e s cre v er ,l er ,e t c.

F uno para obt e r as proprie dade s de um f ich e iro


Private Function getProperties(ByVal caminho As String) As Boolean Try Dim ficheiro As New FileInfo(caminho) Dim propriedades As String = "" With ficheiro propriedades &= "Prop. do ficheiro" & ficheiro.Name.ToString & vbCrLf propriedades &= "======" & vbCrLf propriedades &= "Nome: " & ficheiro.Name.ToString & vbCrLf propriedades &= "Caminho: " & ficheiro.FullName.ToString & vbCrLf propriedades &= "Extenso: " & ficheiro.Extension.ToString & vbCrLf propriedades &= "Tamanho:" & ficheiro.Length.ToString & vbCrLf

<21>

t ut orial
No s o ape nas os f ich e iros q ue pos s ue m proprie dade s , pois os dire ct rios t am bm as pos s ue m e , por is s o, t e m os dis ponv e la cl as s e D ire ct ory I nf o, cont e ndo q uas e as m e s m as proprie dade s da F il eI nf o, no dif e re nciando m uit o a s ua ut il izao da dos f ich e iros . Q ue m t em v indo a acom panh ar o s e guim e nt o dos art igos s obre e st a l inguage m , ce rt am e nt e q ue s e ape rce be u q ue o obj e ct iv o dar um a aj uda a q ue m pre t e nde iniciar-s e e m V B .NET ,l ogo, t odos as m at rias no s o e xt e ns iv am e nt e abordadas , f icando is s o ao cargo de cada um , por is s o, t e rm ina aq ui a abordage m a f ich e iros . O ut ra das grande s im pl e m e nt ae s na .NET F ram e w ork , f oi o nam e s pace Sy s t e m .St ring. Na m aioria dos proj e ct os , e xis t e um a s it uao e m q ue pre cis am os de f aze r o t rat am e nt o de um a st ring, da a im pl e m e nt ao de cl as s e s para cada v ez m ais f acil it ar a t are f a do program ador. Ne s t e art igo abordare m os as f une s m ais im port ant e s para o t rat am e nt o de s t rings , e para e xe m pl if icar ire m os ut il izar um a s t ring f ixa, q ue s e r V is ual B as ic .NET. As f une s q ue ire m os e xe m pl if icar s o as q ue , por norm a, s o m ais ut il izadas , s e ndo el as , Cont ains () , I nde xO f () , I ns e rt () , L e ngt h () , L as t I nde xO f () , SubSt ring() e T rim () . A f uno Cont ains () pe rm it e -nos s abe r s e um a de t e rm inada s t ring e xis t e na s t ring e m q ue s t o. No e xe m pl o s e guint e , ir s e r re t ornado o t e xt o Exis t e , pois com o pode m os v e rif icar, a s t ring B a e s t cont ida na s t ring e xe m pl o.
Dim str As String = "Visual Basic .NET" If str.Contains("Ba") Then Console.Write("Existe") Else Console.Write("No Existe") End If

D im s t r As St ring = " V is ual B as ic .NET" Cons ol e .W rit e (s t r.I nde xO f (" B " ) ) A f uno I ns e rt () pe rm it e -nos ins e rir e m q ual q ue r pos io de um a s t ring, out ra s t ring. No e xe m pl o s e guint e , ir s e r adicionada a st ring f ixe no f im da s t ring s t r, re t ornando um a s t ring V is ual B as ic .NET f ixe . D im s t r As St ring = " V is ual B as ic .NET" st r = st r.I ns e rt (17, " f ixe " ) Cons ol e .W rit e (s t r) A f uno L as t I nde xO f () de v ol v e -nos a l t im a pos io de um a s t ring q ue s e e ncont ra num de t e rm inado t e xt o. No e xe m pl o s e guint e, s e r re t ornada a pos io 8, pois onde s e e ncont ra a ul t im a l et ra a na s t ring. D im s t r As St ring = " V is ual B as ic .NET" Cons ol e .W rit e (s t r.L as t I nde xO f (" a" ) ) A f uno L e ngt h () , indica-nos o t am anh o q ue um a s t ring t e m . No e xe m pl o s e guint e , ir s e r re t ornado o v al or 17, pois a s t ring ut il izada cont m 17 caract e re s . D im s t r As St ring = " V is ual B as ic .NET" Cons ol e .W rit e (s t r.L e ngt h) A f uno SubSt ring() pe rm it e -nos part e s de um a s t ring. cort ar

D im s t r As St ring = " V is ual B as ic .NET" Cons ol e .W rit e (s t r.Subs t ring(7, 3) ) 'O UTP UT :" B as " A f uno T rim () t al v e z se j a a m ais us ada de t odas . Es t a f uno pe rm it e -nos re m ov e r os e s paos q ue e s t o a m ais num a s t ring. Um e xe m po da s ua ut il izao: D im s t r As St ring = " V is ual B as ic .NET " Cons ol e .W rit e (s t r.T rim ) 'O UTP UT :" V is ual B as ic .NET" Com o pode ro v e r, e xis t e m out ras f une s para t rat am e nt o de s t rings , q ue pode m s e r rapidam e nt e de s cobe rt as na docum e nt ao. Q uant o ao t rat am e nt o de s t rings t udo. Na prxim a e dio ire m os dar inicio abordage m s obre bas e de dados , por is s o e st ej am at e nt os ao l anam e nt o da e dio s e guint e.

A f uno I nde xO f () pe rm it e -nos s abe r s e um a de t e rm inada s t ring e xis t e no t e xt o e de v ol v enos a pos io inicialde l a cas o e xis t a. No e xe m pl o s e guint e , ir s e r re t ornada a pos io 7, pois onde s e e ncont ra a l et ra B .

<22>

Tiago Sal gado & M arce l o M art ins

gnu/ l inux
# mount <directrio representativo do hardware ou ficheiro> <directrio de montagem> <opes>

P or e xe m pl o,
# mount /dev/sda /mnt/pendrive -t vfat

M ount ing F il e Sy s t ems


A m ont age m de s is t e m as de f ich e iros nos s is t e m as G NU/ L inux al go q ue ge ra s e m pre e m q ual q ue r nov at o na m at ria dv idas e inde cis e s . Es t e art igo pre t e nde e xpl icar com s im pl icidade e de s de o incio, t odos os pas s os re q ue ridos para q ue t udo f iq ue a f uncionar corre ct am e nt e.
s e m dv ida um e nt re m uit os out ros ch oq ue s o q ue s e t e m ao e xpe rim e nt ar um s is t e m a G NU/ L inux pe l a prim e ira v e z, q ue re r ace de r q ue l a driv e onde guardam os t oda a nos s a v ida e no cons e guir ne m s abe r com o o f aze r. ce rt o q ue os D e s k t op Env ironm e nt s m ais re ce nt es t m f acil it ado m uit o o proce s s o, cont udo, ne m s e m pre nos of e re ce m com o opo grf ica aq uil o q ue q ue re m os e xact am e nt e f aze r. Com o t al , conv m conh e ce r e dom inar os principais m e canis m os do s is t e m a de m ont age m de f ich e iros e us -l os com o be m e nt e nde rm os , se m l im it ae s . V am os a is s o... P rim e iro, h q ue re t e r a ide ia q ue e m G NU/ L inux q ual q ue r driv e , para pode r s e r ace dida, t e m de s e e ncont rar m ont ada, ou se j a, a s ua pre s e na f s ica t ev e de t e r s ido ide nt if icada pe l o s is t e m a, driv e t e r s ido as s ociado um dire ct rio de m ont age m e , por f im , t e r-s e proce dido as s ociao do cont e do da driv e ou s is t e m a de f ich e iros , ao dire ct rio de m ont age m de f inido. P ara t al , us a-s e o com ando m ount , q ue f unciona da s e guint e m ane ira:

Es pe cif ica q ue a pe n driv e (q ue , ne s t e cas o, re pre s e nt ada por / de v / s da no dire ct rio q ue cont m os f ich e iros q ue re pre s e nt am o h ardw are / de v ) s e r m ont ada no dire ct rio (q ue de v e r j pre v iam e nt e e xis t ir) / m nt / pe ndriv e, t e ndo com o opo -t v f at , o q ue inf orm a o m ount de q ue s e e s t a t rabal h ar com um s is t e m a de f ich e iro e m F AT . P ara s abe r m ais f acil m e nt e a q ue / de v / xxx corre s ponde a driv e q ue de s e j am os m ont ar de v e r corre r o com ando: # f dis k -l , ou q ual q ue r corre s ponde nt e grf ico. No e nt ant o, e com o o l e it or prov av el m e nt e e st ar a pe ns ar, s e ria bas t ant e cans at iv o s e m pre q ue s e inicias s e o s is t ema t e r de proce de r e xe cuo de s t e s com andos para cada driv e a q ue q uis e s s e m os ace de r, com o t al , ire m os t am bm apre nde r a t ornar t udo is t o aut om t ico. D e q ual q ue r m odo, e ant e s de t udo is s o, h al go a im port ant e a v e r. T odo e s t e proce s s o de m ont age m re q ue r q ue o k e rne l da nos s a dis t ribuio j cont e nh a carre gados m dul os q ue l h e pe rm it iro, de s de m ont ar os s is t e m as de f ich e iros h abit uais e m G NU/ L inux (com o o e xt 2/ 3, o Re is e rF S, o JF S, ...) , be m com os de W indow s (F AT , NTF S,...) , as s im com o al gum as proprie dade s de s t e s (s is t e m a de codif icao de caract e re s ) . De um m odo ge ral q uas e t odas as dis t ribuie s j t m act iv os e s t e s m dul os de raiz e , port ant o, s t e r de s e procupar m e s m o com o proce s s o de m ont age m de s is t e m as s de f ich e iros , s e j a el e m anualou aut om t ico. Ut il izadore s de Ubunt u, SuSE, M e pis , F e dora Core , e nt re m uit as out ras pode m pas s ar dire ct am e nt e ao pont o s e guint e . D e q ual q ue r m odo, s e al gum com ando l h e de r um e rro, pode r s e r de riv ado da ine xis t ncia de s uport e no k e rne l ao s is t e m a de f ich e iros pre t e ndido e , com o t al , de v e r s e guir o e xpos t o a s e guir.

<23>

gnu/ l inux
Re com pil ando o Ke rne l para garant ir s uport e aos s is t e m as de f ich e iros pre t e ndidos
P ode r-s e - pe ns ar q ue e s t e um pas s o com pl icado ou m e s m o arris cado, no e nt ant o ape nas re q ue r um pouco de at e no e t udo corre r be m . A s ua dis t ribuio de v e r t e r um m t odo part icul ar para proce de r a e s t a act iv idade e , com o ne m s e m pre o m t odo t radicional univ e rs al para t odas as dis t ribuie s , de ixo a cargo do l e it or procurar nos f runs da s ua dis t ribuio um t ut orial q ue l h e indiq ue com o proce de r para a re com pil ao do k e rne l . Subl inh o q ue para a grande m aioria das dis t ribuie s nada dis t o s e r ne ce s s rio. De v e r, s e s e guiu um q ual q ue r t ut orial s obre com o re com pil ar o k e rne l , e ncont rar-s e ne s t e m om e nt o num a int e rf ace s e m e l h ant e da im age m (ge ral m e nt e ace s s v e l pe l o com ando m ak e m e nuconf ig ou m ak e xconf ig) . D e s e guida e nt re e m :
Device Drivers ->DOS/FAT/NT Filesystems

E se l e ccione o s uport e para os s is t e m as de f ich e iros W indow s q ue de s e j ar. Em D e f aul t Ch ars e t f or F AT de v e r s e l e cionar Ent e r e ins e rir is o8859 -15, cas o o s e u s is t e m a de f ich e iros s e j a ace dido t am bm num s is t e m a W indow s , de m odo a no t e r probl e m as ne m na v is ual izao, ne m na e s crit a, do t e xt o pre s e nt e ne s s e t ipo de part io. Acim a de s s e v al or e ncont ra-s e o de De f aul t Code page f or F AT q ue de v e r s e r o 860 para a l ngua port ugue s a. D e s e guida, s e acabou de s e l e ccionar o s uport e para os s is t e m as de f ich e iros W indow s , de v e r t am bm act iv ar o s uport e aos s is t e m as de caract e re s de f inidos ant e riorm e nt e ,e m:
Device Drivers ->Native Language Support

E de v e r act iv ar:
<*> Codepage 860 (Portuguese) <*> NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)

O pcional m e nt e pode dar j e it o adicionar t am bm :


<*> NLS UTF-8

De v e r t am bm v e rif icar s e e m : M ov im e nt e -s e com as t e cl as de dire co, Ent e r para e nt rar nas pas t as , a barra de e s paos para s e l e ccionar cada m dul o q ue de s e j ar (e s t ar corre ct am e nt e se l e ccionado q uando apare ce r <* > no princpio da l inh a) e Es c para s air. Ent re e m : F il e Sy s t ems Aq ui t e r de s e l e ccionar cada s is t e m a de f ich e iros para o q ual q uis e r t e r s uport e. Um e xe m pl o:
Device Drivers -> CDROM/DVD Filesystems

cont m s uport e arm aze nam e nt o.

para

e sse s

t ipos

de

Cas o pre t e nda m ont ar f ich e iros de im age m de cd/ dv d .is o, s e l e cione t am bm ne s s a pas t a:
<*> Microsoft Joliet CDROM extensions

M ais :
Device Drivers -> Block devices <*> loop-back filesystem support

Cas o pre t e nda s uport e USB t e r de s e dirigir a:


Device Drivers -> USB Support <*> USB Mass Storage Support

e t udo o m ais s e ade q uar ao h ardw are pre s e nt e na s ua m q uina.

<24>

gnu/ l inux
Us e o T AB para s e l e ccionar Exit , e re pit a v rias v e ze s at s air do conf igurador e l h e se r pe rgunt ado s e de s e j a grav ar as al t e rae s f e it as , onde de v e r re s ponde r Ye s . P ros s iga o t ut orialda s ua dis t ribuio de m ane ira a apl icar o nov o k e rne l e act iv -l o. O f act o de um a driv e s e e ncont rar no f st ab, no q ue r dize r e xact am e nt e q ue no m om e nt o do boot t e nh a de l e st ar al gum t ipo de dados a s e re m m ont ados . P or e xe m pl o, pode adicionar-s e um a driv e de cdrom 's ao f st ab s e m l s e e ncont rar ne nh um cd, q uando f or para a ace de r bas t ar f aze r:
# mount /dev/cdrom0

M ont ando...
P os t o t udo is t o, v am os f inal m e nt e pas s ar aco e a apre nde r a m ont ar os s is t e m as de f ich e iros q ue ne ce s s it am os s e m q ual q ue r probl e m a. P rim e iro, e com o j f oi re f e rido, h um f ich e iro de t e xt o q ue de f ine , aq uando do carre gam e nt o do s is t e m a, as driv e s a s e re m m ont adas aut om at icam e nt e. T alf ich e iro o / et c/ f st ab e e dit v e l ape nas pe l o s upe r ut il izador root . T udo aq uil o q ue s e f az pe l o com ando m ount pode s e r de f inido no f st ab e de s t e m odo m ont ado de s de o incio s e m int e rv e no dire ct a do ut il izador. O f ich e iro cons is t e em 5 col unas q ue de f ine m e xact am e nt e o m e s m o q ue de f inido no com ando m ount , s e ndo e s t as :
<fs> <mountpoint> <type> <opts> <dump/pass>

ou
# mount /mnt/cdrom

q ue o com ando aut om at icam e nt e l e r o f st ab e e xe cut ar o proce s s o com t odas as ope s l de f inidas . Se ndo por s ua v eza de f inio na driv e no f st ab:
/dev/cdrom0 /mnt/cdrom noauto,ro 0 0 iso9660

O f act o de ape nas o ut il izador root pode r m ont ar/ de s m ont ar a part io/ driv e pode s e r al t e rado pe l a adio da opo 'us e r' na col una <opt s > do f st ab, na l inh a da driv e pre t e ndida. J o 'ro', re pre s e nt a re ad onl y, ou s e j a, ape nas s e r pos s v el a l e it ura ne s s a driv e cd. P ara m ont ar um a part io F AT f aram os por e xe m pl o, nov am e nt e t udo na m e s m a l inh a:
/dev/hda4 /mnt/particaofat user,rw 0 0 vfat

Corre s ponde ndo o <f s > im age m do h ardw are no dire ct rio / de v / , o m ount point ao dire ct rio onde t al driv e de v e se r m ont ada para q ue s e j a ace dida, o t y pe re f e re -s e aos s is t e m a de f ich e iros (f at , e xt 3, et c) , o <opt s > a ope s . J o dum p re f e re s e ne ce s s idade ou no de s e r f e it o um dum p ao dis co aq uando do s e u carre gam e nt o, e o pas s re f e re -s e orde m pe l a q ual de v e se r f e it o um ch e ck s driv es cas o o s is t e m a no t e nh a s it o t e rm inado corre ct am e nt e (0 re f e re q ue no ne ce s s rio nunca f aze r t al v e rif icao, e a part io rootde v e r t e ro v al or 1) . Um e xe m pl o para a part io root :
# <fs> <mountpoint> <type> <opts> <d/p> /dev/hda1 / reiserfs noatime 0 1

<25>

gnu/ l inux
Q ue nos m ont ar a driv e com 'rw ', ou s e j a, com a part icul aridade de s e e ncont rar com ace s s o re ad and w rit e (e s crit ae l e it ura) . Se porv e nt ura e s s e ace s s o f or ape nas v l ido para o ut il izador root ,e de s e j arm os de f inir as pe rm is s e s da driv e e m q ue s t o, bas t a nas ope s adicionar o com ando um as k =0xxx, e m q ue o xxx um nm e ro q ue de f ine as pe rm is s e s da part io m as inv e rt idas , e o 0 inicial o pre f ixo q ue indica q ue o nm e ro cons e q ue nt e e st ar e m oct al . O u se j a, s e q uis e rm os de f inir um a pe rm is s o 777 f are m os um as k =0000, s e q ue re m os 644 f are m os um as k =0133. Se m pre 7 m e nos o nm e ro q ue de f ine a pe rm is s o q ue pre t e nde m os . P ara s abe r de f inir pe rm is s e s v ej a a e dio pas s ada da Re v is t a P RO G RAM AR. P ode m os t am bm de f inir um a pe n us b no f st ab, f aze ndo para is s o:
/dev/sda user,rw /mnt/pendrive 0 0 vfat

Agora, o uid e gid, um a m ane ira dif e re nt e de de f inir pe rm is s e s , e nq uant oo um as k f az o e q uiv al e nt e a um ch m od (de f inir pe rm is s e s ) , o uid e gid f aze m o e q uiv al e nt e a um ch ow n (de f inir a q ue m s e apl icam as pe rm is s e s de f inidas ) . P ara s abe r os v al ore s a pr a s e guir ao = de cada opo f aa:
$ id <nome do user que quer que seja dono (owner) da drive>

E obt e r a re s pos t a. O ut ra part icul aridade da m ont age m de s is t e m as de f ich e iros q ue pode r us ar o com ando m ount para m ont ar im age ns de f ich e iros e m .is o, para is s o:
# mount -t iso9660 -o loop,user <imagem>.iso /<directrio de montagem>

No nos e s q ue am os q ue na com pil ao do k e rne lf oi de f inido, para os s is t e m as de f ich e iros F AT , o s is t e m a de codif icao de caract e re s de f aul t . Se r com e s s e q ue a driv e s e r m ont ada. Se no o de s e j ar us e a opo nl s =, por e xe m pl o nl s =is o8859 -15, ou nl s =ut f 8. P ara nt f s f aram os por e xe m pl o:
/dev/hdb1 /mnt/windows ntfs nls=utf8,user,ro,uid=1000,gid=1000

P e ns o q ue e s t o de s t a m ane ira e xpl icadas as ope s bs icas para a m ont age m de s is t e m as de f ich e iros , com o o f aze r , e ce rt os re q ue rim e nt os ne ce s s rios ao nv e l do k e rne l . Exis t e m m uit as m ais ope s , t al v ez t ant as q ue dariam cont e do para um a re v is t a P RO G RAM AR int e ira, m as is s o f ica a cargo do ut il izador q ue acabou de l e r e st e art igo e de s e j a s abe r m ais . O com ando m an m ount , de v e r re s ponde r m ais de t al h adam e nt e a t odas as ope s pos s v e is e s uas f une s . B oas m ont age ns ...

0 0

Q ue de f ine q ue a driv e a s e r m ont ada pos s ui s is t e m a de f ich e iros e m NTF S, com o s is t e m a de codif icao de caract e re s de f inido para ut f 8 (pode s e r us ada is o8859 15, m as irre l ev ant e v is t o q ue por de f e it o nos s is t e m as G NU/ L inux nada pode s e r e s crit o e m nt f s) , o ut il izador norm alpode r m ont -l a e de s m ont -l a ('us e r') , m as ape nas pode r l -l a (ro) .

<26>

M igue l P ais

proj e ct o

A ne ce s s idade a m e de t odas as inv e ne s


w e Spe ndM one y
um a apl icao w e b de s t inada a pe s s oas q ue q ue re m cont rol ar as s uas de s pe s as de f orm a f cil , rpida e s e gura. No pre cis o ins t al ar e m ne nh um com put ador , ape nas ne ce s s rio re gis t ar no s it e e t e r um a l igao I nt e rne t para com e ar a us ar . A ide ia para o proj e ct o com e ou num a conv e rs a de caf , e nt re col e gas de t rabal h o, onde dis cut am os a q ue s t o do cont rol o das de s pe s as f e it as ao l ongo dos dias e s e m anas . P oucos de ns re al izam os com al gum a pe riodicidade a act ual izao das cade rne t as e ch e gam os concl us o q ue os e xt ract os bancrios pas s ado al gum t e m po s o il e gv e is , pois a f raca de s crio " h um ana" das de s pe s as , por e xe m pl o " CO M P 9 8, 5 e uros " , no pe rm it e re cordar e xact am e nt e q uala de s pe s a e m s i. O ut ro probl e m a cons is t e no us o de apl icae s act ual m e nt e e xis t e nt e s para o W indow s , norm al m e nt e com um int e rf ace conf us o, com " f e at ure s "q ue ningum us av a e dif cil de apre nde r. L anado o probl e m a na m e s a pe rce be m os q ue a m e l h or s ol uo no e ra grav ar cada de s pe s a q ue f aze m os e m f ich e iros de t e xt o arm aze nados num pc, m as num a apl icao w e b q ue pe rm it is s e ace s s o e m q ual q ue r al t ura e l ugar, s e ndo ne ce s s rio s e r int uit iv a e s e gura (pois o dinh e iro s e m pre um as s unt o s e ns v el na int e rne t )e f cil de us ar. D e pois de m uit as s uge s t e s de cidi iniciar e s t a av e nt ura de f aze r um a apl icao q ue no s m e re s ol v e sse a f al t a de cont rol o s obre os gas t os , m as q ue t am bm s e rv is s e de t re ino para os m e us s k il l s com um a ce rt af ram e w ork q ue j andav a h e st udar a al gum t e m po...

D uas s e m anas de pois e com um a prim e ira v e rs o f uncional com e e i a ponde rar a h ipt e s e de t ornar o proj e ct o dis ponv e lna I nt e rne t , ou m e s m o criar um a v e rs o com e rcial . P ara conf irm ar t odas e s t as q ue s t e s , f oi f e it o um pl ano de ne gcio bs ico e o proj e ct o f oi apre s e nt ado na Conf e rncia B arcam p P t , (h t t p:/ / barcam p.org / B arCam pP ort ugal ) , conf e rncia e s t a s obre nov as t e cnol ogias , program ao, w e b 2.0 e out ros as s unt os . A apre s e nt ao f oi um s uce s s o, v rias pe s s oas de m ons t raram int e re s s e no proj e ct o e m ais t arde f oi f e it a out ra apre s e nt ao pbl ica na Sh if t 06, onde cons e gui e f e ct uar m uit os cont act os e pe rce be r o pot e ncial q ue t e m os e m P ort ugal para de s e nv ol v e r para a w e b.

W e Spe ndM one y f oi de s e nh ado de raiz pe ns ando no ut il izador. No s e pre t e nde cons t ruir um a apl icao com ce nt e nas de " f e at ure s " q ue no s e j am us adas pe l os ut il izadore s , m as procurar s e r t o s im pl es com o um w e bl og e f orne ce r aos ut il izadore s as f e rram e nt as q ue pre cis am para guardar e cat al ogar as s uas de s pe s as , de f inir oram e nt os m e ns ais e age ndar t rans ace s .

<27>

proj e ct o
T am bm pos s v e lcons ul t ar re l at rios s obre o q ue s e gas t ou, q uando e onde , para al m de s e pode r e xport ar a q ual q ue r m om e nt o t odos os nos s os dados para um f ich e iro " .cs v " q ue pode s e r abe rt os pe l o M icros of t Exce l . I s s o q ue r dize r q ue os nos s os dados no f icam " pre s os "pe l a apl icao.

Rail s um a l inguage m m uit o dinm ica, al t am e nt e produt iv a, orie nt ada a obj e ct os com um a s int axe coe re nt e, f am il iar e m uit o s im pl e s q ue ut il iza o padro M V C (M ode l V ie w Cont rol e r) . Rail s s e gue dois conce it os q ue v is am aum e nt ar a produt iv idade de q ue m program a: D RY e Conv e nt ion ov er Conf igurat ion. D RY (D on't Re pe at Yours e l f , No s e re pit a) o conce it o por t rs da t cnica de e s cre v e r nom e s , proprie dade s e cdigo e m s om e nt e um l ugar e re aprov e it ar e s s as inf orm ae s e m out ros s t ios da nos s a apl icao, e s s e ncialpara m ant e r cdigo l im po e a apl icao f acil m e nt e act ual izv e is no f ut uro. Conv e nt ion O v e r Conf igurat ion (Conv e no ao inv s de Conf igurao) um conce it o onde s e pre t e nde o us o de conv e ne s ou padre s e cas o o program ador de s e j e , pode s e s obre s cre v e r e s s a conv e no com o v al or q ue de s e j a (ou f oge norm a) . P or e xe m pl o, a cl as s e Carro pode t e r os s e us dados arm aze nados na t abe l a Carros , m as s e de s e j arm os pode m os at ribuir out ro nom e t abe l a. Com e s t e s dois conce it os e m uit os out ros porm e nore s int rns e cos da f ram e w ork , ot e m po de de s e nv ol v im e nt o m ais curt oe o t rabal h o do program ador f acil it ado.

P ara com e ar o de s e nv ol v im e nt o do w e Spe ndM one y no f oram ne ce s s rios m uit os re curs os , al is , e s s a com e a a s e r a norm a com a m aioria dos proj e ct os re l acionados com a w e b 2.0. F oi ut il izada a f ram e w ork ope ns ource Ruby O n Rail s com o bas e da program ao e o s is t e m a de ge s t o de bas e de dados e s col h ido f oi o M y SQ L , q ue igual m e nt e grat uit o. O s is t ema de cont rol o de v e rs e s e s col h ido f oi o SV N (m ais conh e cido por Subv e rs ion) pe l as s uas caract e rs t icas s upe riore s ao CV S e a ge s t o do proj e ct o f icou f acil it ada pe l o us o do B as e cam p (h t t p:/ / w w w .bas e cam ph q .com ) , um ge s t or de proj e ct os onl ine t am bm e l e f e it o e m Ruby O n Rail s.

M as af inal o q ue Ruby O n Rail s e q ual a s ua im port ncia para o proj e ct o?


Ruby O n Rail s um a f ram e w ork com pl et a para o de s e nv ol v im e nt o de apl icae s w e b, a s ua f il os of ia as s e nt a na f el icidade do program ador e e m produt iv idade s us t e nt v el .

<28>

proj e ct o

P ode ria f al ar m ais de t al h adam e nt e de Rail s m as m e l h or de ixarm os is s o para um f ut uro art igo, de q ual q ue r f orm a q ual q ue r pe s s oa pode f aze r dow nl oad e com e ar a program ar e m Ruby ou Ruby O nRail s , bas t a para is s o ir ao e nde re o of icial (h t t p:/ / w w w .ruby onrail s .com ) , ou s e de s e j are m m ais inf orm ae s em port ugus no Ruby <<port ugue s e (h t t p:/ / w w w .ruby-pt .org) . Es t a al t a produt iv idade f orne cida pe l a f ram e w ork (e a f il os of ia q ue a acom panh a) f oi a principalrazo pe l a s ua e s col h a na produo do w e Spe ndM one y (adm it o q ue a int e grao com as bibl iot e cas prot ot y pe e s cript .acul o.us para ge rar e f e it os Aj ax t am bm pe s ou na e s col h a) .

A apl icao ainda e s t e m de s e nv ol v im e nt o cons t ant e , e xis t e m pl anos para incorporar w e Spe ndm one y com o t el e m v e l (por e xe m pl o para cons ul t ar o s al do) , t raduzir para v rias l nguas , criao de w idge t s para o Ne t v ibe s e o Yah oo!W idge t s (de f orm a a int e ragir com o s it e a part ir do de s k t op) e a pos s ibil idade de im port ar t rans ace s dire ct am e nt e dos bancos . No f undo t ornar a v ida dos ut il izadore s cada v e z m ais f acil it ada. No incio de Nov e m bro de v e r e s t ar dis ponv e la v e rs o al ph a para t odas as pe s s oas q ue pe dire m no s it e of icial (h t t p:/ / w w w .w e s pe ndm one y.com ) , um a m ane ira de pode r part icipar na cons t ruo da apl icao t e st ando e cont ribuindo com s uge s t e s ou crit icas f orm a com o e s t de s e nv ol v ida. As s im concl uo, q ue e s t e proj e ct o t e m s ido um de s af io m uit o e nriq ue ce dor e e s pe ro q ue ins pire out ros a part icipar e m e xpe rincias s e m e l h ant e s.

Q ue m P e dro S ous a?
P e dro Sous a P rogram ador Se nior na Acce nt ure com v rios anos de e xpe rincia e m apl icaoe s w e b e f undador do grupo " ruby <<port ugue s e " (ruby-pt .org) e nos t e m pos l iv re s e s cre v e para no s e u bl og (re inv e nt ar .com ) .

<29 >

P e dro Sous a

anl is e s

Al gorit m ia e Es t rut uras de D ados


Jos B rag a de V as cons e l os Joo V idal de Carval ho
Edit ora: Ce nt roAt l ant ico.pt
Col e co: T e cnol ogias

P ginas : 328 1 e dio: Se t e m bro de 2005 I SB N: 9 89 -615-012-5

Al gorit m ia e Es t rut uras de D ados um l iv ro de s t inado a t odos os int e re s s ados nas cincias da com put ao. Es t e l iv ro f oca-s e e s s e ncial m e nt e na al gorit m ia, com o f orm a de re s ol uo de probl e m as e com o auxil iar criao de program as de com put ador para apl icar e s s as s ol ue s . So t am bm m uit o f ocadas div e rs as e s t rut uras de dados re corre nt e s act ual m e nt e. P or f im , f e it a um a bre v e int roduo a duas popul are s l inguage ns de program ao, C e Jav a. O l iv ro com e a com um a de t al h ada int roduo ao m undo da al gorit m ia e m ode l ao de probl e m as . re l acionada a al gorit m ia com a e nge nh aria de s of t w are , s o apre s e nt adas as s uas com pone nt e s, al gum as l inguage ns q ue pe rm it e m a s ua re pre s e nt ao. T am bm s o m e ncionados dois dif e re nt e s m t odos de conce po al gorit m ica, os conh e cidos it e rao e re curs o. A s e guir , s o apre s e nt ados os t ipos de e s t rut uras de dados ut il izados e m com put ao e t odas as caract e rs t icas da l inguage m (ps e udocdigo) q ue s e r ut il izada para a re pre s e nt ao dos al gorit m os propos t os ao l ongo do l iv ro. G rande part e do l iv ro de dicada apre s e nt ao e cons e q ue nt e propos t a de al gorit m os re f e re nt es a v ariados probl e m as re corre nt es em com put ao, com o orde nao e pe s q uis a e m l is t as , e re f e re nt es

m anipul ao de im port ant e s e st rut uras dis cre t as com o pil h as , f il as , l is t as e ncade adas s im pl e s e circul are s , rv ore s e graf os . T odas e s t as e s t rut uras de dados s o be m e xpl icadas , com o auxl io de e s q ue m as s im pl e s e de s crie s de t al h adas . F inal m e nt e, s o int roduzidas duas l inguage ns de program ao m uit o ut il izadas act ual m e nt e . dada m ais nf as e l inguage m C e s s uas caract e rs t icas para a re pre s e nt ao e cont rol o de dados , s e ndo e nt o t rans crit os al guns al gorit m os ant e riorm e nt e re f e re nciados , ne s t a l inguage m . So de pois apre s e nt adas as caract e rs t icas nicas de Jav a, s e guidas de e xe m pl os de ut il izao de cl as s e s e da de f inio de t ipos de dados abs t ract os . Al gorit m ia e Es t rut uras de D ados um l iv ro be m cons e guido, e s crit o por dois prof e s s ore s e xpe rie nt e s e m div e rs as re as das cincia da com put ao. Es t e l iv ro pode r s e rv ir t ant o para e nt rar no m undo da al gorit m ia, com o de re f e rncia para t rabal h os f ut uros . P e ca ape nas por al gum a com pl e xidade , t ornando-s e as s im ape nas re com e ndado a q ue m j pos s uir al gum " back ground" e m program ao de com put adore s . M as no de ixa de s e r um pt im o l iv ro para e s t udant e s da re a de inf orm t ica, m at e m t ica apl icada e / ou curs os de e nge nh aria.

<30>

Srgio Sant os

anl is e s

L e arning C# 2005
Je s s e L ibe rt y B rian M acD onal d
Edit ora: O 'Re il l y M e dia
L inguage m : I ngl e sa

P ginas : 552 2 e dio: F ev e re iro de 2006 I SB N: 0-59 6-10209 -7

Act ual m e nt e , s o m uit os os ut il izadore s q ue ade re m ao m undo da program ao, q ue r para f ins prof is s ionais , q ue r para div e rs o ou com o h obby. M uit os de s t e s int e re s s ados de param -s e , de incio, com a dis cut v e le ine v it v e lpe rgunt a: Q ue l inguage m de v o apre nde r prim e iro? H div e rs as opinie s s obre o t e m a, m as um a grande part e dos program adore s diria q ue C# .NET um a l inguage m pode ros a e , s im ul t ane am e nt e, ide al para a iniciao. aq ui q ue e nt ra o l iv ro L e arning C# 2005. D e st inado principal m e nt e a ut il izadore s s e m q ual q ue r e xpe rincia ne s t a re a, a re f e rida publ icao pe rm it e ao l e it or cons t ruir bas e s s l idas , t ant o nos conce it os t e ricos do .NET F ram e w ork ou de O bj e ct O rie nt ed P rogram m ing com o nas apl icae s de s s e s conce it os para a cons t ruo de apl icao m ais e s t v e is e f uncionais . At rav s de e xe m pl os de cdigo, dicas e cons e l h os , a l inguage m apre s e nt ada ao iniciant e de f orm a s uav e , pe rm it indo a as s im il ao das ide ias e a s ua apl icao e m cont e xt o prt ico. O t e xt o e s crit o num v ocabul rio m uit o ace s s v el , s e ndo q ue t odos os t e rm os t cnicos q ue o l e it or pos s a no conh e ce r s o e xpl icados e m de t al he. E f aze ndo us o de s t a m e s m a ace s s ibil idade q ue o l iv ro cons e gue orie nt ar e t ornar pe rce pt v e is m e s m o os conce it os m ais com pl e xos .

O ut ro dos pont os a f av or o s e u de t al he, pe rm it indo q ue m e s m o os iniciant e s q ue program am h pouco t e m po pos s am , de pois da l e it ura, cons t ruir program as m uit o com pl et os , ut il izando o pode r de t odas as f e rram e nt as e f uncional idade s q ue l h e s s o of e re cidas de f orm a prt ica e e f icie nt e. O l iv ro cobre q uas e t udo s obre a s int axe e e st rut ura da l inguage m , be m com o as boas prt icas no de s e nv ol v im e nt o de apl icae s . H um grande e nf oq ue nos conce it os e apl icao do paradigm a O O , um a das grande s v ant age ns do C# e m re l ao a out ras l inguage ns . O de s v io da at e no do l e it or para t e m as com o o as pe ct o v is uale a apre s e nt ao dos cont rol os nas j ane l as no probl e m a, um a v e z q ue t odos os t e m as s o abordados at rav s da ut il izao de um a cons ol a. O ut ro dos pont os a e nal t e ce r a apre s e nt ao de s um rios , q ue s t ionrios e e xe rccios no f im de cada capt ul o, q ue o l e it or de v e t e nt ar re s ol v e r para ce rt if icar-s e de q ue pe rce be u t oda a inf orm ao. O cdigo dos proj e ct os apre s e nt ados no l iv ro e s t dis ponv e l na I nt e rne t , em ht t p:/ / w w w .l ibe rt y as s ociat e s .com / page s / f il e s/ L e arningCS2e Source .zip. F ica e nt o a ide ia de q ue o l iv ro um a boa e s col h a para a iniciao e m C# , m as para os q ue j t m e xpe rincia ne s t a l inguage m out ros l iv ros , com o P rogram m ing C# , dos m e s m os aut ore s , s o m ais acons e l h v e is .

<31>

P e dro Cal de ira

int e rne t

para as l ing u ag e ns w e b: JavaS cript , H TM L , C S S ;com caract e rs t icas m u it o t e is para os prog ram adore s . Es t dis ponve l t am bm com o pl u g in para o conh e cido Ecl ips e . ht t p:/ / w w w .apt ana.com

apat ana u m ID E dire ccionado

port al s obre dis t ribu ie s de s is t e m as ope rat ivos L inu x e BS D . C ont m as l t im as novidade s e vrias inf orm ae s e s s e nciais s obre as dis t ribu ie s , as s im com o TO P s de popu l aridade . ht t p:/ / dis t row at ch .com

D is t roW at ch u m conh e cido

de m ons t rao de de ze nas de C M S s (C ont e nt M anag m e nt Syst e m s ) g rt is e l ivre s , de s t inados para port ais , bl og s , f ru ns , w ik is , e nt re m u it os m ais . ht t p:/ / w w w .ope ns ou rce cm s .com

ope ns ou rce C M S pos s ibil it a um a

Eu l e r, u m proje ct o q u e cons is t e na re s ol u o de de ze nas de dif e re nt es probl e m as m at e m t icos , re corre ndo prog ram ao. P os s u i t am bm e s t at s t icas s obre as l ing u ag e ns e os pas e s dos part icipant e s , s e ndo pos s ve l obs e rvar q u e ainda t e m pou co pe s o e m P ort u g al . ht t p:/ / m at h s ch al l e ng e .ne t

M at h s Ch al l e nge a cas a do P roje ct o

<32>

bl ue s cre e n

M ais um dos f am os os e rros

F oi e ncont rada a t e cl a m ais procurada de t odas

Um a de s cobe rt a inovadora

O novo m odding port t il

<33>

com unidade

Q ue re s part icipar na re v is t a P RO G RAM AR? Q ue re s int e grar e s t e proj e ct o, e s cre v e r art igos e aj udar at ornar e s t a re v is t a num m arco da program ao nacional ? V ai a

Es t am os s e ns iv el m e nt e a dois m e s e s do f im do ano e o P ort ugal -a-P rogram ar cont inua a t e nt ar inov ar e m v rias re as ao m e s m o t e m po: nas q ue j e st am os ins e ridos t iv e m os s uce s s o, nas q ue e s t o a s e r pl ane adas e s pe ram os t e r ainda m ais . Cont am os com um f rum m ov im e nt ado, com aproxim adam e nt e 2200 ut il izadore s , o q ue f az com q ue e s t ej am os v ont ade para nos conce nt rarm os nout ros v oos . A re v is t a bat eu t odos os re corde s de e st at s t icas com a e dio ant e rior e v am os ce rt am e nt e bat e r m uit os m ais com e s t a e dio. Q ue re m os f aze r com q ue e s t a e dio ch e gue a ainda m ais int e re s s ados e m program ao, de m odo a q ue pos s am conh e ce r o nos s o f rum e o bom am bie nt e da nos s a com unidade .

w w w .re v is t a-program ar .inf o


para m ais inf orm ao com o part icipar ou e nt o cont act a-nos por

@ port ugal -a-program ar .org


P re cis am os do apoio de t odos para t ornar e s t e proj e ct o ainda m aior ... cont am os com a t ua aj uda

re v is t aprogram ar

Em re l ao aos v oos do f ut uro de q ue h t ant o t e m po t e nh o v indo a f al ar , pode m os de s de j adiant ar m ais al guns porm e nore s : v am os t e r um a pl at af orm a de e -l e arning a f uncionar at ao f im de 2006 e e s pe ram os arrancar rapidam e nt e com um a t el ev is o onl ine t cnica. P ara q ue t odos pos s am part icipar ne s t e s proj e ct os , de v e m dirigir-s e ao f rum do P @ P e ir acom panh ando as nov idade s q ue t odos os dias v o s urgindo. Es t e s proj e ct os s s e re al izaro com a boa v ont ade e e nt re ga de cada ut il izador . P re cis am os de ge nt e capaz de criar bons cont e dos , de m odo a q ue e s t e s nov os proj e ct os t e nh am s uce s s o. Cont am os com ov os s o cont ribut o. V e m o-nos pe l oP @P ...

<34>

Rui M aia

w w w .port ugal -a-program ar .org

Você também pode gostar