Escolar Documentos
Profissional Documentos
Cultura Documentos
índice
3 notícias
4 te m a de capa
8 a program ar
17 te cnol ogias
21 tutorial
23 gnu/l inux
27 proje cto
30 anál is e s
32 inte rne t
33 bl ue s cre e n
34 com unidade
e q u ipa PR O G R A M A R
coorde nador
A pre s e ntação e divu l
g ação
S érg io S antos
A úl tim a e dição foi um m arco m uito im portante para o nos s o
coorde nador adjunto proje cto. Nunca a re vis ta PRO G RAM AR tinh a s ido tão fal ada,
M ig ue lPais tão divul gada e , principal m e nte , nunca tinh a s ido tão l ida. Foi
tam bém após o l ançam e nto da q uarta e dição q ue fize m os a
re dacção nos s a prim e ira apre s e ntação públ ica, q ue te ve l ugar no
Fe rnando M artins BarCam pPT 2006. Es te e ve nto de corre u no Pól o 2 da
Patric Fig ue ire do Unive rs idade de Coim bra e te ve com o públ ico profis s ionais e
João Pe re ira
Fábio Corre ia am adore s da nos s a áre a.
D anie lCorre ia
Tiag o S alg ado Es te s re s ul
tados e le vam a fas q uia da q ual idade q ue nos é
M arce lo M artins e xigida por parte dos nos s os l e itore s , q ualidade e s s a q ue
Pe dro S ous a q ue re m os continuar a garantir. É e s s a, portanto, a razão do
Pe dro Cal de ira
atras o de al guns dias de s ta e dição. Pe dim os de s cul pa de s de
col
aboradore s já por e s te facto, m as cons ide ram o-l o com pre e ns íve l
, vis to q ue
Jos é O l
ive ira ainda s om os um a e q uipa de am adore s , q ue trabal h a ne s te
proje cto por s atis fação pe s s oal
.
contacto
re vis taprog ram ar Ne s ta e dição pode m e ncontrar a nova s e cção Te cnol ogias ,
@ portug al -a-prog ram ar.org
de dicada a artigos q ue , e m bora não e s te jam dire ctam e nte
re l
acionadas com program ação, s ão im portante s para o
Sérgio Santos
w e bs ite
w w w .re vis ta-prog ram ar.info de s e nvolvim e nto de al gum as aplicaçõe s . Es ta com e ça com um
artigo s obre RFID , um te m a cada ve z m ais dis cutido
actual m e nte . Ire m os tam bém apre s e ntar e m bre ve um novo
portalpara a re vis ta, m ais dinâm ico e com m ais inform açõe s
s obre o proje cto, de s e nvolvido por m e m bros da nos s a e q uipa.
<2 >
notícias
O acordo de coope ração com o ins tituto norte - am e ricano M IT e nvol ve a Es cola
de Enge nh aria da Unive rs idade do M inh o, a Facul dade de Ciências da unive rs idade
de Lis boa, as facul dade s de Ciências e Te cnol ogia da Unive rs idade de Coim bra e da
Unive rs idade Nova de Lis boa e a Facul dade de Enge nh aria da Unive rs idade do Porto.
Envol ve ainda o Ins tituto Supe rior de Econom ia e G e s tão da Unive rs idade Técnica de
Lis boa e o Ins tituto Supe rior Técnico da Unive rs idade Técnica de Lis boa.
Se gundo o te xto do acordo, as ins tituiçõe s nacionais , e m parce ria com o M IT,
pode rão nos próxim os cinco anos contratar profe s s ore s convidados «de m érito
inte rnacional »e inve s tigadore s e m pós -doutoram e nto. O program a pre vê ainda q ue
os e s tudante s , inve s tigadore s e doce nte s e m ins tituiçõe s portugue s as col
abore m
com e q uipas de inve s tigação no M IT.
AM D tripl
ica l
ucro Fire fox 2.0 atinge 2 m il
h õe s de
A Advance d M icro D e vice s (AM D ) s upe rou as
dow nl oads e m 24 h oras
e xpe ctativas dos analis tas finance iros ,
O Fire fox 2.0 atingiu os 2 m ilh õe s de dow nloads
lucrando 134 m il h õe s de dól are s e facturando
no prim e iro dia, com picos de 30 dow nl oads
1,33 bil h ão de dólare s no te rce iro trim e s tre de
por s e gundo. Is to s ignifica q ue o Fire fox e s tá
2006. A e s tim ativa dos anal is tas e ra um a
e m vias de s upe rar os 3 m ilh õe s de dow nl oads
re ce ita de 1,31 biliõe s de dól are s . As m arge ns
e m 4 dias do IE7. Es te s s ão re s ul tados m uito
ope racionais da e m pre s a, contudo caíram ,
pos itivos para a e q uipa de de s e nvol vim e nto
facto q ue a AM D atribui a ve ndas m e nos
da M ozil l
a. No e ntanto, o núm e ro de
ace l e radas de ch ips para de s k tops .
util
izadore s do Inte rne t Expl ore r 7 de ve rá
aum e ntar com o l ançam e nto do W indow s Vis ta.
A q ue da de m arge m re fl e te tam bém a dis puta
com a rivalInte l–q ue re portou q ue da de 35%
no l ucro ne s te trim e s tre . Para o q uarto trim e s tre ,
a AM D pre vê um cre s cim e nto apoiado na fus ão
com a fabricante canadiano de ch ips gráficos
ATI. O obje ctivo é o de ofe re ce r produtos
inte grados ao m e rcado de com putadore s
m óve is e e l
e trônicos de cons um o.
<3>
te m a de capa
pos s íve la apl icação dos s cripts divul
gados
inde pe nde nte m e nte da bas e de dados e m
caus a. É de re fe rir q ue é com um cada
s is te m a de bas e de dados pos s uir as s uas
próprias e xte ns õe s e m bora, as norm as SQ L-
92 e SQ L-9 9 s e jam , gros s o m odo,
im pl e m e ntadas por todos .
O bje ctivo
Um a BD te m com o obje ctivo úl tim o guardar
e re cupe rar dados , e q uanto m ais de pre s s a
Bas e s de D ados mel h or. Es ta é a ide ia q ue s e te m e m m e nte
q uando s e fal a e m BD .
É tam bém com e s te e outros obje ctivos e m
As Bas e s de D ados (BD ) s ão m e nte , q ue os artigos s e rão apre s e ntados .
im pre s cindíve is a q ual q ue r O s te m as focados vão pe rm itir a q ual q ue r
s is te m a e s ão por is s o pre s e nça um iniciar-s e no m undo das BD s e e vol uir a
cons tante no dia-a-dia de todos ponto de criar conh e cim e nto e
q uantos faze m de s e nvol vim e nto. s e ns ibil
idade s uficie nte s para criticar e
dis cutir s e m pre q ue o te m a de conve rs a for
Es ta re al idade advém da ne ce s s idade de o unive rs o das BD s .
"m e m ória pe rs is te nte " q ue q ual q ue r
apl icação te m , por m ais s im pl e s q ue s e ja.
Is to é vis íve le óbvio num com pl e xo s is te m a Bas e de D ados
bancário, m as é tam bém vis íve l , por ve ze s
m e nos óbvio, num jogo q ue guarda as D e um a form a s im ple s , um a BD pode s e r
pontuaçõe s dos m e l h ore s jogadore s num de finida com o um s im pl e s banco de dados
s im ple s fich e iro de te xto. organizado s e gundo um a de te rm inada
e s trutura.
Inde pe nde nte m e nte do s uporte us ado, a
ne ce s s idade de guardar e re cupe rar Actual m e nte , os Sis te m as de G e s tão de
dados e xis te e é um a cons tante e m Bas e s de D ados (SG BD ) m ais com uns e m ais
q ualq ue r aplicação. us ados s ão os re l acionais , q ue as s e ntam
s obre um a e s trutura de re l açõe s e ntre
e ntidade s . No e ntanto, o m undo das BD
Âm bito não s e e s gota nos Sis te m as de G e s tão de
Bas e de D ados Re l acionais - Re l ational
Ne s te âm bito, ao l ongo das próxim as D atabas e M anage m e nt Sy s te m na
e diçõe s da Re vis ta Program ar vão s e r te rm inologia das BD - (RD BM S). Exis te m
apre s e ntados artigos s obre bas e s de dados outras BD com e s truturas h ie rárq uicas ou
abrange ndo um conjunto de te m as q ue por obje ctos , m as a s ua util ização não é
ajudam a com pre e nde r m e l h or e s te m uito difundida e s ão norm al m e nte us adas
m undo, de s de a ide al ização de um e m cas os particul are s .
m ode l o de dados até à tare fa de tuning de
um a bas e de dados .
Em paral elo com os artigos h ave rá um a Exe m pl
o
s e cção prática q ue il us trará e pe rm itirá
acom panh ar os conh e cim e ntos aq ui D e form a a il us trar e a pe rm itir um m e l
h or
apre s e ntados . Es ta s e cção prática s e guirá acom panh am e nto de s te artigo, o m e s m o
a norm a S Q L-9 9 para q u e s e ja vai s e r com pl
e m e ntado com um e xe m pl o.
<4>
te m a de capa
<5>
te m a de capa
D ado q ue um l ivro pode pos s uir m ais de um O m ode l o pare ce , à priori, final izado, m as a
autor, e q ue um autor pode te r m ais de um a ve rdade é q ue o m e s m o não e s tá
obra, ide ntificam -s e duas novas e ntidade s : norm al izado. O l h ando ate ntam e nte para a
autor e autoria;e re form ul
am -s e as e ntidade s . e ntidade l ivro, notam os q ue a e ditora ir-s e -á
re pe tir variadís s im as ve ze s e m todas as
As s im , num a te rce ira ite ração s obre as e ntradas de l ivros q ue pe rte nçam a um a
e ntidade s ficam os com : m e s m a e ditora. Para e vitar e s ta re pe tição
-l ivro: q ue re pre s e nta um l ivro; do nom e da e ditora, o m ode l o te m de s e r
- util izador: q ue re pre s e nta os util
izadore s norm al izado. A norm al ização é um proce s s o
da bibl iote ca; de re e s truturação do m ode l o l ógico de
- re q uis ição: q ue re pre s e nta a ligação form a a e l im inar re dundância, organizar os
e ntre um l ivro e um util
izador da bibl iote ca; dados de form a e ficie nte e re duzir
- autor: q ue re pre s e nta um autor; pote nciais anom al ias . O lh ando m ais atrás
- autoria: q ue re pre s e nta um autor de um no e xe m pl o, tam bém já e fe ctuam os um a
livro. "ps e udo-norm al ização", ao s ubs tituir no l ivro
a re gra "te m de te r pe l o m e nos um autor"
Num a s e gunda ite ração s obre as pe las e ntidade s autor e autoria.
caracte rís ticas e proprie dade s de cada
e ntidade concl ui-s e q ue : Norm al izando o m ode l o, te m os q ue a
-l ivro: ISBN, te m um títul o, te m um a e ditora, proprie dade e ditora pas s a a s e r um a
te m um núm e ro de copias dis poníve is ; e ntidade , e l ivro pas s a a faze r re fe rência à
- util izador: BI, te m um nom e , um a m orada; e ditora e m q ue s tão:
- re q uis ição: ISBN, BI; - e ditora: idEditora, nom e ;
- autor: te m um nom e ; -l ivro: ISBN, te m um títul o, cópias
- autoria: ISBN e o ide ntificador do autor. dis poníve is , idEditora;
- util izador: BI, te m um nom e , um a m orada;
Um a ch ave candidata para a e ntidade - re q uis ição: ISBN, BI;
autor s e rá o nom e , m as dado q ue pode - autor: idAutor, te m um nom e ;
h ave r m ais de um autor com o m e s m o - autoria: ISBN, idAutor.
nom e , e m particul ar porq ue os autore s s ão,
m odo ge ral , conh e cidos ape nas pe l o se u D e s ta form a, todos os l
ivros q ue pe rte nce m a
nom e próprio e ape l ido, ne s te cas o não um a m e s m a e ditora têm a m e s m a re fe rência,
e xis te ne nh um a ch ave candidata idEditora.
s uficie nte m e nte boa para s e r e l e ita, razão Note -s e q ue tam bém na e ntidade e ditora s e
pe l a q uals e adiciona um cam po e xtra para apl icou a criação de um a proprie dade
ide ntificação e s e e fe ctua a l igação de s s e própria para a ide ntificação unívoca, e m bora
cam po e xtra de ide nficação com a autoria. aq ui o nom e pude s s e te r s ido s e l
e ccionado
com o ch ave prim ária, um a ve z q ue a
As s im , ficam os com : probabil idade de e xis tire m duas e ditoras
-l ivro: ISBN, te m um títul o, núm e ro de dis tintas com o nom e e xactam e nte igualé
cópias dis poníve is , idEditora; infím a.
- util izador: BI, te m um nom e , um a m orada;
- re q uis ição: ISBN, BI;
- autor: idAutor, te m um nom e ;
- autoria: ISBN, idAutor.
<6>
te m a de capa
As e ntidade s principais de finidas no
e xe m pl o pode m s e r vis tas no diagram a da
figura 1. É de re fe rir q ue no diagram a não
cons tam as e ntidade s re l acionais , as ch ave s
prim árias e s tão re pre s e ntadas a ve rm e l ho
(PK ) e o s e u nom e e s tá norm al izado para
"id<Entidade > [Proprie dade ] ".
Re l
açõe s
Figura 2
As re l açõe s re fe ridas atrás re pre s e ntam
s im pl
e s m e nte a l ógica de re l ação, ou Por fim , o diagram a da figura 3 (1). apre s e nta
ligação, e ntre as e ntidade s . Es s as re l
açõe s o m ode l o com pl e to, com as re l açõe s e as
pode m s e r de "1 para 1", "1 para N", ou de "M e ntidade s re l
acionais com os nom e s
para N". norm al izados para "PK _<idEntidade > ". As
ch ave s e s trange ira e s tão re pre s e ntadas a
Um a re l ação diz-s e de "1 para 1"q uando um ve rde (FK ) e as ch ave s e s trange iras q ue s ão
el e m e nto de um a e ntidade s e re l aciona tam bém ch ave s prim árias e s tão
unicam e nte com outro e l e m e nto de outra re pre s e ntadas a azul(PFK ).
e ntidade . Es ta é a re l ação m ais s im pl es e
m e nos inte re s s ante q ue e xis te , não
ne ce s s itando s e q ue r de e ntidade s adicionais
para a re pre s e ntar. No cas o de um e l e m e nto
de um a e ntidade s e re l acionar com m ais de
um e l e m e nto de outra e ntidade , e s tam os na
pre s e nça de um a re l ação de "1 para N". No
e xe m pl o apre s e ntado e xis te um a re l ação
de s te tipo: um l ivro pos s ui um ou m ais autore s .
Es ta re l ação é re pre s e ntada pe l a e ntidade
autoria: um ISBN re l aciona-s e com um ou m ais
idAutor. Um a re l ação "M para N" re pre s e nta
m úl tipl as re laçõe s e ntre os e l e m e ntos de duas
e ntidade s . No e xe m pl o apre s e ntado e xis te
um a re l ação de s te tipo: um util izador pode
re q uis itar vários l ivros e um l ivro pode s e r
re q uis itado por vários util izadore s .
Es ta re s trição não é um a l im itação, ne m de ve obje cto vai re s ul tar num a col una. M as e s te
s e r vis ta com o tal , um a ve z q ue é facil m e nte pas s o aconte ce rá ape nas num próxim o
ul trapas s áve l de finindo um a outra ch ave artigo, actual m e nte é im portante re te r os
prim ária para a e ntidade . conce itos de M ode l o Re lacional , M ode lo
Lógico, Entidade , Proprie dade , Ch ave
O diagram a da figura 2 apre s e nta o e xe m pl o Candidata, Ch ave Prim ária, Ch ave
com as e ntidade s re l
acionais m ate rial
izadas . Es trange ira e Norm al ização.
1) A notação us ada no diagram a é a notação
<7> O racle TM (O racl
e TM é um a m arca re gis tada)
a program ar
<html>
<head>
<script src="codigoAJAX.js"></script>
</head>
<body>
<form action="" method="post">
Páginas dinâm icas Utilizador Pretendido:
<input type="text" name="username"
<8>
a program ar
<9 >
a program ar
O pe rador Nom e
+ Adição
- Subtracção
* M ul tiplicação
/ D ivis ão
% Re s to da divis ão
JavaScript Exe m pl
o de util
ização:
O s ope radore s aritm éticos s ão utilizados para As ins truçõe s de incre m e nto com o a de
re alizar ope raçõe s m ate m áticas s im pl es a+ + s ão de pós incre m e nto e as ins truçõe s
com o a adição, a s ubtracção, a de incre m e nto + + a s ão ins truçõe s de pré
m ul tiplicação, a divis ão e o re s to da divis ão incre m e nto. Q uando s e tratam de
inte ira. Exis te tam bém o da ne gação unária ins truçõe s de de cre m e nto a-- ou --a, a
q ue não vai s e r abordado. de nom inação s e rá a m e s m a.
<10>
a program ar
O pe radore s R e l
acionais
O pe radore s Lóg icos
O s ope radore s re l
acionais com o o próprio
nom e indica, e s pe cificam ope raçõe s de O s ope radore s lógicos e xis te nte s na
re l
ação e ntre valore s . l
inguage m JavaScripts ão:
</head><body>
O pe radore s de cade ias
<script type="text/javascript">
relaccionais(); Ao contrário dos outros ope radore s ape nas
</script> e xis te um ope rador de cade ias q ue s e rve m
para concate nar cade ias (s trings ).
</body></html>
O pe rador Nom e
+ Concate nação
Com e s te s ope radore s é pos s íve l faze r
ope raçõe s para de te rm inar s e os val ore s O ope rador + acre s ce nta um a cade ia no
s ão iguais , dife re nte s , m aiore s ou m e nore s , fim da outra.
e ntre outros .
<11>
a program ar
Funçõe s
Ins tru ção s w itch
Um a função é um a s e q uência de ins truçõe s
q ue cons titui um a e ntidade coe re nte e q ue No JavaScript e xis te um a outra ins trução de
pode s e r invocada a partir de q ual q ue r condição a ins trução s w itch .
ponto do program a e s crito e m JavaScript. O Form ato s w itch :
program ador pode criar as s uas próprias
funçõe s q ue s ão na m aioria das ve ze s s w itch (e xpre s s ão){
e s critas no cabe çal h o do fich e iro e s ão cas e val orx:
invocadas pos te riorm e nte q uando ins truçãox;
ne ce s s ário. ...
bre ak ;
Portanto, pode m os ve r um a função com o cas e val ory :
um a s érie de ins truçõe s q ue e ngl obam os ins truçãoy ;
de ntro do m e s m o proce s s o. As funçõe s ...
util izam -s e cons tante m e nte , não s ó as q ue bre ak ;
e s cre ve m com o tam bém as q ue já e s tão ...
de finidas no s is te m a, com o as pars e Int (q ue }
é um a s tring), pars e Float (s tring) ou NaN (q ue
é um val or), pois todas as l inguage ns de Pas s ando a e xpl icar o com portam e nto do
program ação têm funçõe s para re al izar control o s w itch : s e o val or da e xpre s s ão
proce s s os h abituais . As funçõe s s e rve m para coincidir com o val orx e xe cuta-s e a
s e re m ch am adas , s e m pre q ue e xis tir um a ins truçãox, cas o não s e ja, faz-s e o m e s m o
acção q ue s e ja ne ce s s ária e m dive rs os m as para o val ory, e as s im s uce s s ivam e nte ,
locais da página/s ite /program a, s ó te ndo até s e r e ncontrada um a igual dade .
de finido o s e u código um a única ve z.
<12>
a program ar
O cicl
o do-w h il
e
Util iza-s e ge ral
m e nte q uando não s abe m os
O bje ctos
q uantas ve ze s h ave rá de s e e xe cutar o
cicl o, as s im com o aconte ce com cicl o O JavaScript dis põe de um conjunto de
w h il e , com a dife re nça de q ue o cicl o, obje ctos pre de finidos . O s obje ctos têm
inde pe nde nte m e nte da e xpre s s ão te s te , atributos (variáve is ) e m étodos (funçõe s ). A
s e rá s e m pre e xe cutado pe lo m e nos um a s intaxe para a util ização de obje ctos ,
ve z. m étodos e atributos e m JavaScript é m uito
s im ple s:
do {
sentenças do ciclo; objecto.atributo
... objecto.metodo()
} while (condição)
Alguns obje ctos s ão criados
autom aticam e nte pe l
o brow s e r, outros têm
O cicl
o for de s e r criados obrigatoriam e nte pe l o
program ador.
O cicl o for util
iza-s e para re pe tir m ais
ins truçõe s num de te rm inado núm e ro de obj = new Object();
ve ze s . Entre todos os ciclos o for cos tum a
s e r utilizado q uando s abe m os ao ce rto o
núm e ro de ve ze s q ue q ue re m os q ue s e ja
e xe cutada a s e nte nça, ou até q uando. Ve ctore s
for Um ve ctor é um a e s trutura de dados com
(iniciação;condição;actualização) { dive rs os e l e m e ntos do m e s m o tipo, e m
sentenças a executar; re lação à q ual , através de um índice , s e
... pode de s ignar cada um dos s e us e l e m e ntos .
} Os el e m e ntos de um ve ctor pode m tam bém
s e r ve ctore s , dando orige m a um a e s trutura
O funcionam e nto do cicl o for é o s e guinte : m uito com pl e xa.
a e xpre s s ão de iniciação é e xe cutada um a
ve z ante s da prim e ira ite ração;a condição
é te s tada ante s de cada ite ração do cicl o
e s e for ve rdade ira e xe cuta a próxim a
ins trução do cicl o, s e for fal s a te rm ina o
Concl
us ão
cicl o.
Ne s ta s e gunda e úl tim a parte do artigo de
JavaScript foram abordados te m as m ais
A ins trução e xe cutada no cicl o for pode s e r
avançados , m as igual m e nte bás icos , da
s ubs tituída por dive rs as ins truçõe s .
program ação e m JavaScript. Ne s ta e dição
abordám os a program ação com
ope radore s , funçõe s , ins truçõe s condicionais
Ins tru çõe s bre ak e continu e (if, s w itch ), ins truçõe s ite rativas (for, w h il
e , do-
w h ile , continue , brak e ), program ação
A ins trução bre ak inte rrom pe um cicl o.
João Pe re ira
<13>
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 }
Input/O utput
35
36 File [] roots = file.listRoots( );
37
um a m atéria q ue , a nos s o ve r,
41
42 file.delete();
é bas tante inte re s s ante e 43 }
im portante no m undo da 44 }
program ação: o Input / O utput
ne s te cas o aplicado a Java. Com o pode m os ve r na l inh a 6 é ins tanciado
um obje cto Fil e q ue re pre s e nta o cam inh o
Ire m os com e çar com M anipul ação de (path ) para um pos s íve l l ocal do s is te m a
Fich e iros e D ire ctorias . Vam os ve r a s e guinte ope rativo. É bom l e m brar q ue e s te ape nas
cl as s Java onde s ão de m os tradas as re pre s e nta um fich e iro ou dire ctoria, não
principais funçõe s da Cl as s Fil
e , q ue é a pre s s upondo q ue o cam inh o e xis ta
utilizada para re al izar a m anipul ação. Em re alm e nte . Ne s te cas o, o cam inh o é o
s e guida vam os e xpl icar o q ue cada l inh a faz. C:\\fil e .txt, q ue aponta para o fich e iro fil e .txt
na dire ctoria C:. Tam bém pode ria apontar
1 import java.io.*; ape nas para um a dire ctoria e não para
2 um a fich e iro, com o é o cas o.
3 public class JavaFile{
4 public static void main(String Na l inh a 8 pode m os ve r o m étodo
args[]){
ge tNom e (), q ue pe rm ite obte r o nom e do
5
6 File file=new File("C:\\file.txt"); fich e iro ou dire ctoria re pre s e ntada pe l
o Fil
e.
7
8 System.out.println(file.getName()); Es ta cl as s pe rm ite tam bém dar atributos a
9 fich e iros ou dire ctorias , com o é o cas o do
10 file.setReadOnly(); m étodo s e tRe adO nl y () q ue dá ao fich e iro ou
11 dire ctoria o atributo de ape nas pode r s e r
12 System.out.println(file.isHidden()); lido e não e s crito, tal com o e s tá
13 System.out.println(file.canRead()); re pre s e ntado na l inh a 10.
14 System.out.println(file.canWrite());
15 A cl as s File pe rm ite tam bém ve rificar
16 file.renameTo(new File(
atributos e , para is s o, pode m os us ar os
"C:\\Ficheiro.txt"));
17 m étodos is H idde n() q ue ve rifica s e o fich e iro
18 try{ ou dire ctoria s e e ncontra ocul to(a) (linh a 12),
19 if( !file.exists() ){ canRe ad() q ue ve rifica s e é pos s ive ll er o
20 file.createNewFile(); fich e iro ou dire ctoria (linh a 13) e o m étodo
21 } canW rite () q ue ve rifica s e é pos s ive le s cre ve r
22 } no fich e iro ou dire ctoria (linh a 14).
<14>
a program ar
<15>
a program ar
mel h or re ndim e nto de e s cre ve r num fich e iro. 5 public static void main(String
Vam os agora ate ntar e m al guns de talh e s . Na args[]){
úl tim a parte da ins tância "ne w 6
7 try{
File W rite r("C:\\fil
e .txt",true )" pode m os ve r q ue
8
para al ém de te rm os com o argum e nto o 9 BufferedReader leitor = new
nom e do fich e iro, te m os tam bém um BufferedReader(new
argum e nto bool e an. Es te é s e m dúvida um FileReader("C:\\file.txt"));
argum e nto m uito im portante pois q uando 10 String linha = "";
col ocado "true " diz ao program a q ue de ve 11 linha = leitor.readLine();
e s cre ve r no fich e iro, com a particul aridade 12 while(linha != null){
de não apagar ne h um do s e u conte údo 13 System.out.println(linha);
ante rior, ou s e ja, o program a não e s cre ve rá 14 linha = leitor.readLine();
por cim a do q ue já l a s e e ncontra. No cas o 15 }
de s e col ocar com o argum e nto um bool e an 16
17 leitor.close();
"fal s e ", ou ape nas o nom e do fich e iro, o
18
program a cada ve z q ue for e xe cutado vai 19 }
re e s cre ve r o fich e iro a partir do início 20
apagando toda a inform ação já l á contida. 21 catch(IOException e){
22 System.out.println(e.getMessage());
Num prim e iro cas o, irá apare ce r duas ve ze s o 23 }
conte údo do fich e iro após e xe cutar o 24 }
program a duas ve ze s com o argum e nto 25}
"true ". O conte údo do fich e iro s ó apare ce rá
um a ve z, após e xe cutar o program a duas D e um a form a re s um ida, o q ue e s te código
ve ze s , com o argum e nto "fal s e " ou ape nas irá faze r é s im pl e s m e nte ir ao fich e iro fil e .txt,
s e m argum e nto. lerl inh a-a-linh a e im prim ir na cons ol a. Com o
pode m os ve r na l inh a 9 é criado um obje cto
Na l inh a 11, be m com o na 12,13,14,15, Buffe re dRe ade r q ue , através de um obje cto
pode m os ve r a util ização do m étodo printl n() File Re ade r, irá ace de r ao fich e iro fil e .txt. Na
s obre o obje cto "out", q ue vai pe rm itir e s cre ve r linh a 10 ire m os criar a variáve l'l inh a', do tipo
um a l inh a no fich e iro. Exis te m outros m étodos String, inicial izando-a com o String vazia ("").
com o o print(), w rite () com funcional idade Em s e guida, na l inh a 11, vam os l e r a prim e ira
idênticas e m bora m e nos util izados a níve lda linh a do fich e iro e vam os col ocar o conte údo
e s crita de fich e iros de te xto. de s s a linh a na variáve l l inh a, s ob form a de
String.
Por fim , te m os o m étodo cl os e q ue irá "fe ch ar"
o fich e iro, al go q ue de ve s e r s e m pre Nas l inh as 12,13,14 e 15, é fe ito um cicl o para
e xe cutado as s im q ue s e te rm ina a e s crita num le r todas as l inh as do fich e iro, cada ve z q ue o
fich e iro. É as s im te rm inada a l igação e ntre o cicl o dá um a vol ta, é im pre s s o o val or da
fich e iro e o program a. É, portanto, um pas s o linh a ante rior e l ido a l inh a s e guinte , até não
fulcral , vis to q ue cas o não e xe cutado, pode rá e xis tire m m ais l inh as no fich e iro. Finda a
de itar a pe rde r o conte údo do fich e iro. le itura, a l igação ao fich e iro é te rm inada,
com o pode m os ve r na l inh a 17. O re s ul tado
Agora q ue já s abe m os com o e s cre ve r e m final vai s e r e xactam e nte o conte údo do
fich e iros ape nas fal
ta a l
e itura dos m e s m os . fich e iro.
Para is s o vam os com e çar por obs e rvar o
Fábio Corre ia
<16>
te cnol
ogias
<17>
te cnol
ogias
2º Configurar o Protocol
o ALE: Nam e : InvTracSource 1ALE
Se nd Re ports as O bje ct: True
Se l
e ccionar ALESe rvice M odul e , e xpandir o
grupo Source s e adicionar as s e guinte s - Subs cribe rs
fonte s (ins e rir fonte e carre gar no s inal+ Es cre ve r “InvTracAl
e TCP” e carre gar no [+ ]
para cada um dos cas os ):
Criar um s e gundo obje cto “ALE Eve nt Cy cl
e ”,
Source 1:InvTracSim 1 re pe tindo os pas s os ante riore s com as
Source 2: InvTracSim 2 s e guinte s proprie dade s :
D uration (m s ): 5000
LogicalRe ade rs : Source 2
Re portD e finitions : 2
1º Re port:
Re portNam e : Source 2Additions
EPC to Be Re porte d: AD D ITIO NS
2º Re port:
Re portNam e : Source 2D e l e tions
EPC to Be Re porte d: D ELETIO NS
3º Configurar o TCPm e s s aging: Nam e : InvTracSource 2ALE
Se nd Re ports as O bje ct: True
Criar um novo obje cto “TCPM e s s aging” a Subs cribe rs : InvTracAl
e TCP
partir do dropdow n m e nu s upe rior e
configurar com os s e guinte s dados :
IPAdre s s : l
ocal
h os t
Nam e : InvTracAl e TCP
Port: 10002 Crie um úl tim o obje cto “ALE Eve nt Cy cle ”,
re pe tindo os pas s os ante riorm e nte dados
4º Configurar os ALE Eve nt Cy cl
e com as s e guinte s proprie dade s :
conne ctors :
D uration (m s ): 5000
Criar um novo obje cto “ALE Eve nt Cy cl e” a LogicalRe ade rs :
partir do dropdow n m e nu s upe rior e Source 1
configurar com os s e guinte s dados : Source 2
- Eve ntCy cl e Re portD e finitions : 1
- - Start-Stop Conditions G rouping Patte rns : urn:e pc:pat:s gtin-9 6:X.X.X.*
- - - D uration (m s ): 5000 Include Count: True
- LogicalRe ade rs Include Tag Uri: Fal se
Es cre ve r “Source 1” e carre gar no [+ ] Re portIfEm pty : True
Re portNam e : CountRe port
Re port(s ) de finition: 2 EPC to Be Re porte d: CURRENT
G ravar para um novo grupo de Re ports Nam e : InvTracCountALE
apare ce r: Se nd Re ports as O bje ct: True
- re portSpe cs 1 Subs cribe rs : InvTracAl e TCP
- Nam e : Source 1Additions
- EPC to Be Re porte d: AD D ITIO NS Nota: Es ta de m ons tração us a m ais ALE
- re portSpe cs 2 re ports e cone ctore s do q ue s e ria
- Nam e : Source 1D e l e tions norm al m e nte re q ue rido. Is to é fe ito para
- EPC to Be Re porte d: D ELETIO NS m os trar um a m aior varie dade de opçõe s ALE.
<18>
te cnol
ogias
Para ve r o re s ul
tado: com todo o s oftw are (e s s e ncial m e nte RFID
Any w h e re e .NET) e h ardw are (vários tipos de
- Iniciar/Re iniciar todos os com pone nte s tags , com putadore s , dis pos itivos m óve is ,
al te rados /criados ; re ade rs , e tc.) ne ce s s ários para de s e nvolve r
- Corre r a s e guinte apl icação: e te s tar s oluçõe s RFID de q ual idade
“… \Sy bas e \RFID e m pre s arial.
Any w h e re \Bin\iAny w h e re .RfidNe t.Al
e .Re portVi
e w e r.e xe ”; Se gundo a Sy bas e , os obje ctivos principais
Cl icar no s e parador TCP/IP s ão o de s e nvol vim e nto da te cnol ogia, a
M odificar a s e rve r portpara 10002 dis ponibil ização de Fram e w ork s ope ns ource
Cl icar e m “Start” para o m e rcado e o e s tabe l e cim e nto de
parce rias com forne ce dore s de h ardw are ,
Acabou de configurar a s ua prim e ira ISVs , Inte gradore s , As s ociaçõe s e Ins titutos de
s im ul
ação no RFID -Any w h e re ! Inve s tigação.
<19 >
te cnol
ogias
EM ESPANH A
Corre os de Es paña
A im pl e m e ntação de s te s is te m a de controlo
por radiofre q uência nos s e us 15 ce ntros de
trans porte e arm aze nam e nto dis tribuídos por
Em baixo pode m os vis ual
izar duas toda a Es panh a te ve um cus to de m ais de
m áq uinas de carre gam e nto de cartõe s , um m il h ão de e uros , para aq uis ição da
onde ao ce ntro s e col oca o cartão, s e m te cnol ogia ne ce s s ária. Es ta q uantia incl ui
e s tar e m contacto dire cto com a própria s oftw are e s pe cífico e a s ua inte gração nos
m áq uina, pe rm itindo as s im aos util izadore s s is te m as inform áticos dos Corre os , a
um carre gam e nto m ais rápido, e vitando os aq uis ição de 5.000 tags pas s ivas , a
norm ais atras os de im pre s s ão de bil h e te s . ins tal ação de m ais de 1.9 00 ante nas fixas e
m ais de 330 re ade rs m óve is para e s s e s
Ne s te m om e nto o pe rcurs o de s te trans porte ce ntros , forne cidos pe l
a Sy m bol
ainda é al go re duzido, m as s e m dúvida útil Te ch nol ogie s .
para a popul ação da zona.
Com o principais be ne fícios , os Corre os
re conh e ce m q ue com um s is te m a RFID s e
cons e guiu m e l h orar a q ual idade do s e rviço,
dar um m aior val or aos s e us cl ie nte s e
e s tabe l
e ce r um a vantage m com pe titiva e m
re lação à concorrência. A e m pre s a tam bém
adm ite q ue obtém um m e nor cus to "de vido
D anie lCorre ia
<20>
tutorial
propriedades &= "Atributos:" &
ficheiro.Attributes.ToString & vbCrLf
propriedades &= "Criação:" &
ficheiro.CreationTime.ToString & vbCrLf
propriedades &= "Ultimo Acesso:" &
ficheiro.LastAccessTime.ToString & vbCrLf
propriedades &= "Modificação:" &
ficheiro.LastWriteTime.ToString & vbCrLf
End With
Console.WriteLine(propriedades)
Return True
Catch ex As Exception
4ª parte
End Function
Fu nção M ain
Na e dição ante rior fize m os um a abordage m
s obre a util ização de array s e com o us ar as Sub Main()
cl as s e s do nam e s pace Sy s te m .IO para a Dim strCaminho As String = ""
m anipul ação de fich e iros . While Trim(strCaminho) = String.Empty
Com o s abe m os , q ual q ue r fich e iro pos s ui um Console.Write("Caminho do ficheiro: ")
conjunto de proprie dade s , proprie dade s strCaminho = Console.ReadLine()
e s tas q ue e s tão ace s s íve is us ando a cl as s e Console.Clear()
End While
File Info.
If Not getProperties(strCaminho) Then
Console.WriteLine("Erro")
Dim ficheiro As New
System.Threading.Thread.Sleep(2000)
FileInfo("ficheiro.txt")
Else
Console.ReadLine()
Proprie dade s do tipo, nom e do fich e iro, End If
local ização, e xte ns ão, atributos , tam anh o, End Sub
e tc, e s tão facil
m e nte ace s s íve is re corre ndo
as proprie dade s incorporadas na cl as s e O u tpu t
File Info. Exe m pl
o:
Cam inh o do fich e iro: c:\fich e iro.txt
Função para obte r as proprie dade s
de um fich e iro Prop. do fich e iro
======
Private Function getProperties(ByVal Nom e : fich e iro.txt
caminho As String) As Boolean
Cam inh o: c:\fich e iro.txt
Try
Exte ns ão: .txt
Dim ficheiro As New FileInfo(caminho)
Dim propriedades As String = ""
Tam anh o 37
With ficheiro Atributos : Arch ive
propriedades &= "Prop. do ficheiro" & Criação: 11-10-2006 16:27:14
ficheiro.Name.ToString & vbCrLf Ultim o Ace s s o: 11-10-2006 16:28:14
propriedades &= "======" & vbCrLf M odificação: 11-10-2006 16:28:14
propriedades &= "Nome: " &
ficheiro.Name.ToString & vbCrLf Com o vim os , um a das vantage ns e m us ar a
propriedades &= "Caminho: " & clas s e Fil
e Info, é a pos s ibil
idade de obte r
ficheiro.FullName.ToString & vbCrLf proprie dade s de um fich e iro de um a form a
propriedades &= "Extensão: " &
rápida, m as não s ó. Es ta cl as s e incorpora
ficheiro.Extension.ToString & vbCrLf
tam bém funçõe s para criar fich e iros , m ove r
propriedades &= "Tamanho:" &
ficheiro.Length.ToString & vbCrLf
ou copiar da s ua l ocalização actualpara
outra, apagar, e ncriptar, e s cre ve r, l
e r, e tc.
<21>
tutorial
Não s ão ape nas os fich e iros q ue pos s ue m D im s tr As String = "Vis ualBas ic .NET"
proprie dade s , pois os dire ctórios tam bém as Cons ol e .W rite (s tr.Inde xO f("B"))
pos s ue m e , por is s o, te m os dis poníve l a
cl as s e D ire ctory Info, conte ndo q uas e as A função Ins e rt() pe rm ite -nos ins e rir e m
m e s m as proprie dade s da Fil e Info, não q ual q ue r pos ição de um a s tring, outra s tring.
dife re nciando m uito a s ua util ização da dos No e xe m pl o s e guinte , irá s e r adicionada a
fich e iros . Q ue m te m vindo a acom panh ar o s tring “é fixe ” no fim da s tring s tr, re tornando
s e guim e nto dos artigos s obre e s ta um a s tring “Vis ualBas ic .NET é fixe ”.
linguage m , ce rtam e nte q ue s e ape rce be u
q ue o obje ctivo é dar um a ajuda a q ue m D im s tr As String = "Vis ualBas ic .NET"
pre te nde iniciar-s e e m VB.NET, l ogo, todos as s tr = s tr.Ins e rt(17, "é fixe ")
m atérias não s ão e xte ns ivam e nte Cons ol e .W rite (s tr)
abordadas , ficando is s o ao cargo de cada
um , por is s o, te rm ina aq ui a abordage m a A função Las tInde xO f() de vol ve -nos a úl tim a
fich e iros . pos ição de um a s tring q ue s e e ncontra num
de te rm inado te xto. No e xe m pl o s e guinte ,
O utra das grande s im pl e m e ntaçõe s na .NET s e rá re tornada a pos ição 8, pois é onde s e
Fram e w ork , foi o nam e s pace Sy s te m .String. e ncontra a ul tim a l
e tra “a” na s tring.
Na m aioria dos proje ctos , e xis te um a
s ituação e m q ue pre cis am os de faze r o D im s tr As String = "Vis ualBas ic .NET"
tratam e nto de um a s tring, daí a Cons ol e .W rite (s tr.Las tInde xO f("a"))
im pl e m e ntação de cl as s e s para cada ve z
m ais facil itar a tare fa do program ador. A função Le ngth (), indica-nos o tam anh o q ue
Ne s te artigo abordare m os as funçõe s m ais um a s tring te m . No e xe m pl
o s e guinte , irá s e r
im portante s para o tratam e nto de s trings , e re tornado o val or 17, pois a s tring util izada
para e xe m pl ificar ire m os util izar um a s tring contém 17 caracte re s .
fixa, q ue s e rá “Vis ualBas ic .NET”.
D im s tr As String = "Vis ualBas ic .NET"
As funçõe s q ue ire m os e xe m pl ificar s ão as Cons ol e .W rite (s tr.Le ngth )
q ue , por norm a, s ão m ais util izadas , s e ndo
elas , Contains (), Inde xO f(), Ins e rt(), Le ngth (), A função SubString() pe rm ite -nos “cortar”
Las tInde xO f(), SubString() e Trim (). parte s de um a s tring.
<22>
gnu/l
inux
# mount <directório representativo do
hardware ou ficheiro> <directório de
montagem> <opções>
Por e xe m pl
o,
<23>
gnu/l
inux
D e s e guida e ntre e m :
Re com pil ando o Ke rne lpara garantir
s uporte aos s is te m as de fich e iros Device Drivers
pre te ndidos ->DOS/FAT/NT Filesystems
O pcional
m e nte pode dar je ito adicionar tam bém :
<*> NLS UTF-8
<24>
gnu/l
inux
M ontando...
# mount /dev/cdrom0
ou
Pos to tudo is to, vam os final m e nte pas s ar à
acção e a apre nde r a m ontar os s is te m as de # mount /mnt/cdrom
fich e iros q ue ne ce s s itam os s e m q ual q ue r
probl e m a. Prim e iro, e com o já foi re fe rido, h á q ue o com ando autom aticam e nte l e rá o
um fich e iro de te xto q ue de fine , aq uando do fstab e e xe cutará o proce s s o com todas as
carre gam e nto do s is te m a, as drive s a s e re m opçõe s l á de finidas . Se ndo por s ua ve z a
m ontadas autom aticam e nte . Talfich e iro é o de finição na drive no fstab:
/e tc/fstab e é e ditáve l ape nas pe l o s upe r
utilizador root. Tudo aq uil o q ue s e faz pe l o /dev/cdrom0 /mnt/cdrom iso9660
com ando m ount pode s e r de finido no fstab e noauto,ro 0 0
de s te m odo m ontado de s de o início s e m
inte rve nção dire cta do util izador. O fich e iro O facto de ape nas o util izador root pode r
cons is te em 5 col unas q ue de fine m m ontar/de s m ontar a partição/drive pode
e xactam e nte o m e s m o q ue é de finido no s e r alte rado pe l a adição da opção 'us e r'
com ando m ount, s e ndo e s tas : na col una <opts > do fstab, na l inh a da
drive pre te ndida. Já o 'ro', re pre s e nta re ad
<fs> <mountpoint> <type> <opts> onl y, ou s e ja, ape nas s e rá pos s íve la l e itura
<dump/pass> ne s s a drive cd.
Corre s ponde ndo o <fs> à im age m do Para m ontar um a partição FAT faríam os por
h ardw are no dire ctório /de v/, o m ountpoint e xe m pl
o, novam e nte tudo na m e s m a l
inh a:
ao dire ctório onde tal drive de ve s e r
m ontada para q ue s e ja ace dida, o ty pe /dev/hda4 /mnt/particaofat vfat
re fe re -s e aos s is te m a de fich e iros (fat, e xt3, user,rw 0 0
e tc), o <opts > a opçõe s . Já o dum p re fe re -
s e à ne ce s s idade ou não de s e r fe ito um
dum p ao dis co aq uando do s e u
carre gam e nto, e o pas s re fe re -s e à orde m
pe l a q ualde ve s e r fe ito um ch e ck às drive s
cas o o s is te m a não te nh a s ito te rm inado
corre ctam e nte (0 re fe re q ue não é
ne ce s s ário nunca faze r talve rificação, e a
partição rootde ve rá te r o val or 1).
Um e xe m pl
o para a partição root:
<25>
gnu/l
inux
Q ue nos m ontará a drive com 'rw ', ou s e ja, Agora, o uid e gid, é um a m ane ira
com a particul aridade de s e e ncontrar dife re nte de de finir pe rm is s õe s , e nq uanto o
com ace s s o re ad and w rite (e s crita e um as k faz o e q uival e nte a um ch m od
le itura). Se porve ntura e s s e ace s s o for (de finir pe rm is s õe s ), o uid e gid faze m o
ape nas vál ido para o util izador root, e e q uival e nte a um ch ow n (de finir a q ue m s e
de s e jarm os de finir as pe rm is s õe s da drive apl icam as pe rm is s õe s de finidas ). Para
e m q ue s tão, bas ta nas opçõe s adicionar o s abe r os val ore s a pôr a s e guir ao = de
com ando um as k =0xxx, e m q ue o xxx é um cada opção faça:
núm e ro q ue de fine as pe rm is s õe s da
partição m as inve rtidas , e o 0 inicialo $ id <nome do user que quer que seja
pre fixo q ue indica q ue o núm e ro dono (owner) da drive>
cons e q ue nte e s tará e m octal . O u s e ja, s e
q uis e rm os de finir um a pe rm is s ão 777 E obte rá a re s pos ta.
fare m os um as k =0000, s e q ue re m os 644
fare m os um as k =0133. Se m pre 7 m e nos o
núm e ro q ue de fine a pe rm is s ão q ue O utra particul aridade da m ontage m de
pre te nde m os . Para s abe r de finir pe rm is s õe s s is te m as de fich e iros é q ue pode rá us ar o
ve ja a e dição pas s ada da Re vis ta com ando m ount para m ontar im age ns de
PRO G RAM AR. fich e iros e m .is o, para is s o:
<26>
proje cto
<27>
proje cto
<28>
proje cto
Q ue m é Pe dro S ous a?
Pe dro Sous a é Program ador Se nior na
Acce nture com vários anos de e xpe riência
e m apl icaçoe s w e b e fundador do grupo
Pe dro Sous a
<29 >
anál
is e s
Al
goritm ia e Es truturas de D ados
Editora: Ce ntroAtl
antico.pt
e cção: Te cnol
Col ogias
Páginas : 328
1ª e dição: Se te m bro de 2005
ISBN: 9 89 -615-012-5
<30>
anál
is e s
Le arning C# 2005
Je s s e Libe rty
Brian M acD onal d
Editora: O 'Re il
l
y M e dia
Linguage m : Ingl
e sa
Páginas : 552
2ª e dição: Fe ve re iro de 2006
ISBN: 0-59 6-10209 -7
ace s s íve l
, s e ndo q ue todos os te rm os
técnicos q ue o l e itor pos s a não conh e ce r Le arningCS2e Source .zip. Fica e ntão a ide ia
Pe dro Cal
<31>
inte rne t
M ath s Ch al
l
e nge é a cas a do Proje cto
Eu le r, u m proje cto q u e cons is te na
re s ol u ção de de ze nas de dife re nte s
probl e m as m ate m áticos , re corre ndo à
prog ram ação. Pos s u i tam bém e s tatís ticas
s obre as l ing u ag e ns e os país e s dos
participante s , s e ndo pos s íve lobs e rvar q u e
ainda te m pou co pe s o e m Portu g al .
h ttp://m ath s ch al
le ng e .ne t
<32>
bl
ue s cre e n
Foi e ncontrada a te cl
a m ais
procurada de todas Um a de s cobe rta inovadora
<33>
com unidade
Es tam os s e ns ive l
m e nte a dois m e s e s do fim
do ano e o Portugal -a-Program ar continua
a te ntar inovar e m várias áre as ao m e s m o
te m po: nas q ue já e s tam os ins e ridos
tive 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 te r ainda m ais .
Contam os com um fórum m ovim e ntado,
com aproxim adam e nte 2200 util izadore s , o
q ue faz com q ue e s te jam os à vontade para
nos conce ntrarm os noutros voos .
Q ue re s participar na re vis ta
PRO G RAM AR?Q ue re s inte grar e s te
proje cto, e s cre ve r artigos e ajudar A re vis ta bate u todos os re corde s de
a tornar e s ta re vis ta num m arco e s tatís ticas com a e dição ante rior e vam os
da program ação nacional ? ce rtam e nte bate r m uitos m ais com e s ta
e dição. Q ue re m os faze r com q ue e s ta
Vai a e dição ch e gue a ainda m ais inte re s s ados
e m program ação, de m odo a q ue pos s am
conh e ce r o nos s o fórum e o bom am bie nte
w w w .re vis ta-program ar.info da nos s a com unidade .
w w w .portugal
-a-program ar.org
Rui M aia
<34>