Você está na página 1de 88

Universidade Catlica de Pelotas

Escola de Informtica
L i n g u a g e m P a s c a l
por
Paulo Roberto Gomes Luzzardi
Reviso: Junho, 1996
Bibliografia
CARROLL, David W. - Programao em TURBO PASCAL McGraw-Hill
RAAL!O, Luciano & PRA"E#, Ruben - !urbo "acal, Carto de Referncia$ Livro !#cnico
e $ien%&'ico (di%ora ).*.
1
Conte%do Programtico
&' Introd()o * Ling(agem Pascal
1.1 Hi%+rico
1., -b.e%ivo
1./ $arac%er&%ica de u0 )i%e0a e0 u0a Lin1ua1e0 2deal
+' Ambiente "(rbo Pascal
,.1 3ile
,., (di%
,./ Run
,.4 $o0pile
,.5 -p%ion
,.6 Debu1
,.6 7rea89wa%ch
,.: $o0o uar o D(7;G
,' Estr(t(ra de (m Programa Pascal
/.1 2den%i'icadore
/., $o0en%<rio
/./ (%ru%ura Geral
/.4 De'ini=>o de !ipo ?!@peA
-' "i.os de dados
4.1 Integer
4., Real
4./ Byte
4.4 Car
4.5 Boolean
4.6 String
4.6 Array
4.: !ord
4.9 SortInt
4.1B LongInt
/' O.eradores
5.1 -peradore *ri%0#%ico
5.1.1 $o0 Reai
5.1., $o0 2n%eiro
5.1./ HierarCuia do -peradore
5., -peradore Relacionai
5./ -peradore L+1ico
,
5./.1 "ot
5./., And
5././ Or
5.4 -perador de 2nclu>o ?InA
5.5 "rocedi0en%o (peciai
5.5.1 Inc
5.5., #ec
0' 1(n)2es Padr2es
6.1 A$s
6., ArcTan
6./ Cos
6.4 Sin
6.5 %&'
6.6 (rac
6.6 Int
6.: S)r
6.9 S)rt
6.1B Ln
6.11 Cr
6.1, Ord
6.1/ Round
6.14 Trunc
6.15 Pi
6.16 Random
3' Comandos
6.1 !ipo de $o0ando
6.1.1 )eCDEncia
6.1., )ele=>o
6.1./ Repe%i=>o
6.1.4 *%ribui=>o
6., $o0ando )2M"L() e $-M"-)!-
6./ $o0ando If ... Ten ... %lse
6.4 $o0ando Case ... Of ... %lse ... %nd
6.5 $o0ando (or ... #o
6.6 $o0ando !ile ... #o
6.6 $o0ando Re'eat ... Until
6.: $o0ando *alt
6.9 $o0ando %&it
4' Entrada e #a5da
/
:.1 (n%rada pelo !eclado
:., )a&da no F&deo
:./ )a&da na 20preora
6' Controle do 75deo
9.1 ClrScr
9., +oto,-
9./ Clr%ol
9.4 #elLine
&8' Comandos Es.eciais
1B.1 #elay
1B., Te&tBac.+round
1B./ Te&tColor
1B.4 !indo/
1B.5 Sound e "oSound
1B.6 !ere, e !ere-
1B.6 Te&t0ode
&&' 7etores e atri9es
11.1 Fe%ore
11., Ma%riGe
11./ )or% ?-rdena=>oA
&+' ani.(la)o de :#trings:
1,.1 Cr
1,., Ord
1,./ Concat
1,.4 Co'y
1,.5 #elete
1,.6 Insert
1,.6 Lengt
1,.: Pos
1,.9 Str
1,.1B U'cCse
1,.11 1al
1,.1, (illCar
&,' Proced(res e 1(nctions
1/.1 Fari<vei Locai e Globai
1/., "arH0e%ro
1/./ "aa1e0 de "arH0e%ro por Falor
1/.4 "aa1e0 de "arH0e%ro por Re'erEncia
4
1/.5 (unction
1/.6 Procedure
&-' Ar;(ivos
14.1 "rocedi0en%o
14.1.1 Assign
14.1., Close
14.1./ %rase
14.1.4 Read
14.1.5 !rite
14.1.6 Re"ame
14.1.6 Reset
14.1.: Re!rite
14.1.9 See.
14., 3un=Ie
14.,.1 %of
14.,., (ilePos
14.,./ (ileSi2e
14.,.4 Si2eOf
14./ $o0o De'inir u0 Re1i%ro ?RecordA
&/' <rficos
15.1 "laca Gr<'ica
15.1.1 $G*
15.1., (G*
15.1./ FG*
15., $oordenada de !ela
15.,.1 $G*
15.,., (G*
15.,./ FG*
15./ De%ec=>o e 2nicialiGa=>o da !ela Gr<'ica
15.4 PutPi&el ?"on%oA
15.5 Line ?LinhaA
15.6 Rectangle ?Re%Hn1uloA
15.6 Circle ?$&rculoA
15.: Arc ?*rcoA
15.9 #ra/Poly ?"ol&1onoA
15.1B SetColor e SetB.Color ?$or de 3ren%e e $or de 3undoA
15.11 OutTe&t,- e SetTe&tStyle ?!eJ%oA
5
15.1, "reenchi0en%o ?"in%uraA
15.1,.1 Re%Hn1ulo ?BarA
15.1,., "ol&1ono ?(illPoly e (lood(illA
15.1/ *%iva=>o de Janela
15.1/.1 Janela *%iva
15.1/., Li0par Janela *%iva
15.1/./ )alvar e Recuperar Janela Gr<'ica
&0' Cria)o de Unidades =:Units:>
16.1 $o0o $riar u0 ;nidade
16., (Je0plo de $ria=>o de u0a ;nidade
16./ (Je0plo de "ro1ra0a Cue ua u0a ;nidade
&3' emria de 75deo
&4' Passagem de Par?metros .ela Lin@a de Comandos do #istema O.eracional
&6' Ponteiros
19.1 !ipo de *loca=>o de Me0+ria
19.1.1 *loca=>o (%<%ica
19.1., *loca=>o DinH0ica
19., *ceo Dire%o a Me0+ria
19./ *ceo Dire%o a Me0+ria de F&deo
19.4 Li%a (ncadeada
19.5 3ila e "ilha
19.6 Li%a Dupla0en%e (ncadeada
+8' Interr(.)2es
6
&' Introd()o * Ling(agem Pascal
&'& !istrico
Deenvolvido e0 196B pelo "ro'. "ic.laus !irt no !echnical ;niveri%@ - KuriCue -
)ui=a.Lo0e e0 ho0ena1e0 M Blaise Pascal ?)#c. NF22A.
&'+ ObAetivos
aA (nino da "ro1ra0a=>o, poi # u0a lin1ua1e0 did<%icaO
bA "ro1ra0a=>o (%ru%urada.
&', Caracter5sticas do #istema em (ma Ling(agem Ideal
aA "roduGir pro1ra0a-ob.e%o co0pac%o e e'icien%eO
bA ;ar u0a lin1ua1e0 de al%o n&vel, de '<cil en%endi0en%oO
cA "er0i%ir ao pro1ra0ador 'aGer al%era=Ie e viualiGar o reul%ado rapida0en%e
dA "roduGir pro1ra0a por%<%ei para ere0 rodado e0 CualCuer ou%ro co0pu%ador.
+' Ambiente "(rbo Pascal /'/
1 ileE di%R unC o0pil ePro .ec%O p%ionB ebu1 Bre a89wa%c h
(d i%
M ea1e9 Wa%ch
Li ne1 $ol1 2n er%2d en%!a b3ill ;nide n%
.an elade edi=>o
.an elade 0ena1 endoa 0bien% e
.anela deai %Encia ?debu1A
31 -Help 35-Ko o036 -)wi%ch 36-!ra ce3: -)%ep39 -Ma8e 31B-M enu
*PL- L*M( ."*)
AltP 1&-La% help 1,-"ic8 10-)wap 13914-"rev9neJ% error
6
+'& 1ile ?*rCuivoA Q*L!RQ3R
"er0i%e carre1ar arCuivo, alvar arCuivo, li%ar dire%+rio, criar novo 'on%e, reno0ear
arCuivo, a&da %e0por<ria ao )i%e0a -peracional e a&da de'ini%iva ao i%e0a operacional.
Load ?$arre1arA Q3/R
S eJibida u0a caiJa de di<lo1o olici%ando o no0e do arCuivo a er carre1ado, e 'or
preionado a %ecla T(L!(RU # eJibida ou%ra caiJa de dial+1o con%endo o no0e de %odo o
arCuivo VW.paV con%ido no dico. - pro1ra0ador eleciona u0 arCuivo ?e%a direi%a, eCuerda,
aci0a ou abaiJoA e preiona T(L!(RU lo1o ap+, o arCuivo # carre1ado do #isco para o %ditor.
PicC ?"e1arAQ*L!RQ3/R
S eJibida u0a li%a co0 o no0e do Xl%i0o arCuivo Cue 'ora0 carre1ado. -
pro1ra0ador pode elecionar u0 dele ?e%a aci0a ou abaiJoA e en%>o carre1<-lo do #isco para o
%ditor. - no0e do arCuivo 'ica0 ar0aGenado e0 u0 arCuivo cha0ado VTURBO3PC4V.
DeE ?LovoA
"er0i%e ao pro1ra0ador edi%ar u0 Vno5oV arCuivo. (%e arCuivo poui o no0e de
V"O"A0%3PASV, e%e no0e deve er reno0eado Cuando o arCuivo 'or alvo no dico ?3,A.
#ave ?)alvarA Q3,R
)alva o con%eXdo do (di%or no Dico. )e o arCuivo n>o %iver no0e ?V"O"A0%3PASVA,
pode en%>o, er reno0eado. !odo arCuivo deve %er u0 no0e Cue n>o e.a V"O"A0%3PASV.
Frite to ?(crever $o0oA
(creve ?1ravaA o con%eXdo do edi%or nu0 ou%ro arCuivo indicado pelo uu<rio ?conerva o
an%i1o no disco e o novo no editorA.
BirectorG ?Dire%+rioA
(Jibe o dire%+rio do dico corren%e, de acordo co0 u0a 0<cara epeci'icada, per0i%e ainda,
Cue u0 arCuivo e.a carre1ado.
C@ange dir ?Mudar Dire%+rioA
"er0i%e 0udar o ubdire%+rio ?dri5e67'atA corren%e.
Os #@ell ?)a&da !e0por<ria ao )i%e0a -peracionalA
:
)a&da %e0por<ria do !urbo "acal para o )i%e0a -peracional. "ara re%ornar ao *0bien%e
di1i%a-e %&it.
H(it ?)airA Q*L!RQNR
)a&da de'ini%iva do *0bien%e !urbo "acal. Fol%a o con%role ao )i%e0a -peracional.
+'+ Edit ?(di%arA Q*L!RQ(R
"er0i%e a cria=>o ou edi=>o de pro1ra0a. "ara air do edi%or preiona-e a %ecla 31B ou
*L! 0ai a le%ra 0aiXcula da op=>o do 0enu principal.
+', R(n ?$orrer, (Jecu%arA Q*L!RQRR
R(n ?(Jecu%aA Q$!RLRQ39R
$o0pila o pro1ra0a, lin.a a unidade e eJecu%a o pro1ra0a.
Program reset ?Ree%a "ro1ra0aA Q$!RLRQ3,R
!er0ina a eJecu=>o de u0 pro1ra0a Cue 'oi eJecu%ado co0 o V#e$ugV. De0arca a linha
a%ual do V#e$ugV.
<o to c(rsor ?F< para $urorA Q34R
3or=a o V#e$ugV eJecu%ar %oda a linha a%# a poi=>o do curor, ou e.a, pula a in%ru=Ie
in%er0edi<ria.
"race into ?!ra=a Den%roA Q36R
3or=a o V#e$ugV a eJecu%ar linha a linha entrando obri1a%oria0en%e den%ro da V'rocedureV
e VfunctionV.
#te. over ?"aa )obreA Q3:R
3or=a o V#e$ugV a eJecu%ar linha a linha sem entrar na V'rocedureV e VfunctionV.
User screen ?!ela do ;u<rioA Q*L!RQ35R
(Jibe a %ela de eJecu=>o do pro1ra0a.
+'- Com.ile ?$o0pilarA Q*L!RQ$R
9
Com.ile ?$o0pilarA Q*L!RQ39R
$o0pila o pro1ra0a 'on%e e lin.a a unidade.
aCe ?3aGerA Q39R
$o0pila o arCuivo pri0<rio ?VPrimary (ileP VA ou o arCuivo preen%e no edi%orO e %odo o
arCuivo Cue depende0 de%e, incluive a unidade ?VunitVA Cue 'ora0 al%erada.
B(ild ?$on%ruirA
Reco0pila %odo o arCuivo relacionado ao arCuivo pri0<rio ?VPrimary (ileVA.
Bestination ?De%ina=>oA QMe0or@ ou Di8R
(peci'ica o de%ino do pro1ra0a eJecu%<vel. )e V0emoryV o eJecu%<vel # %e0por<rio, e
V#is.V o arCuivo eJecu%<vel # ar0aGenado e0 dico ?co0o 3%,%A.
1ind error ?*char (rroA
LocaliGa u0 erro de eJecu=>o VRunTime %rrorV ?(rro e0 !e0po de (Jecu=>oA.
PrimarG file ?*rCuivo "rincipalA
;ado para de'inir o arCuivo principal, uado pelo V0a.eV e VBuildV.
<et info ?Mo%ra 2n'or0a=IeA
(Jibe u0a .anela con%endo in'or0a=Ie do arCuivo 'on%e.
+'/ O.tions ?-p=IeA Q*L!RQ-R
1B
Com.iler ?$o0piladorA
"er0i%e a iner=>o de dire%iva de co0pila=>o e0 ecrev#-la no pro1ra0a-'on%e.
Range c@ecCing ?-L ou -33AP )e li1ada, veri'ica e o VarrayV e VstringV e%>o den%ro da
'aiJa de'inida pelo pro1ra0ador.
#tacC c@ecCing ?-L ou -33AP )e li1ada, o co0pilador veri'ica e h< epa=o na pilha para a
vari<vei locai, an%e da cha0ada da V'rocedureV e VfunctionV.
IIO c@ecCing ?-L ou -33AP )e li1ada, veri'ica e h< erro de en%rada e a&da. (0 -33
pode-e %e%ar erro de en%rada e a&da a%rav# da 'un=>o IoResult.
1orce for calls ?-L ou -33AP )e li1ada, o co0pilador 1era cha0ada "ear para
V'rocedureV e VfunctionV Cue e%ivere0 endo co0pilada.
OverlaGs alloEed ?-L ou -33AP "er0i%e a 1era=>o de c+di1o VO5erLayV para u0a unidade
?V3O1LVA.
Align data ?Word ou 7@%eAP (0 V!ordV %odo o dado 0aiore Cue VByteV >o %ra%ado
co0o %ipo V!ordV.
7arJstring c@ecCing ?)%ric% ou RelaJedAP )e VStrictV ?ri1oroaA veri'ica o %a0anho da
VstringV paada co0o parH0e%ro, e VRela&edV ?0oderadaA n>o veri'ica.
Boolean eval(ation ?)hor% circui% ou $o0ple%eAP )e VSort circuitV o %e%e de u0a
eJpre>o booleana >o 0ai r<pido, e Vcom'leteV %oda a condi=Ie >o %e%ada.
D(meric .rocessing ?)o'%ware ou :B:6-:B,:6AP $o0 898:;89<8: # per0i%ido o uo do
%ipoP Single, #ou$le, %&tended ou Com'. )e VSoft/areV per0i%e o0en%e o uo do %ipo co0un
do !urbo.
Em(lation ?-L ou -33AP (0ula ?i0ulaA u0 coproceador ari%0#%ico, e ele n>o eJi%ir.
Beb(g information ?-L ou -33AP Gera u0 arCuivo de in'or0a=Ie de depura=>o de u0
arCuivo Cue e%< endo co0pilado.
Local sGmbols ?-L ou -33AP Gera in'or0a=Ie obre &0bolo locai ?no0e e %ipo de
%oda a vari<vei e con%an%e locai de u0 &0boloA.
Conditional definesP De'ine &0bolo Cue pode0 er re'erenciado e0 dire%iva de
co0pila=>o condicionai no arCuivo 'on%e.
emorG #i9es ?)%ac8 iGe, Low heap li0i% ou Hi1h heap li0i%AP "er0i%e con'i1urar o 0apa
de 0e0+ria de u0 arCuivo de c+di1o reul%an%e, ou e.a, o %a0anho da 0e0+ria.
#tacC si9eP "er0i%e epeci'icar o %a0anho do e10en%o da pilha e0 b@%e.
LoE @ea. limitP "er0i%e epeci'icar o li0i%e in'erior da pilha.
!ig@ @ea. limitP "er0i%e epeci'icar o li0i%e uperior da pilha.
11
LinCer
"er0i%e epeci'icar di'eren%e 0odalidade de 1era=>o do 0apa do Vlin.erV e o de%ino do
Vlin. $ufferV.
a. file ?-33, )e10en%, "ublic ou De%ailedAP
O11P *rCuivo VW.M*"V n>o # 1erado.
#egmentsP 2nclui in'or0a=Ie do e10en%o de 0e0+ria no arCuivo =30AP.
P(blicsP 2nclui in'or0a=Ie obre &0bolo, 'rocedure9function no arCuivo =30AP.
BetailedP 2n'or0a=Ie 0ai de%alhada do Cue a an%eriore.
LinC b(ffer ?Me0or@ ou Di8AP De'ine o de%ino do VLin. $ufferV.
emorG: Mai r<pido, 0a n>o acei%a pro1ra0a 1randeO
BisC: Mai len%o, 0a acei%a pro1ra0a 0aiore.
Environment ?*0bien%eA
"er0i%e con'i1urar o a0bien%e de %rabalho.
Config a(to save ?-L ou -33AP )e li1ado, a%ualiGa o arCuivo de con'i1ura=>o
?VTURBO3TPVA Cuando o pro1ra0ador ai do !urbo "acal.
Edit a(to save ?-L ou -33AP )alva au%o0a%ica0en%e o arCuivo 'on%e Cuando o arCuivo 'or
eJecu%ado ?VRunVA ou Cuando da a&da para o )i%e0a -peracional ?V>uitV ou VOs sellVA.
BacC(. files ?-L ou -33AP Gera arCuivo V=3BA4V Cuando o arCuivo 'on%e 'or alvo.
"ab si9e :P (peci'ica o %a0anho da %abula=>o horiGon%al do edi%or ?ta$A ?, a%# 16 brancoA.
Koom EindoEs ?-L ou -33AP e li1ada, a .anela %dit, !atc ou OutPut e%>o
eJpandida.
#creen si9e ?,5 line dipla@ ou 4/95B line dipla@AP "er0i%e elecionar o nX0ero de linha na
%elaP ,5 placa $G*, 4/ placa (G* e 5B placa FG*.
Birectories ?Dire%+rioA
"er0i%e epeci'icar dri5e67'at para dire%+rio do arCuivo uado e 1erado pelo %urbo.
"(rbo BirectorGP Dire%+rio do arCuivo do !urbo "acal ?dri5e67'atA, nor0al0en%eP
$PYL2LGY!".
ELE M "PU BiretorG: Dire%+rio do arCuivo V=3%,%V ?eJecu%<veiA e V=3TPUV
?unidadeA.
1,
Incl(de Biretories: (peci'ica o dire%+rio do arCuivo u%iliGado pela dire%iva de inclu>o
de 'on%e Z[2\.
Unit Biretories: (peci'ica o dire%+rio do arCuivo 'on%e de unidade ?V=3PASV da
unidadeA.
ObAect Birectories: (peci'ica o dire%+rio do arCuivo ob.e%o V=3OB?V.
PicC 1ile Dame: (peci'ica o drive, ca0inho e no0e do arCuivo de ele=>o VW."$]V.
C(rrent PicC 1ileP 2ndica o drive, ca0inho e no0e do arCuivo de ele=>o corren%e.
Parameters ?"arH0e%roA
"er0i%e a epeci'ica=>o de parH0e%ro para Cue o pro1ra0a poa er co0pilado na
0e0+ria.
#ave o.tions ?)alva -p=IeA
)alva o arCuivo de con'i1ura=>o V=3TPV ?default VTURBO3TPVA.
Retrieve o.tions ?Recuperar -p=IeA
$arre1a o arCuivo de con'i1ura=>o V=3TPV ?default VTURBO3TPVA.
+'0 Beb(g ?Depura=>oA Q*L!RQDR
Eval(ate Q$!RLRQ34RP (Jibe u0a .anela de avalia=>o co0 %rE op=IeP ?(valua%e, Reul% e
Lew na0eA
Eval(ateP "er0i%e iden%i'icar u0a eJpre>o ou u0a vari<vel a er ub0e%ida ao
Debu1.
Res(ltP S eJibido o reul%ado da avalia=>o da eJpre>o ou vari<vel elecionada
aci0a.
DeE name: "er0i%e a%ribuir u0 novo valor.
Call stacC Q$!RLRQ3/RP Duran%e a depura=>o, per0i%e cha0ar u0a .anela co0 a
pilha Cue con%#0 u0a li%a de V'rocedureV e VfunctionV Cue 0o%ra0 a poi=>o a%ual, 0o%rando
%a0b#0, o parH0e%ro de cada cha0ada.
1ind .roced(reP "oiciona o curor no in&cio de u0a V'rocedureV ou VfunctionV.
Integrated deb(gging ?-L ou -33AP )e li1ado, aciona o de$ugger, VBrea.PointsV ?pon%o
de paradaA pode0 er colocado.
#tandalone deb(gging ?-L ou -33AP )e li1ado co0 VCom'ile@#estinationV e0 V#is.V, a
in'or0a=Ie do V#e$uggerV >o aneJada ao arCuivo V=3%,%V para uo co0 o VTur$o #e$uggerA.
1/
Bis.laG sEa..ing ?Lone, )0ar% ou *lwa@AP "er0i%e e%abelecer 0odo de viualiGa=>o de
VOutPutV de %ela duran%e a depura=>o do pro1ra0a.
Done: L>o 0o%ra a %ela de a&da do pro1ra0a.
#mart: Mo%ra o e'ei%o da %ela o0en%e Cuando houver u0 co0ando de a&da.
AlEaGs: Mo%ra e0pre a %ela reul%an%e.
Refres@ dis.laGP Re%orna para a %ela do a0bien%e.
+'3 BreaCIEatc@ Q*L!RQ7R
)e a op=>o VIntegrated de$uggingV do 0enu V#e$ugV e%iver e0 VOnV pode-e adicionar,
dele%ar, edi%ar, re0over %odo o V/atcesV ou colocar, re%irar ou procurar VBrea.PointsV.
Add Eatc@ Q$!RLRQ36RP "er0i%e Cue a vari<vel ob o curor e.a eJibida na .anela de
ai%Encia Cuando o Vde$ugV 'or eJecu%ado
Belete Eatc@P "er0i%e Cue u0a vari<vel da .anela de ai%Encia e.a dele%ada.
Edit Eatc@P "er0i%e Cue u0a vari<vel da .anela de ai%Encia e.a edi%ada ?al%eradaA.
Remove all Eatc@esP Re0ove %oda a vari<vei da .anela de ai%Encia.
"oggle breaC.oint Q$!RLRQ3:RP "er0i%e Cue VBrea.PointsV ?pon%o de paradaA e.a0
colocado ou re%irado.
Clear all breaC.ointsP "er0i%e Cue %odo o VBrea.PointsV e.a0 re0ovido.
7ieE neNt breaC.ointP "er0i%e viualiGar o pr+Ji0o VBrea.PointV.
14
+'4 Como (sar o BEBU<
Passo &: !er a dua .anela na %elaP Banela de edio e Banela de assistncia Q35RO
Passo+: Marcar u0 VBrea.PointV ?pon%o de paradaA Q$!RLRQ3:R ou op=>o VToggle $rea.'ointV do
0enu VBrea.@/atcVO
Passo ,: Rodar o pro1ra0a VRunV ou Q$!RLRQ39R, o pro1ra0a # eJecu%ado a%# a linha an%erior ao
VBrea.PointVO
Observa)o: "ara viualiGar o reul%ado ob%ido na %ela de eJecu=>o Q*L!RQ35R ou a op=>o VUser
screenV do 0enu VRunVO
Passo -: "ara elecionar a vari<vei Cue e dee.a ai%ir, poiciona-e o curor e0 ci0a da vari<vel
e Q$!RLRQ36R ou a op=>o VAdd /atcV do 0enu VBrea.@/atcV, ap+ aparecer u0a .anela co0 a
vari<vel no eu in%erior ?podendo-e al%erar ou 0udar a vari<velA preiona-e QR(!;RLRO
Passo /: "ara viualiGar a eJecu=>o do pro1ra0a linha # linha preiona-e Q3:R ?op=>o VSte' o5erV
do 0enu VRunVA ou Q36R ?op=>o VTrace intoV do 0enu VRunVAP
O14P: eJecu%a o pro1ra0a linha # linha e0 en%rar na V'rocedureV e VfunctionVO
O13P: eJecu%a o pro1ra0a linha # linha en%rando %a0b#0 na V'rocedureV e VfunctionVO
Passo 0: "ode-e ainda V#elete /atcV ?dele%ar vari<velA, V%dit /atcV ?edi%ar vari<velA ou
VRemo5e all /atcesV ?re0over %oda a vari<veiA no 0enu VBrea. @ /atcV.
Passo 3: "ode-e ainda deviar a eJecu=>o do Vde$ugV para a linha Cue e%< o curor Q34R ou a
op=>o V+oto cursorV do 0enu VRunVO
Passo 4: "ara encerrar a eJecu=>o do Vde$ugV Q$!RLRQ3,R ou a op=>o VProgram resetV do 0enu
VRunV, deve-e ainda de0arcar %odo o V$rea.'ointsV a%rav# da op=>o VClear all $rea'ointsV do
0enu VBrea.@/atcV.
15
,' Estr(t(ra de (m Programa Pascal
,'& Identificadores
)>o o no0e criado pelo pro1ra0ador paraP
- no0e de $on%an%e ?ConstAO
- no0e de Fari<vei ?1arAO
- no0e de !ipo ?Ty'eAO
- no0e de "rocedi0en%o ?ProcedureAO
- no0e de 3un=Ie ?(unctionAO
- no0e de ;nidade ?UnitAO
- no0e de "ro1ra0a ?ProgramA.
RegrasP
- !odo iden%i'icador deve co0e=ar co0 u0a le%ra ou ubcri%o ?^AO
- L>o pode con%er epa=oO
- - carac%ere v<lido >o le%ra, d&1i%o, ubcri%oO
- "ode con%er CualCuer Cuan%idade de carac%ere, 0a o0en%e o pri0eiro 0, >o i1ni'ica%ivo.
,'+ Comentrios
- pro1ra0ador pode, den%ro do eu pro1ra0a, 'aGer co0en%<rio e0 Cue o c+di1o e.a
co0pilado, i%o pode er 'ei%o de dua 0aneiraP
=Q aCui co0e=a o pro1ra0a Q>
ou
R aCui co0e=a o pro1ra0a S
,', Estr(t(ra <eral
=Q JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ Dome do .rograma Q>
Program no0e^do^pro1ra0aO ?W opcional WA
=Q JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ Unidades Q>
Uses $r%,"rin%er,GraphO 99 unidade
=Q JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ Beclara)2es Q>
Const J _ 1BBO
"2 _ /.1415O
;" _ `6,O Z%ecla aci0a\
L(3! _ `65O Z%ecla eCuerda\
16
R2GH! _ `66O Z%ecla direi%a\
D-WL _ `:BO Z%ecla abaiJo\
"G;" _ `6/Oa Z%ecla pa1ina aci0a\
"GDL _ `:1O Z%ecla pa1ina abaiJo\
(L!(R _ `1/O Z%ecla R(!;RL ou (L!(R\
()$ _ `,6O Z%ecla ()$\
7*$])"*$( _ `:O Z%ecla 7*$])"*$(\
Ty'e Lo0e _ StringQ:BRO
1ar *,7P IntegerO
$P RealO
LP Lo0eO
=Q JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ Befini)2es Q>
Procedure no0e^do^procedi0en%o?parH0e%roAO
Begin
co0andoO
%ndO
(unction no0e^da^'un=>o?parH0e%roAP !2"- D* 3;Lb*-O
Begin
co0andoO
%ndO
=Q JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ Programa Princi.al Q>
Begin
co0andoO
%nd.
,'- Befini)o de "i.os ="G.e>
(0 "acal o pro1ra0ador pode de'inir eu pr+prio %ipo de dado.
;e $r%O
Ty'e !2"-^D*!* _ Record
anoP 2n%e1erO
0eP 1..1,O
diaP 1../1O
(ndO
!2"-^L-M(P )%rin1Q:BRO
Far Da%aP !2"-^D*!*O
Lo0eP !2"-^L-M(O
16
7e1in
$lr)crO
Da%a.ano P_ 1995O
Da%a.0e P_ 1,O
Da%a.dia P_ 19O
Lo0e P_ ^;$"elcO
-' "i.os de Bados
-'& J Integer: ?, b@%eA 3aiJaP Q-/,66: M /,666R
Far $on%ador,*cu0uladorP IntegerO
7e1in
$on%ador P_ 1BBBO
*cu0ulador P_ -/,BBBO
-'+ J Real: ?6 b@%eA 3aiJaP Q1.B(-/: M 1.B(d/:R
Far "i,2n'lacao,Juro,Lo%a,)alarioP RealO
7e1in
"i P_ /.1415O
2n'lacao P_ 1/.6O
Juro P_ ,5.6O
Lo%a P_ 5.99O
)alario P_ :6656.99O
-', J BGte: ?1 b@%eA 3aiJaP QB M ,55R
Far Dia,Me,2dade,Lu0ero^de^Den%eP ByteO
7e1in
Dia P_ /1O
Me P_ 1,O
2dade P_ //O
Lu0ero^de^Den%e P_ 1,O
-'- J C@ar: ?1 b@%eA 3aiJaP QB M ,55R carac%ere
Far )eJo,-pcao,Le%ra,-peracaoP CarO
7e1in
)eJo P_ c3cO
-pcao P_ c1cO
Le%ra P_ cacO
-peracao P_ cdcO
$arac%er P_ `65O Z Le%ra * \
Le%ra P_ $HR?66AO Z Le%ra 7 \
1:
-'/ J Boolean: ?1 b@%eA 3aiJaP Q!rue ou 3aleR
Far $on%inuaP BooleanO
N,eP 2n%e1er
7e1in
$on%inua P_ 3*L)(O
Repea%
ReadLn?NAO
ReadLn?eAO
2' N _ e %hen
$on%inua P_ !R;(O
;n%il $on%inuaO
-'0 J #tringOnP: ?nd1 b@%eA
Far Lo0eP StringQ4BRO
7e1in
$lr)crO
Lo0e P_ c!urbo "acal 5.5cO
Wri%e?cLo0eP c,Lo0eAO
-'3 J ArraGOfaiNaP Of "i.o:
Far Lo0eP ArrayQ1..1BR o' )%rin1Q:BRO
Lo%aP ArrayQ1..1BR o' RealO
Le%raP ArrayQ1..4BR o' $harO
2P 7@%eO
7e1in
$lr)crO
3or 2 P_ 1 %o 1B do
7e1in
Wri%e?cLo0eP cAO
Readln?Lo0eQ2RAO
Wri%e?cLo%aP cAO
Readln?Lo%aQ2RAO
(ndO
3or 2 P_ 1 %o 4B do
7e1in
Wri%e?cLe%raP cAO
Le%raQ2R P_ Read]e@O
(ndO
-'4 J Ford: ?, b@%eA ?B M 655/5A
Far Lu0ero^de^*luno^$a%olica,Lu0ero^de^3uncionarioP !ordO
19
-'6 J #@ortInt: ?1 b@%eA ?-1,: M 1,6A
-'&8 J LongInt: ?4 b@%eA ?-,1464:/64: M ,1464:/646A
/' O.eradores
/'& J O.eradores AritmTticos
/'&'& J Com REAI#
d *di=>o
- )ub%ra=>o
W Mul%iplica=>o
9 Divi>o
/'&'+ J Com ID"EIRO#
d *di=>o
- )ub%ra=>o
W Mul%iplica=>o
9 Divi>o co0 res(ltado real
Div Reul%ado in%eiro da divi>o
Mod Re%o da divi>o
;e $r%O
Far N,eP 2n%e1erO
DiviaoP RealO
Re%o,fuocien%eP 2n%e1erO
7e1in
$lr)crO
N P_ 6O
e P_ ,O
Diviao P_ N 9 eO Z Diviao _ /,5 \
Re%o P_ N 0od eO Z Re%o _ 1 \
fuocien%e P_ N #i5 eO Z fuocien%e _ / \
6 ,
1
/
/'&', !IERARHUIA =PrecedUncia>
,B
1. "arEn%eeP ?A
,. -perador un<rioP -?valorA
/. 3un=Ie
4. -perador Lo%
5. W 9 Div Mod *nd
6. d - -r Nor
6. _ TU U T U_ T_ ?-peradore RelacionaiA
/'+ J O.eradores Relacionais
_ 21ual
TU Di'eren%e
U_ Maior ou i1ual
T_ Menor ou i1ual
T Menor
U Maior
/', J O.eradores Lgicos
/','& J Dot =nega)o>P
7 1 DO"
Dot A 1 7
/','+ J And =e>P
7 1
7
1 1
Condi)o A
Condi)o B
7
ADB
1
1
/',', J Or =o(>P
,1
7 1
7
1 1
7
Condi)o A
Condi)o B
OR
7
7
/','- J Lor =o( eNcl(sivo>P
LOR 7 1
7
1
1
1
7
7
Condi)o A
Condi)o B
/'- O.erador de Incl(so ?2nA
-perador Cue %e%a a inclu>o de u0a vari<vel e0 u0a li%a de con%an%e.
ENem.lo =&>:
Repea%
$h P_ Read]e@O
;n%il $h In Qc)c,cc,cLc,cncRO
?W verdadeiro Cuando $h # i1ual aP c)c,cc,cLc,cnc WA
V ig(al a:
Repea%
$h P_ Read]e@O
;n%il ?$h _ c)cA -r ?$h _ ccA -r ?$h _ cLcA -r ?$h _ cncAO
?W verdadeiro Cuando $h # i1ual aP c)c,cc,cLc,cnc WA
ENem.lo =+>:
Repea%
ReadLn?NAO
;n%il N In Q1,,,/,4,5RO ?W ou N 2n Q1..5RO WA
?W verdadeiro Cuando N # i1ual aP 1,,,/,4,5 WA
V ig(al a:
,,
Repea%
ReadLn?NAO
;n%il ?N_1A or ?N_,A -r ?N_/A -r ?N_4A -r ?N_5AO
?W verdadeiro Cuando N # i1ual aP 1,,,/,4,5 WA
/'/ Procedimentos Es.eciais
/'/'& Inc
"rocedi0en%o Cue per0i%e o incre0en%o de u0a vari<vel in%eira.
odo de UsarP Inc?vari<vel,paoAO
Inc?iAO ?W i P_ i d 1 WA
Inc?i,5AO ?W i P_ i d 5 WA
/'/'+ Bec
"rocedi0en%o Cue per0i%e o decre0en%o de u0a vari<vel in%eira.
odo de UsarP #ec?vari<vel,paoAO
#ec?iAO ?W i P_ i - 1 WA
#ec?i,5AO ?W i P_ i - 5 WA
0' 1(n)2es Padr2es
0'& J EN.=N>: 3un=>o eJponencial e
J
0'+ J Abs=N>: Falor abolu%o ?valor e0pre poi%ivoA.
0', J Arc"an=valor>: 3un=>o arco %an1en%e ?reul%ado e0 radianoA.
0'- J Cos=ang>: 3un=>o coeno ?Hn1ulo e0 radianoA.
0'/ J #in=ang>: 3un=>o eno ?Hn1ulo e0 radianoA.
0'0 J 1rac=N>: Re%orna a par%e 'racion<ria.
0'3 J Int=N>: Re%orna a par%e in%eira.
0'4 J #;r=N>: Re%orna J elevado a e1unda po%Encia.
0'6 J #;rt=N>: Re%orna a raiG Cuadrada de J.
0'&8 J Ln=N>: Lo1ari%0o La%ural.
0'&& J C@r=N>: !ran'or0a ordinal e0 carac%er.
0'&+ J Ord=N>: !ran'or0a carac%er e0 ordinal.
0'&, J Ro(nd=N>: $onver%e real e0 in%eiro arredondando.
0'&- J "r(nc=N>: $onver%e real e0 in%eiro e0 arredondar.
0'&/ J Pi: Falor "i _ /.14159,65/5:969/,/:5.
0'&0 J Random?vAP Gera u0 nX0ero alea%+rio de Gero a%# ?v-1A.
3' Comandos
,/
3'& "i.os de Comandos
3'&'& #e;WUncia
S u0 %ipo de co0ando Cue no 'luJo l+1ico do pro1ra0a # eJecu%ado e o con%role paa para
o pr+Ji0o co0ando.
%&em'lo6
Far Lo0eP )%rin1O
7e1in
$lr)crO
Wri%e?cLo0eP cAO
Readln?Lo0eAO
3'&'+ #ele)o ?If e CaseA
S u0 %ipo de co0ando Cue no 'luJo de eJecu=>o do pro1ra0a per0i%e Cue, a%rav# de
condi=Ie, devio e.a0 'ei%o, ou e.a, al1un co0ando >o eJecu%ado e ou%ro n>o.
%&em'lo6
If nu0ero _ B Ten
Wri%eLn?cKerocA
%lse
If nu0ero U B Ten
Wri%eLn?c"oi%ivocA
%lse
Wri%eLn?cLe1a%ivocAO
3'&', Re.eti)o ?(or, !ile e Re'eatA
S u0 %ipo de co0ando Cue no 'luJo de eJecu=>o do pro1ra0a, per0i%e Cue ou%ro co0ando
e.a0 repe%ido a%# Cue u0a condi=>o e.a a%i'ei%a ou enCuan%o u0a condi=>o # a%i'ei%a. "or
eJe0ploP
%&em'lo6
i P_ 1O
Re'eat ?W repe%e a%# Cue u0a %ecla e.a preionada WA
Wri%eLn?ci _ c,iAO
2nc?iAO ?W inc?iA # i1ual a i P_ id1 WA
Until ]e@"reedO
3'&'- Atrib(i)o
,4
S u0 %ipo de co0ando Cue per0i%e Cue u0a eJpre>o ?eCua=>oA e.a reolvida e o eu valor
a%ribu&do ?i1ualado a u0a vari<velA.
%&em'lo6
i 6C 1O
J 6C J d 1O
J1 6C ?- b d Cr%?Cr?bA - 4 W a W cAA 9 ?, W aAO
3'+ J Comando #IPLE# e COPO#"O:
#im.les: fuando h< apena u0 co0ando li1ado a ou%ro.
3or i P_ 1 %o 1BB do
Wri%eLn?iAO
Com.osto: fuando 0ai de u0 co0ando e%< li1ado a ou%ro, uar-e o deli0i%adore Begin$ EndO
3or i P_ 1 %o 1BB do
Begin
Wri%eLn?ci _ c,iAO
ch P_ Read]e@O
%ndX
3', J Comando If ''' "@en ''' Else ?$o0ando de )ele=>oA
odo de (sar:
If condi=>o Ten
co0andoO
)e a condi=>o # verdadeira en%>o o co0ando # eJecu%ado, en>o # eJecu%ado o pr+Ji0o
co0ando.
ou
If condi=>o Ten
co0ando 1
%lse
co0ando ,O
)e a condi=>o # verdadeira o co0ando 1 # eJecu%ado en>o # eJecu%ado o co0ando ,.
$o0ando, co0ando 1 e co0ando , pode0 er i0ple ou co0po%o.
3'- J Comando Case ''' Of ''' Else ''' End ?$o0ando de )ele=>oA
,5
odo de (sar:
Case vari<vel
O1
con%an%e 1P co0ando 1O
con%an%e ,P co0ando ,O
. .
. .
con%an%e nP co0ando nO
EndX
)e a vari<vel # i1ual a al1u0a con%an%e o co0ando correponden%e # eJecu%ado, e nenhu0a
con%an%e 'or encon%rada o co0ando er< %er0inado.
ou
Case vari<vel
Of
con%an%e 1P co0ando 1O
con%an%e ,P co0ando ,O
. .
. .
. .
con%an%e nP co0ando nO
Else
co0andoO
EndX
)e a vari<vel 'or i1ual a al1u0a con%an%e, o co0ando correponden%e # eJecu%ado, e
nenhu0a con%an%e 'or encon%rada o co0ando ap+ o %lse >o eJecu%ado, lo1o ap+ o co0ando
Case # %er0inado.
Observa)o: * vari<vel n>o pode er Array, String e Real.
Case le%ra
Of
cac..cGcP Wri%eLn?cMinXculacAO
c*c..cKcP Wri%eLn?cMaiXculacAO
cBc..c1cP Wri%eLn?cLX0erocAO
Else
Wri%eLn?c$arac%er (pecialcAO
EndO
Case di1i%o
Of
cBcP Wri%eLn?cKerocAO
c1cP Wri%eLn?c;0cAO
c,cP Wri%eLn?cDoicAO
P
,6
c9cP Wri%eLn?cLovecAO
Else
Wri%eLn?c(RR-P L>o # u0 LX0erocAO
EndO
3'/ Comando 1or ''' Bo ?$o0ando de Repe%i=>oA
odo de (sar:
1or Fari<vel^de^$on%role :Y Falor^2nicial ="o> Falor^3inal Bo
co0andoO
* vari<vel de con%role n>o deve er al%erada no corpo do co0ando, pode-e %er co0ando
i0ple ou co0ando co0po%o, a vari<vel de con%role no deve er real, array ou string.
To6 $o0ando de repe%i=>o crecen%e
#o/nTo6 $o0ando de repe%i=>o decrecen%e
(or i P_ B To ,55 #o
7e1in
Wri%eLn?c$+di1oP c,i,c- $arac%er *)$22Pc,Cr?iAAO
ch P_ Read]e@O
(ndO
(or i P_ 1 To n-1 #o
(or . P_ id1 To n #o
7e1in
Wri%eLn?ci_c,i,c g ._c,.AO
ch P_ Read]e@O
(ndO
3'0 Comando F@ile ''Bo ?$o0ando de Repe%i=>oA
odo de Usar:
!ile condi=>o #o
co0andoO
(nCuan%o a condi=>o # verdadeira o co0ando >o repe%ido. "ode-e uar co0ando
i0ple ou co0ando co0po%o.
%&em'lo6
i P_ 1O
!ile i T_ 1B #o
7e1in
Wri%eLn?ci _ c,iAO
i P_ id1O
,6
(ndO
3'3 Comando Re.eat ''' Until ?$o0ando de Repe%i=>oA
odo de Usar:
Re'eat
co0andoO
Until condi=>oO
- co0ando >o repe%ido, a%# Cue a condi=>o e %orne verdadeira, enCuan%o a condi=>o #
'ala o co0ando >o repe%ido.
%&em'lo6
i P_ 1O
Re'eat
Wri%eLn?ci _ c,iAO
i P_ id1O
Until i U_ 1BO Z Repe%e a%# i er i1ual a 1B \
i P_ BO
Re'eat
Wri%eLn?ci _ c,iAO
i P_ id1O
Until ]e@"reedO Z Repe%e a%# Cue u0a %ecla e.a preionada \
3'4 O Procedimetro !alt
3or=a o %#r0ino do pro1ra0a ?abor%a o pro1ra0aA, re%ornando ao i%e0a operacional, e o
pro1ra0a 'or eJecu%<vel ou ao a0bien%e do !urbo "acal, e o pro1ra0a 'or u0 arCuivo 'on%e.
odo de Usar:
*alt ?JP WordAO
ou
*altO
3'6 O Procedimento ENit
3or=a a a&da de u0 la=o, paando a eJecu=>o para a pr+Ji0a in%ru=>o.
Repea%
P
2' ]e@"reed %hen %&itO
P
;n%il 3aleO
,:
4' Entrada e #a5da
4'& Entrada .elo "eclado
ReadLnP "rocedi0en%o Cue per0i%e en%rada de dado via %eclado. * vari<vel & pode er de
CualCuer %ipo.
ReadLn=N>X
Read4eyP 3un=>o Cue per0i%e a en%rada de u0 carac%er e0 preionar a %ecla T(L!(RU. *
vari<vel deve er do %ipo Car e # nece<rio uar a unidade CrtO.
;e $r%O
Far !eclaP $harO
7e1in
$lr)crO
Wri%e?cDi1i%e u0a !($L*P cAO
!ecla P_ Read4eyO
Wri%eLn?cFocE di1i%ouP c,!eclaAO
(nd.
4'+ #a5da no 75deo
"rocedi0en%o Cue per0i%e ecri%a no v&deoP
!rite?JAX ?W 20pri0e J e curor 'ica ao lado WA
ou
!riteLn?JAX ?W 20pri0e J e curor vai para pr+Ji0a linha WA
ou
!riteLnX ?W DeiJa u0a linha e0 branco na %ela WA
4', #a5da na Im.ressora
S nece<rio uar a unidade Printer.
;e $r%,PrinterO
7e1in
$lr)crO
Wri%eLn?LstAO ?W "ula u0a linha na i0preora WA
Wri%e?Lst,cJ _ cAO
Wri%eLn?Lst,JAO
(nd.
Observa)oP
,9
Wri%eLn?lst,`1,AO ?W )al%a u0a p<1ina na i0preora WA
Wri%eLn?lst,`15AO ?W $o0pri0e o carac%ere na i0preora WA
6' Controle do 75deo e "eclado:
6'& Clr#cr ?$lear )creenA
"rocedi0en%o Cue per0i%e li0par a %ela, o curor per0anece no can%o uperior eCuerdo. S
obri1a%+rio o uo da unidade Crt. * %ela # li0pa co0 a cor de 'undo corren%e.
;e CrtO
7e1in
ClrScrO
6'+ <otoLZ=col(na$lin@a> ?F< para poi=>o N,eA
"rocedi0en%o Cue per0i%e o poiciona0en%o do curor e0 CualCuer poi=>o da %ela. S
obri1a%+rio o uo da unidade Crt.
"el a
-8o( 48C ol(n as
+/ Lin@ as
48 &
&
+ /
;e $r%O
7e1in
$lr)crO
+oto,-?/B,1,AO
Wri%e?c!urbo "acalcAO
+oto,-?/4,1/AO
Wri%e?c5.5cAO
6', ClrEol ?$lear (nd -' LineA
"rocedi0en%o Cue per0i%e Cue u0a linha e.a apa1ada dede a poi=>o do curor a%# o 'inal
da linha. S obri1a%+rio o uo da ;nidade Crt.
;e $r%O
/B
Far LP 7@%eO
7e1in
!eJ%7ac8Ground?WH2!(AO Z *l%era a cor de 'undo\
$lr)crO
!eJ%$olor?7L*$]AO Z *l%era a cor do !eJ%o \
3or L P_ 1 %o ,4 do
7e1in
Go%oNe?4B,LAO
Clr%olO
(ndO
(nd.
6'- BelLine ?Dele%e LineA
"rocedi0en%o Cue per0i%e Cue u0a linha e.a apa1ada. S obri1a%+rio o uo da ;nidade Crt.
;e $r%O
Far LP 7@%eO
7e1in
!eJ%7ac8Ground?WH2!(AO Z *l%era a cor de 'undo\
$lr)crO
!eJ%$olor?7L*$]AO Z *l%era a cor do !eJ%o \
3or L P_ 1 %o ,4 do
7e1in
Go%oNe?4B,LAO
#elLineO
(ndO
(nd.
&8 Comandos Es.eciais ?;nidade $r%A
&8'& BelaG ?*%raoA
"rocedi0en%o Cue per0i%e u0a parada %e0por<rio da eJecu=>o por par%e do co0pu%ador.
odo de Usar:
#elay?JAO Z J e0 0ilie1undo \
&8'+ "eNtBacC<ro(nd ?$or de 3undoA
"rocedi0en%o Cue per0i%e 0udan=a na cor de 'undo do v&deo.
odo de Usar:
Te&tBac.+round?corAX Z corP nX0ero ou no0e \
/1
D%mero Dome Cor
B 7lac8 pre%o
1 7lue aGul
, Green verde
/ $@an aGul claro
4 Red ver0elho
5 Ma1en%a roa
6 7rown 0arro0
6 Li1h%Gra@ cinGa
&8', "eNtColor ?$or de 3ren%eA
"rocedi0en%o Cue per0i%e 0udan=a na cor de %eJ%o do v&deo.
odo de Usar:
Te&tColor?corAO Z corP nX0ero ou no0e \
D%mero Dome Cor
B 7lac8 pre%o
1 7lue aGul
, Green verde
/ $@an aGul claro
4 Red ver0elho
5 Ma1en%a roa
6 7rown 0arro0
6 Li1h%Gra@ cinGa
: Dar8Gra@ cinGa brilhan%e
9 Li1h%7lue aGul brilhan%e
1B Li1h%Green verde brilhan%e
11 Li1h%$@an aGul claro brilhan%e
1, Li1h%Red ver0elho brilhan%e
1/ Li1h%Ma1en%a roa brilhan%e
14 eellow a0arelo
15 Whi%e branco
O$ser5aoP "ican%e ?Blin. # cor a 1,:A
&8'- FindoE ?JanelaA
"rocedi0en%o Cue per0i%e de'inir a .anela de %eJ%o a%iva, ou e.a, par%e do v&deo a%ivo onde
a ecri%a >o 'ei%a. Lor0al0en%e a .anela a%iva # %oda %ela, ou e.aP !indo/?1,1,:B,,5AO
/,
?Ni,eiA
?N',e'A
odo de Usar:
!indo/?Ni,ei,N',e'AO
Observa)oP *p+ e%ar u0a .anela a%iva a poi=>o ?1,1A paa er o can%o uperior eCuerdo.
&8'/ #o(nd e Do#o(nd ?)o0 e )e0 )o0A
Sound: "rocedi0en%o Cue ati5a o au%o-'alan%e do co0pu%ador.
odo de Usar:
Sound?no%aP WordAO
;e $r%O
7e1in
Sound?,,BAO ?W a%iva o au%o-'alan%e co0 a no%a ,,B WA
Dela@?,BBAO ?W per&odo de dura=>o do o0 WA
"oSoundO ?W dea%iva o au%o-'alan%e WA
(nd.
"oSound: "rocedi0en%o Cue desati5a o au%o-'alan%e do co0pu%ador.
odo de Usar:
"oSoundO
&8'0 F@ereL e F@ereZ ?LocaliGa=>o do $urorA
3un=Ie Cue indica0 a poi=>o corren%e do curor QJ ?colunaA e @ ?linhaAR.
;e $r%O
Far $oluna,LinhaP 7@%eO
7e1in
$oluna P_ !ere,O
Linha P_ !ere-O
//
Wri%eLn?c$olunaP c,$olunaAO
Wri%eLn?cLinha P c,LinhaAO
(nd.
&8'3 "eNtode ?Modo do !eJ%oA
"rocedi0en%o Cue de'ine o %ipo de 0odo %eJ%o, colorido ou pre%o e branco e 4B ou :B
coluna.
C48 - $olorido co0 :B coluna
C-8 - $olorido co0 4B coluna
BF48 - "re%o e 7ranco co0 :B coluna
BF-8 J "re%o e 7ranco co0 4B coluna
&&' 7etores e atri9es
Fe%ore e 0a%riGe >o vari<vei Cue poue0 v<rio ele0en%o de 0e0o %ipo, cada
ele0en%o poui u0 ou 0ai &ndice Cue o re'erencia0 e o di'erencia0. ;0a carac%er&%ica
i0por%an%e # Cue %odo o valore per0anece0 na 0e0+ria ao 0e0o %e0po. - ele0en%o >o
alocado co0 con%i1Didade '&ica, ou e.a, u0 ao lado do ou%ro.
&&'& 7etores
S u0 %ipo par%icular de 0a%riG onde cada ele0en%o poui + u0 &ndice ?unidi0enionalA.
- pro1ra0a eJe0plo abaiJo, per0i%e a en%rada de no0e e idade, lo1o ap+ i0pri0e %odo
o no0e e idade con%ido na 0e0+ria.
"ro1ra0 Fe%orO
;e $r%O
$on% f;*L! _ ,55O
Far Lo0eP *rra@Q1..f;*L!R o' )%rin1Q4BRO
2dadeP *rra@Q1..f;*L!R o' 7@%eO
2,LP 7@%eO
$hP $harO
7e1in
$lr)crO
2 P_ 1O
Repea%
Wri%e?cLo0eP cAO
ReadLn?Lo0eQiRAO ?W en%rada de u0 no0e WA
Wri%e?c2dadeP cAO
ReadLn?2dadeQiRAO ?W en%rada de u0a idade WA
2nc?2AO
Wri%e?c$on%inua Q)Ri0 ou QLR>o h cAO
Repea%
$h P_ Read]e@O
;n%il $h 2L Qc)c,cc,cLc,cncRO
/4
;n%il ?$h 2L QcLc,cncRA -r ?2 U f;*L!AO
L P_ 2 - 1O ?W nX0ero de ele0en%o WA
3or 2 P_ 1 !o n Do
7e1in
Wri%eLn?cLo0eP c,Lo0eQiRAO
Wri%eLn?c2dadeP c,2dadeQiRAO
$h P_ Read]e@O
(ndO
(nd.
&&'+ atri9
S u0 %ipo de dado Cue per0i%e Cue u0a vari<vel con%enha v<rio ele0en%o de 0e0o %ipo.
$ada ele0en%o poui doi ou 0ai &ndice ?bidi0enional, %ridi0enional, e%cA Cue o di'erencia do
ou%ro ele0en%o.
- pro1ra0a abaiJo, calcula a o0a de dua 0a%riGeP $ _ * d 7.
"ro1ra0 ve%orO
;e $r%O
$on% f;*L! _ 1BO
Far *,7,$P *rra@Q1..f;*L!,1..f;*L!R o' RealO
$ol,Lin,J,M,LP 7@%eO
$hP $harO
7e1in
$lr)crO
Wri%e?c2n'or0e a -RD(M da M*!R2K ?MJLAP cAO
Repea%
Wri%e?cLX0ero de Linha ?MAP cAO
Readln?MAO
;n%il ?M U_ 1A *nd ?M T_ f;*L!AO
Repea%
Wri%e?cLX0ero de $oluna ?LAP cAO
Readln?LAO
;n%il ?L U_ 1A *nd ?L T_ f;*L!AO
3or Lin P_ 1 !o M Do
3or $ol P_ 1 !o L Do
7e1in
Wri%e?c*Qc,Lin,c,c,$ol,cR _ cAO
Readln?aQLin,$olRAO
Wri%e?c7Qc,Lin,c,c,$ol,cR _ cAO
Readln?bQLin,$olRAO
(ndO
3or Lin P_ 1 !o M Do
3or $ol P_ 1 !o L Do
7e1in
$QLin,$olR P_ *QLin,$olRd7QLin,$olRO
Wri%e?c$Qc,Lin,c,c,$ol,cR _ c,$QLin,$olRAO
$h P_ Read]e@O
/5
(ndO
(nd.
&&', #ort =Ordena)o>
M#%odo de clai'ica=>o de dado. "ara eJe0pli'icar 0elhor a vari<vei do %ipo ve%or, abaiJo
# dado doi %ipo de SortP
"ro1ra0 SortO
;e $r%O
$on% f;*L! _ ,55O
!@pe !2"- _ )%rin1Q4BRO
Far Lo0eP *rra@QB..f;*L!R o' !2"-O
!e0pP !2"-O
2,J,LP 7@%eO
$hP $harO
7e1in
$lr)crO
2 P_ BO
Repea%
Wri%e?cLo0eP cAO
Readln?Lo0eQiRAO ?W (n%rada de u0 no0e WA
2nc?2AO
Wri%e?c$on%inua Q)Ri0 ou QLR>o h cAO
Repea%
$h P_ Read]e@O
;n%il $h 2L Qc)c,cc,cLc,cnRO
;n%il ?$h 2L QcLc,cncRA -r ?2 U f;*L!AO
L P_ 2 - 1O ?W LX0ero de (le0en%o WA
3or 2 P_ 1 %o L do
3or J P_ 2d1 %o L do
2' Lo0eQ2R U Lo0eQJR %hen
7e1in
!e0p P_ Lo0eQiRO
Lo0eQiR P_ Lo0eQ.RO
Lo0eQ.R P_ !e0pO
(ndO
Wri%eLn?cLo0e -RD(L*D-)cAO
3or 2 P_ B %o L do
7e1in
Wri%eLn?cLo0eP c,Lo0eQiRAO
$h P_ Read]e@O
(ndO
(nd.
"ro1ra0 Bu$leDSortO ?W M#%odo da 7olha - 7uble )or%WA
;e $r%O
$on% f;*L! _ ,55O
/6
!@pe !2"- _ )%rin1Q4BRO
Far Lo0eP *rra@QB..f;*L!R o' !2"-O
!e0pP !2"-O
2,L,]P 7@%eO
$hP $harO
-rdenadoP 7--L(*LO
7e1in
$lr)crO
2 P_ BO
Repea%
Wri%e?cLo0eP cAO
Readln?Lo0eQiRAO ?W (n%rada de u0 Lo0e WA
2nc?2AO
Wri%e?c$on%inua Q)Ri0 ou QLR>o h cAO
Repea%
$h P_ Read]e@O
;n%il $h 2L Qc)c,cc,cLc,cncRO
;n%il ?$h 2L QcLc,cncRA -r ?2 U f;*L!AO
L P_ 2 - 1O ?W LX0ero de (le0en%o WA
] P_ L - 1O
Repea%
-rdenado P_ !R;(O
3or 2 P_ B %o ] do
2' Lo0eQ2R U Lo0eQ2d1R %hen
7e1in
!e0p P_ Lo0eQiRO
Lo0eQ2R P_ Lo0eQ2d1RO
Lo0eQ2d1R P_ !e0pO
-rdenado P_ 3*L)(O
(ndO
] P_ ] - 1O
;n%il -rdenadoO
Wri%eLn?cLo0e -RD(L*D-)cAO
3or 2 P_ B %o L do
7e1in
Wri%eLn?cLo0eP c,Lo0eQiRAO
$h P_ Read]e@O
(ndO
(nd.
&+' ani.(la)o de #tring
&+'& Cr
3un=>o Cue re%orna o carac%er correponden%e ao c+di1o da %abela *)$22.
Modo de ;arP Cr?c+di1oP 7@%eAP $harO
/6
;e $r%O
Far $odi1oP 7@%eO
$arac%erP $harO
7e1in
$lr)crO
Repea%
Wri%e?c$+di1oP cAO
Readln?$odi1oAO
$arac%er P_ Cr?$odi1oAO
Wri%eLn?c$+di1o Pc,$odi1o,c $arac%er *)$22P c,$arac%erAO
;n%il $odi1o _ BO
(nd.
&+'+ Ord
3un=>o Cue re%orna o c+di1o *)$22 correponden%e ao carac%er da %abela *)$22.
Modo de ;arP Ord?carac%erP $harAP 7@%eO
;e $r%O
Far $odi1oP 7@%eO
$arac%erP $harO
7e1in
Repea%
$lr)crO
Wri%e?c$arac%erP cAO
$arac%er P_ Read]e@O
$odi1o P_ Ord?$arac%erAO
Wri%eLn?c$arac%er Pc,$arac%er,c $+di1o *)$22P c,$odi1oAO
;n%il $arac%er _ `1/O ?W `1/ # o c+di1o da %ecla T(L!(RU WA
(nd.
&+', Concat
3un=>o Cue re%orna a %rin1 1,,,... n conca%enada, ou e.a, unida.
Modo de ;arP Concat?1,,,... nP )%rin1QRAP )%rin1QRO
;e $r%O
Far )1,),,)/P )%rin1Q6RO
)rP )%rin1Q,1RO
7e1in
$lr)crO
)1 P_ c!urbo cO
), P_ c"acal cO
)/ P_ c5.5cO
)r P_ Concat?)1,),,)/AO
Wri%eLn?)1AO
/:
Wri%eLn?),AO
Wri%eLn?)/AO
Wri%eLn?)rAO ?W )r P_ c!urbo "acal 5.5c WA
Repea% ;n%il ]e@"reedO
(nd.
&+'- Co'y
3un=>o Cue re%orna u0a s(bstring a par%ir de ou%ra string.
Modo de ;arP Co'y?P )%rin1QR, in&cio, %a0anhoP 7@%eAP )%rin1QRO
;e $r%O
Far FelhaP )%rin1Q15RO
LovaP )%rin1Q1BRO
7e1in
$lr)crO
Felha P_ cM2$R-$-M";!*D-RcO
Lova P_ Co'y?velha,6,1BAO
Wri%eLn?FelhaAO
Wri%eLn?LovaAO ?W Lova P_ c$-M";!*D-Rc WA
Repea% ;n%il ]e@"reedO
(nd.
&+'/ #elete
"rocedi0en%o Cue re0ove carac%ere de u0a string.
Modo de ;arP #elete?P )%rin1QR,in&cio,%a0anhoP 7@%eAO
;e $r%O
Far FelhaP )%rin1Q15RO
7e1in
$lr)crO
Felha P_ cM2$R-$-M";!*D-RcO
#elete?Felha,6,1BAO
Wri%eLn?FelhaAO ?W Felha P_ cM2$R-c WA
Repea% ;n%il ]e@"reedO
(nd.
&+'0 Insert
"rocedi0en%o Cue inere 1 e0 , na poi=>o dee.ada 1erando u0a nova string.
Modo de ;arP Insert?1,,P )%rin1QR,poi=>oP 7@%eAO
;e $r%O
/9
Far )1P )%rin1Q,RO
),P )%rin1Q16RO
7e1in
$lr)crO
)1 P_ c()cO
), P_ cM2$R-$-M";!*D-RcO
Insert?)1,),,16AO
Wri%eLn?)1AO
Wri%eLn?),AO ?W ), P_ cM2$R-$-M";!*D-R()c WA
Repea% ;n%il ]e@"reedO
(nd.
&+'3 Lengt
3un=>o Cue re%orna o nX0ero de carac%ere de u0a string
Modo de ;arP Lengt?P )%rin1QRAP 7@%eO
;e $r%O
Far Lo0eP )%rin1Q4BRO
7e1in
$lr)crO
Wri%e?cDi1i%e eu Lo0eP cAO
Readln?Lo0eAO
Wri%e?Lo0e,c eu Lo0e %e0P c,Lengt=Do0eA,c carac%erecAO
Repea% ;n%il ]e@"reedO
(nd.
&+'4 Pos
3un=>o Cue re%orna a poi=>o de 1 e0 , ?B e n>o encon%rarA.
Modo de ;arP Pos?1,,P )%rin1QRAP 7@%eO
;e $r%O
Far )1P )%rin1Q6RO
),P )%rin1Q15RO
"oicaoP 2n%e1erO
7e1in
$lr)crO
)1 P_ c$-M";!cO
), P_ cM2$R-$-M";!*D-RcO
"oicao P_ Pos?)1,),AO
2' "oicaoTUB %hen
Wri%e?c)%rin1 (ncon%rada na "oi=>oP c,"oicaoA
(le
Wri%e?c)%rin1 n>o encon%radacAO
Repea% ;n%il ]e@"reedO
4B
(nd.
&+'6 Str
"rocedi0en%o Cue conver%e u0 valor nX0erico ?Real ou CualCuer %ipo de in%eiroA e0 String.
- %a0anho do nX0ero # dado pelo %a0anho da String, endo Cue u0 b@%e # deiJado para o inal.
Modo de ;arP Str?valorP 2n%e1er ou Real, P )%rin1QRAO
;e $r%O
Far LP RealO
)P )%rin1Q6RO
7e1in
$lr)crO
L P_ /.14151616O
Str?L,)AO
Wri%eLn?c)%rin1P c,)AO ?W ) P_ c/.1415c WA
Repea% ;n%il ]e@"reedO
(nd.
&+'&8 U'Case
3un=>o Cue re%orna o carac%er conver%ido e0 le%ra 0aiXcula.
Modo de ;arP U'Case?chP $harAP $harO
;e $r%O
Far $hP $harO
7e1in
$lr)crO
Repea%
Wri%e?cDi1i%e u0a !eclaP cAO
$h P_ Read]e@O
Wri%eLn?U'Case?$hAAO
;n%il U'Case?$hA _ c3cO
(nd.
;e $r%O
Far $hP $harO
7e1in
$lr)crO
Repea%
Wri%e?c$on'ir0a Q)Ri0 ou QLR>o hcAO
$h P_ U'Case?Read]e@AO
;n%il $h 2n Qc)c,cLcRO
(nd.
41
&+'&& 1al
"rocedi0en%o Cue conver%e u0a string e0 valor nX0erico ?Real ou CualCuer %ipo de in%eiroA,
e a string pouir le%ra, a vari<vel erro re%orna a poi=>o da le%ra ?poi n>o # nX0ericaA, en>o
re%orna Gero.
Modo de ;arP 1al?P )%rin1QR, valorP Real ou 2n%e1er, erroP 2n%e1erAO
;e $r%O
Far )P )%rin1Q1BRO
FalorP 2n%e1erO
(rroP 2n%e1erO
7e1in
$lr)crO
Repea%
Wri%e?cDi1i%e al1u0a coia Q3i0 para 3inaliGarRP cAO
Readln?)AO
7al?),Falor,(rroAO
2' (rro_B %hen
7e1in
Wri%eLn?c)(M (RR-cAO
Wri%eLn?cLX0eroP c,FalorAO
(nd
(le
Wri%eLn?c(RR-P c,(rroAO
;n%il ?) _ c32McA or ?) _ c'i0cAO
(nd.
&+'&+ (illCar
"rocedi0en%o Cue inicialiGa u0a vari<vel string co0 carac%ere repe%i%ivo.
Modo de ;arP(illCar?vari<velP fualCuer^%ipoO Cuan%idadeP WordO con%an%eAO
;e $r%O
Far LinhaP )%rin1Q:BRO
(pacoP )%rin1Q4BRO
7e1in
(illCar?Linha,:B,c-cAO
LinhaQBR P_ `:BO ?W indicar o nX0ero de carac%ere WA
(illCar?(paco,4B,`/,AO
(pacoQBR P_ `4BO
&,' Procedimentos =Procedure> e 1(n)2es =(unction>
&,'& 7ariveis Locais e <lobais
4,
7arivel Local
!oda a vari<vei de'inida den%ro de u0a 'un=>o ?VfunctionVA ou procedi0en%o
?V'rocedureVA >o cha0ada locai, + pode0 er re'erenciada den%ro do 0+dulo Cue a de'iniu.
7arivel <lobal
!oda a vari<vei de'inida 'ora de %oda a 'un=Ie >o cha0ada 1lobai e pode0 er
re'erenciada e0 CualCuer par%e do pro1ra0a incluive den%ro da 'un=Ie e procedi0en%o.
Observa)2esP
aA!oda a vari<vei uada no pro1ra0a principal >o 1lobai e deve0, obri1a%oia0en%e er
de'inida no V1arV.
bA* vari<vei locai %e0 prioridade obre a vari<vei 1lobai.
cA!a0b#0 eJi%e0 con%an%e ?VConstVA, %ipo ?VTy'eVA, procedi0en%o ?VProcedureVA e 'un=Ie
?V(unctionVA locai.
dA!odo o parH0e%ro >o locai, por e%a raG>o, n>o necei%a0 %er o 0e0o no0e da vari<vei de
cha0ada.
"ro1ra0 (Je0ploO
;e $r%O
Far 7ae,(Jpoen%e,Reul%adoP RealO
!eclaP $harO
"rocedure "ROCA?Far J,@PRealAO ?W 1ar paa1e0 por re'erEncia WA
Far %e0pP RealO
7e1in
%e0p P_ JO
J P_ @O
@ P_ %e0pO
(ndO
3unc%ion ELE7A ?b,eP RealAP RealO
Far po%P RealO
7e1in
po% P_ eJp?lo1?bAWeAO
ELE7A P_ po%O ?W )a&da da 3un=>o WA
(ndO
7e1in
Repea%
$lr)crO
Wri%eLn?c7aeP cAO
Readln?7aeAO
Wri%eLn?c(Jpoen%eP cAO
Readln?(Jpoen%eAO
Reul%ado P_ ELE7A?7ae,(Jpoen%eAO
Wri%eLn?cReul%adoP c,Reul%adoP6P,AO
"ROCA?7ae,(Jpoen%eAO ?W $ha0ada do "rocedi0en%o WA
4/
Reul%ado P_ ELE7A?7ae,(Jpoen%eAO ?W $ha0ada da 3un=>o WA
Wri%eLn?cReul%adoP c,Reul%adoP6P,AO
Wri%eLn?c$on%inua Q)Ri0 QLR>o h cO
Repea%
!ecla P_ Read]e@O
;n%il !ecla 2L Qc)c,cc,cLc,cncRO
;n%il !ecla 2L QcLc,cncRO
(nd.
7ariveis <lobaisP 7ae, (Jpoen%e, Reul%ado e !ecla.
7ariveis LocaisP - "rocedure !R-$*P J, @ e %e0p.
- 3un%ion (L(F*P b, e, po%.
&,'+ Par?metros
)>o %oda a vari<vei Cue nu0 procedi0en%o ?VProcedureVA ou 3un=>o ?V(unctionVA e%>o
en%re parEn%ee. (Ji%e0 parH0e%ro de en%rada e a&da ?>o o 0e0o, a di'eren=a # e >o
al%erado ou n>oA.
C@amadaP !R-$*?Far J,@P RealAO ?W "rocedi0en%o WA
!R-$*
(n%rada
)a&da
J
@
e
&,', Passagem de Par?metros .or 7alor
fuando o parH0e%ro paado para a 'un=Ie ?V(unctionVA ou procedi0en%o
?VProcedureVA no alteram o valore da vari<vei de cha0ada, i%o # cha0ado paa1e0 de
parH0e%ro por 7alor. Lo eJe0plo abaiJo, V$V e VeV >o paado por valor, lo1o n>o al%era0 a
vari<vei do pro1ra0a principal.
3unc%ion (L(F* ?b,eP RealAP RealO
Far po%P RealO
7e1in
po% P_ eJp?lo1?bAWeAO
(L(F* P_ po%O
(ndO
&,'- Passagem de Par?metros .or ReferUncia
fuando o parH0e%ro paado para a 'un=Ie ?V(unctionVA ou procedi0en%o
?VProcedureVA alteram o valore da vari<vei de cha0ada, i%o # cha0ado paa1e0 de parH0e%ro
44
por ReferUncia. Lo eJe0plo abaiJo, V&V e VyV >o paado por re'erEncia, lo1o al%era0 a vari<vei
do pro1ra0a principal.
"rocedure !R-$*?7ar J,@PRealAO
Far %e0pP RealO
7e1in
%e0p P_ JO
J P_ @O
@ P_ %e0pO
(ndO
&,'/ (unction ?3un=IeA
M+dulo deenvolvido pelo pro1ra0ador. "er0i%e a cria=>o de u0a 'un=>o pr+pria. "ode %er
v<rio parH0e%ro de en%rada ?'assagem 'or 5alorA e ou a&da ?'assagem 'or refernciaA, 0a
apena u0 re%orno de a&da. - re%orno # dado pelo no0e da 'un=>o, ai0, pode-e coniderar Cue
u0a 'un=>o nada 0ai # do Cue u0a vari<vel.
(unction no0e^da^'un=>o ?parH0e%roP %ipoAP %ipo^do^reul%adoO
!@pe
$on%
Far vari<velP %ipo^do^reul%adoO
7e1in
co0andoO
no0e^da^'un=>o P_ vari<velO ?W Re%orno da 3un=>o WA
(ndO
3u n=>o
J
@
Reul%ado
)a &da
(n %rada
e
Re%orno
&,'0 Procedure ?"rocedi0en%oA
M+dulo deenvolvido pelo pro1ra0ador. "er0i%e a cria=>o de u0 co0ando pr+prio. "ode %er
v<rio parH0e%ro de en%rada e v<rio de a&da. - parH0e%ro pode0 er al%erado ou n>o. "er0i%e
paa1e0 de parH0e%ro por 5alor ou por referncia.
Procedure no0e^do^procedi0en%o ?parH0e%roP %ipoAO
!@pe
$on%
Far
7e1in
co0andoO
(ndO
45
"rocedi0en%o
J
@
G
)a&da
(n%rada
e
Ti'o A: - procedi0en%o aci0a poui parH0e%ro de en%rada e a&da.
& e y paa1e0 por 5alor
2 paa1e0 por referncia
"rocedi0en%o
J
@
G
(n%rada
Ti'o BP - procedi0en%o aci0a o0en%e poui parH0e%ro de en%rada
&, y e 2 paa1e0 por 5alor
"rocedi0en%o
a
b
)a&da
Ti'o CP - procedi0en%o aci0a poui o0en%e parH0e%ro de a&da
a e $ paa1e0 por referncia
O$ser5aoP - parH0e%ro de a&da pode0 er uado co0o parH0e%ro de en%rada.
"rocedi0en%o
Ti'o #P - procedi0en%o aci0a n>o poui parH0e%ro.
%&em'losP
46
"ro1ra0 $o0andoO ?W "rocedi0en%o Ti'o B WA
;e $r%O
Far *,7,$P RealO
!eclaP $harO
"rocedure BA#CARA ?a,b,cP RealAO
Far del%a,J1,J,,r,iP RealO
7e1in
del%a P_ Cr?bA-4WaWcO ?W $<lculo do De%er0inan%e WA
2' del%a U_ B %hen ?W Ra&Ge R(*2) WA
7e1in
J1 P_ ?-bdCr%?del%aAA9?,WaAO
J, P_ ?-b-Cr%?del%aAA9?,WaAO
Wri%eLn?cJ1 _ c,J1P6P,AO
Wri%eLn?cJ, _ c,J,P6P,AO
Repea% ;n%il ]e@"reedO
(nd
(le ?W Ra&Ge $-M"L(N*) WA
7e1in
r P_ -b9?,WaAO
i P_ Cr%?ab?del%aAA9?,WaAO
Wri%eLn?cJ1 _ c,rP6P,,c d c,iP6P,,c .cAO
Wri%eLn?cJ, _ c,rP6P,,c - c,iP6P,,c .cAO
Repea% ;n%il ]e@"reedO
(ndO
(ndO
7e1in
Repea%
$lr)crO
Wri%eLn?c$alcula Ra&GecAO
Wri%eLnO
Wri%eLn?cfual o valor de *P cAO
Readln?*AO
Wri%eLn?cfual o valor de 7P cAO
Readln?7AO
Wri%eLn?cfual o valor de $P cAO
Readln?$AO
BASCARA?*,7,$AO
Wri%e?c$on%inua Q)Ri0 ou QLR>o h cAO
Repea%
!ecla P_ ;p$ae?Read]e@AO
;n%il !ecla 2L Qc)c,cLcRO
;n%il !ecla _ cLcO
(nd.
"ro1ra0 $o0andoO ?W "rocedi0en%o Ti'o A WA
;e $r%O
Far *,7,$P RealO
Del%a,R,2P RealO
N1,N,P RealO
46
!eclaP $harO
"rocedure BA#CARA ?a,b,cP RealOF*R del%a,r,iP RealAO
Far del%a,J1,J,,r,iP RealO
7e1in
del%a P_ Cr?bA-4WaWcO ?W De%er0inan%e WA
r P_ -b9?,WaAO ?W "ar%e Real WA
i P_ Cr%?ab?del%aAA9?,WaAO ?W "ar%e i0a1inaria WA
(ndO
7e1in
Repea%
$lr)crO
Wri%eLn?c$alcula RaiGecAO
Wri%eLnO
Wri%eLn?cfual o valor de *P cAO
Readln?*AO
Wri%eLn?cfual o valor de 7P cAO
Readln?7AO
Wri%eLn?cfual o valor de $P cAO
Readln?$AO
BA#CARA?*,7,$,Del%a,R,2AO
2' Del%a U_ B %hen ?W RaiGe R(*2) WA
7e1in
N1 P_ rdiO
N, P_ r-iO
Wri%eLn?cJ1 _ c,N1P6P,AO
Wri%eLn?cJ, _ c,N,P6P,AO
Repea% ;n%il ]e@"reedO
(nd
(le ?W RaiGe $-M"L(N*) WA
7e1in
Wri%eLn?cJ1 _ c,RP6P,,c d c,2P6P,,c .cAO
Wri%eLn?cJ, _ c,RP6P,,c - c,2P6P,,c .cAO
Repea% ;n%il ]e@"reedO
(ndO
Wri%e?c$on%inua Q)Ri0 ou QLR>o h cAO
Repea%
!ecla P_ ;p$ae?Read]e@AO
;n%il !ecla 2L Qc)c,cLcRO
;n%il !ecla _ cLcO
(nd.
&-' Ar;(ivos
4:
B
1
,
/
P
"on%eiro
a b c
e
'
1
h
d
a 2den%i'ica=>o do Re1i%ro
b,c,d $a0po
e,',1,h Re1i%ro
aA ;0 arCuivo # 'or0ado por registrosO
bA $ada re1i%ro # 'or0ado de cam.osO
cA - arCuivo poui u0 no0e ?: carac%ere para o no0e 0ai / carac%ere para a eJ%en>oA, e%e
no0e # cha0ado de nome e&terno ?D-)AO
dA $ada re1i%ro poui u0 &ndice in%erno e o arCuivo poui u0 pon%eiro Cue indica a poi=>o a%ual
do arCuivoO
eA fuando o arCuivo # aber%o ?VResetVA ou criado ?VRe!riteVA o pon%eiro apon%a para o re1i%ro
K(R-O
'A * cada lei%ura ou 1rava=>o o pon%eiro apon%a para o pr+Ji0o re1i%ro ?Acesso se;WencialAO
1A "ode-e ainda, apon%ar para CualCuer re1i%ro ?Acesso Rand[micoA a%rav# do procedi0en%o
See..
"i.os de Ar;(ivos:
"eNto
!ipo de *rCuivo 'or0ado de carac%ere or1aniGado e0 linha. Lo 'inal de cada linha
eJi%e0 doi carac%ere de con%role L3 ?`1BA d $R ?`1/A.
Como Befinir:
Far *rCuivoP !eJ%O ?W ou *rCuivoP (ile Of C@arO WA
Re1P $harO ?W Re1 # a vari<vel Cue repreen%a o re1i%ro WA
Binrio
!ipo de *rCuivo uado para ar0aGenar %ipo de dado di'eren%e.
!@pe Registro _ Record
Lo0eP )%rin1Q/BRO
2dadeP 7@%eO
)al<rioP RealO
49
(ndO
Far *rCuivoP (ile Of RegistroO
Re1P Re1i%roO
&-'& Procedimentos
&-'&'& Assign
"rocedi0en%o Cue aocia o nome eNterno do arCuivo ?D2)$-A ao nome interno do
arCuivo den%ro do pro1ra0a ?(ile OfA.
Modo de ;arP Assign?*rCP 3ile -' ..., no0e^arCuivoP )%rin1QRAO
%&em'loP *rCuivo Gen#rico
Far *rCP (ile Of 7@%eO
Re1P 7@%eO
Lo0e^arCuivoP )%rin1Q14RO
7e1in
$lr)crO
Wri%e?c2n'or0e o Lo0e do *rCuivoP cAO
Readln?Lo0e^arCuivoAO
Assign?*rC,Lo0e^arCuivoAO
ou
%&em'loP *rCuivo (pec&'ico
Far *rCP (ile Of 2n%e1erO
Re1P 2n%e1erO
7e1in
$lr)crO
Assign?*rC,c7PY32L()Y*G(LD*.D*!cAO ?W #ri5e67Pat7"ome WA
&-'&'+ Close
"rocedi0en%o Cue per0i%e fecar u0 arCuivo.
Modo de ;arP Close?*rCP 3ile -' '''AO
&-'&', %rase
"rocedi0en%o Cue per0i%e deletar u0 arCuivo no dico.
Modo de ;arP %rase?driveP *rCP 3ile -' '''AO
5B
&-'&'- Read
"rocedi0en%o Cue per0i%e ler ca0po ou re1i%ro do arCuivo con%ido no dico.
Modo de ;arP Read?*rCP 3ile -' ..., re1i%ro ou ca0poAO
&-'&'/ !rite
"rocedi0en%o Cue per0i%e gra5ar ca0po ou re1i%ro no arCuivo con%ido no dico.
Modo de ;arP !rite?*rCP 3ile -' ..., re1i%ro ou ca0poAO
&-'&'0 Re"ame
"rocedi0en%o Cue per0i%e renomear o arCuivo no dico.
Modo de ;arPRe"ame?driveP*rCP 3ile -' ''', novo^no0e^para^o^arCuivoAO
51
&-'&'3 Reset
"rocedi0en%o Cue per0i%e a$rir de u0 arCuivo.
Modo de ;arP Reset?*rCP 3ile -' '''AO
La aber%ura de u0 arCuivo, deve er veri'icado ua eJi%Encia, poi e o arCuivo n>o eJi%ir
haver< u0 erro e0 %e0po de eJecu=>o ?Run Time %rrorA, e o pro1ra0a er< abor%ado, para Cue i%o
n>o acon%e=a # 'ei%o o e1uin%eP
"ro1ra0 (Je0ploO
;e $r%O
Far *rCP (ile Of 2n%e1erO
Re1O 2n%e1erO
Lo0e^arCuivoP )%rin1Q14RO
7e1in
$lr)crO
Wri%e?cLo0e do *rCuivoP cAO
ReadLn?Lo0e^arCuivoAO
*i1n?*rC,Lo0e^arCuivoAO
R\IJS Reset?*rCA R\I]SO
O$ser5aoP Z[2-\ e Z[2d\ >o dire%iva de co0pila=>o Cue 'or=a0 o co0pilador a n>o abor%ar e
houver u0 erro e0 %e0po de eJecu=>o ?RunTime %rrorA, 'aGendo ainda co0 Cue a vari<vel pr#-
de'inida VIoResult: re%orne co0 a in'or0a=>o e houve erro ou n>o da e1uin%e 0aneiraP
IoResult _ B *rCuivo (N2)!(
IoResult TU B ArCuivo Li- (N2)!(
2' IoResult _ B !hen
Wri%eLn?c*rCuivo (N2)!(cA
(le
Wri%eLn?c(RR-P *rCuivo Li- (N2)!(cA
&-'&'4 Re!rite
"rocedi0en%o Cue per0i%e criar u0 arCuivo e0 dico, e o arCuivo n>o eJi%e, # criado, e
eJi%e # apa1ado, e o pon%eiro do arCuivo # poicionado no re1i%ro Gero.
Modo de ;arP Re!rite?*rCP 3ile -' '''AO
&-'&'6 See.
"rocedi0en%o Cue per0i%e 'osicionar o pon%eiro do arCuivo no re1i%ro epeci'icado
?Acesso Rand[micoA.
Modo de ;arP See.?*rCP 3ile -' ..., nX0ero^do^re1i%roAO
5,
&-'+ 1(n)2es
&-'+'& %O( ?(nd -' 3ileA
3un=>o Cue re%orna TRU% e o pon%eiro do arCuivo che1ou ao fim do ar)ui5o, (ALS%
enCuan%o n>o 'or 'i0 de arCuivo.
Modo de ;arP %O(?*rCP 3ile -' '''AP 7ooleanO
&-'+'+ (ilePos
3un=>o Cue re%orna a 'osio do re1i%ro corren%e, ou e.a, a poi=>o do pon%eiro no arCuivo
?o pri0eiro re1i%ro # KeroA.
Modo de ;arP (ilePos?*rCP 3ile -' ...AP 2n%e1erO
&-'+', (ileSi2e
3un=>o Cue re%orna o nEmero de registros do arCuivo, VGeroV e n>o eJi%ir nenhu0 re1i%ro.
Modo de ;arP (ileSi2e?*rCP 3ile -' '''AP 2n%e1erO
&-'+'- Si2eOf
3un=>o Cue re%orna o nEmero de $ytes ocupado por u0a vari<vel.
Modo de ;arP Si2eOf?%ipo ou vari<velAP WordO
&-', Como Befinir (m Registro
;e $r%O
!@pe RE<I#"RO _ Record
Lo0eP )%rin1Q4BRO
2dadeP 7@%eO
3oneP )%rin1Q1,RO
EndO
Far *rCP (ile Of RE<I#"ROO ?W De'ini=>o do *rCuivo 2n%erno WA
Re1P RE<I#"ROO ?W De'ini=>o do Re1i%ro WA
Lo0e^do^arCuivoP )%rin1Q14RO
$hP $harO
7e1in
$lr)crO
Wri%e?cLo0e do *rCuivoP cAO
ReadLn?Lo0e^do^arCuivoAO
5/
*i1n?*rC,Lo0e^do^arCuivoAO
Z[2-\ Ree%?*rCA Z[2d\O
2' 2oReul% TU B !hen
7e1in
ReWri%e?*rCAO
Repea%
Wri%e?cLo0eP cAO
ReadLn?Re1.no0eAO
Wri%e?c2dadeP cAO
ReadLn?Re1.idadeAO
Wri%e?c3oneP cAO
ReadLn?Re1.idadeAO
Wri%e?*rC,Re1AO ?W Grava u0 Re1i%ro no Dico WA
Wri%e?c$on%inua Q)Ri0 ou QLR>o h cAO
Repea%
$h P_ ;p$ae?Read]e@AO
;n%il $h 2L Qc)c,cLcRO
;n%il $h _cLcO
(nd
(le
Wri%eLn?c(RR-P *rCuivo (N2)!(cA
$loe?*rCAO
(nd.
&/' <rficos
&/'& Placas <rficas
&/'&'& C<A
Resol()oP 64BJ,BB al%a reolu=>o ?, coreA
/,BJ,BB baiJa reolu=>o ?4 coreA
Observa)oP "ale%%e # u0 con.un%o de core dipon&vei, endo Cue na placa $G* poui 16 core.
&/'&'+ E<A
Resol()oP 64BJ/5B al%a reolu=>o ?16core, , p<1. 1r<'icaA
64BJ,BB baiJa reolu=>o ?16 core, 4 p<1. 1r<'icaA
&/'&', 7<A
Resol()oP 64BJ4:B al%a reolu=>o ?16 core, 1 p<1inaA
64BJ/5B 0#dia reolu=>o ?16 core, , p<1ina. 1r<'icaA
64BJ,BB baiJa reolu=>o ?16 core, 4 p<1ina. 1r<'icaA
54
&/'+ Coordenadas de "ela
&/'+'& C<A
J B M 6/9 ou /19
@ B M 199
&/'+'+ E<A
J B M 6/9 ou /19
@ B M 199 ou /49
&/'+', 7<A
J B M 6/9 ou /19
@ B M 199, /49 ou 469
&/', Betec)o e Iniciali9a)o da "ela <rfica
"ara air do 0odo %eJ%o e inicialiGar o 0odo Gr<'ico, o pro1ra0ador deve de'inir dua
vari<veiP Placa e odo ?pode0 %er CualCuer no0eA.
PlacaP S a vari<vel repon<vel pelo %ipo de placa a er uada. "ode au0ir o e1uin%e %ipoP
D%mero Dome
B D(!($!
1 $G*
, M$G*
/ (G*
4 (G*64
5 (G*M-L-
6 27M:514
6 H(R$M-L-
: *!!4BB
9 FG*
1B "$/,6B
odoP S repon<vel pelo 0odo da placa ?al%a, 0#dia ou baiJa reolu=>oAP
$G*$B ?/,B J ,BBA 4 core, 1 p<1ina 1r<'ica
$G*$1 ?/,B J ,BBA 4 core, 1 p<1ina 1r<'ica
$G*$, ?/,B J ,BBA 4 core, 1 p<1ina 1r<'ica
$G*$/ ?/,B J ,BBA 4 core, 1 p<1ina 1r<'ica
$G*Hi ?64B J ,BBA e0 cor, 1 p<1ina 1r<'ica
(G*Lo ?64B J ,BBA 16 core, 4 p<1ina 1r<'ica
55
(G*Hi ?64B J /5BA 16 core, , p<1ina 1r<'ica
FG*Lo ?64B J ,BBA 16 core, 4 p<1ina 1r<'ica
FG*Med ?64B J /5BA 16 core, , p<1ina 1r<'ica
FG*Hi ?64B J 4:BA 16 core, 1 p<1ina 1r<'ica
"ro1ra0 De%ec%a^"lacaO
;e $r%,+ra'O
Far "laca,ModoP 2n%e1erO
7e1in
"laca P_ BE"EC"O
Init+ra'?"laca,Modo,ccAO ?W "rocura *rCuivo 7G2 no Dire%+rio $orren%e WA
2' +ra'Result TU +rO. %hen
Wri%eLn?c(RR-P 2nicialiGa=>o Gr<'icacAO
ou
"ro1ra0 )e%a^"laca^FG*O
;e $r%,+ra'O
Far "laca,ModoP 2n%e1erO
7e1in
"laca P_ 7<AO ?W "laca FG* WA
Modo P_ 7<A!IO ?W Modo 64B J 4:B, 16 core WA
Init+ra'?"laca,Modo,cDPYY!"YY7G2cAO ?W Path do *rCuivo W.7G2 WA
2' <ra.@Res(lt TU +rO. %hen
Wri%eLn?c(RR- 3*!*LP 2nicialiGa=>o Gr<'icacAO
&/'- P(tPiNel =Pontos>
P(tPiNelP "rocedi0en%o Cue per0i%e plo%ar u0 .iNel ?ponto A na %ela 1r<'ica.
Modo de ;arP PutPi&el?J,@P 2n%e1erO $or^"iJelP WordAO
"ro1ra0 "on%oO
;e $r%,GraphO
Far "laca,ModoP 2n%e1erO
N,eP 2n%e1erO
$orP 7@%eO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO ?W "rocura arCuivo W.7G2 no dire%+rio coren%e WA
Rando0iGeO
Repea%
N P_ Rando0?64BAO
e P_ Rando0?4:BAO
$or P_ Rando0?16AO
PutPi&el?N,e,$orAO
;n%il ]e@"reedO
56
$loeGraphO
(nd.
&/'/ Line =Lin@as>
LineP "rocedi0en%o Cue per0i%e plo%ar u0a lina a%rav# de doi pon%o, "i ?Ni,eiA e "' ?N',e'A.
Modo de ;arP Line?Ni,ei,N',e'P 2n%e1erAO
"ro1ra0 Re%aO
;e $r%,GraphO
Far "laca,ModoP 2n%e1erO
Ni,ei,N',e'P 2n%e1erO
$orP 7@%eO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
Rando0iGeO
Repea%
Ni P_ Rando0?64BAO
ei P_ Rando0?4:BAO
N' P_ Rando0?64BAO
e' P_ Rando0?4:BAO
$or P_ Rando0?16AO
)e%$olor?$orAO
Line?Ni,ei,N',e'AO
;n%il ]e@"reedO
$loeGraphO
(nd.
&/'0 Rectangle =Ret?ng(los>
RectangleP "rocedi0en%o Cue per0i%e plo%ar u0 ret?ng(lo na %ela 1r<'ica a%rav# de doi pon%o, "i
?Ni,eiA e "' ?N',e'A, e%e doi pon%o repreen%a0 a dia1onal do re%Hn1ulo.
Modo de ;arP Rectangle?Ni,ei,N',e'P 2n%e1erAO
"ro1ra0 Re%an1uloO
;e $r%,GraphO
Far "laca,ModoP 2n%e1erO
Ni,ei,N',e'P 2n%e1erO
$orP 7@%eO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
Repea%
56
Ni P_ Rando0?64BAO
ei P_ Rando0?4:BAO
N' P_ Rando0?64BAO
e' P_ Rando0?4:BAO
$or P_ Rando0?16AO
)e%$olor?$orAO
Rectangle?Ni,ei,N',e'AO
;n%il ]e@"reedO
$loeGraphO
(nd.
&/'3 Circle =C5rc(los>
CircleP "rocedi0en%o Cue per0i%e plo%ar u0 c5rc(lo na %ela 1r<'ica, a%rav# de u0 pon%o cen%ral
?Nc,ecA e u0 Raio.
Modo de ;arP Circle?Nc,ecP 2n%e1erO RaioP WordAO
"ro1ra0 $irculoO
;e $r%,GraphO
Far "laca,ModoP 2n%e1erO
Nc,ecP 2n%e1erO
$or,RaioP WordO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
Repea%
Nc P_ Rando0?64BAO
ec P_ Rando0?4:BAO
$or P_ Rando0?16AO
Raio P_ Rando0?1BBAO
)e%$olor?$orAO
Circle?Nc,ec,RaioAO
;n%il ]e@"reedO
$loeGraphO
(nd.
5:
&/'4 Arc =Arcos>
ArcP "rocedi0en%o Cue per0i%e plo%ar u0 arco na %ela 1r<'ica, a%rav# de u0 pon%o cen%ral ?Nc,ecA,
u0 Raio e doi Hn1ulo ?2nicial e 3inalA.
Modo de ;arPArc?Nc,ecP 2n%e1erO *n1^2nic, *n1^3i0P WordO RaioPWordAO
"ro1ra0 *rcoO
;e $r%,GraphO
Far "laca,ModoP 2n%e1erO
Nc,ecP 2n%e1erO
*n1^2nic,*n1^3i0P WordO
Raio,$orP WordO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
Repea%
Nc P_ Rando0?64BAO
ec P_ Rando0?4:BAO
*n1^2nic P_ Rando0?/6BAO
*n1^3i0 P_ Rando0?/6BAO
$or P_ Rando0?16AO
Raio P_ Rando0?1BBAO
)e%$olor?$orAO
Arc?Nc,ec,*n1^2nic,*n1^3i0,RaioAO
;n%il ]e@"reedO
$loeGraphO
(nd.
&/'6 BraEPolG =Pol5gonos>
BraEPolGP "rocedi0en%o Cue per0i%e plo%ar u0 .ol5gono na %ela 1r<'ica, a%rav# de n pon%o
?"1,",,..."nA.
"rocedi0en%oP #ra/Poly?LX0ero^de^"on%oP WordO Fe%or^de^pon%oAO
"ro1ra0 7onecoO
;e $r%, GraphO
$on% Ro%oP *rra@Q1..9,1..,R o' 2n%e1er _ ??1B9,149A,?,B9,149A,?,59,1,4A, ?,59, 64A,
?,B9, /9A,?1B9, /9A,? 59, 64A,? 59,1,4A,?1B9,149AAO
Far "laca,ModoP 2n%e1erO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
?W ------------------------------------ ro%o WA
#ra/Poly?9,Ro%oAO
59
?W ------------------------------------ olho eCuerdo WA
$ircle?1B9,64,6AO
?W ------------------------------------ olho direi%o WA
$ircle?,B9,64,6AO
?W ------------------------------------ nariG WA
$ircle?159,99,15AO
?W ------------------------------------ boca WA
Rec%an1le?1B9,1,B,,B9,1,:AO
?W ------------------------------------ orelha eCuerda WA
*rc?59,99,9B,,6B,,BAO
?W ------------------------------------ orelha direi%a WA
*rc?,59,99,,6B,9B,,BAO
?W ------------------------------------ cabelo WA
*rc?1/9,/9,B,1B5,,BAO
*rc?169,/9,65,1:B,,BAO
Repea% ;n%il ]e@"reedO
$loeGraphO
(nd.
&/'&8 Cores =#etColor e #etBCColor>
#etColorP "rocedi0en%o Cue per0i%e a 0udan=a da cor de frente ?ForeGroundA.
Modo de ;arP SetColor?nX0ero ou no0e^corP WordAO
#etBCColorP "rocedi0en%o Cue per0i%e 0udan=a da cor de f(ndo ?BackGroundA.
Modo de ;arP SetB4Color?nX0ero ou no0e^corP WordAO
<etColorP 3un=>o Cue retorna a cor de frente corren%e3
Modo de ;arP +etColorP WordO
<etBCColorP 3un=>o Cue retorna a cor de f(ndo corren%e.
Modo de ;arP +etB4ColorP WordO
&/'&& O(t"eNtLZ e #et"eNt#tGle ="eNtosA
#et"eNt#tGleP Modi'ica o ti.o de caracter ?3on%eA, dire)o e o taman@o do %eJ%o.
Modo de ;arP SetTe&tStyle?'on%e, dire=>o, %a0anhoP FordAO
D%mero 1ontes Bire)2es "aman@os
B De'aul%3on% HoriGDir B
1 !ripleJ3on% Fer%Dir 1
, )0all3on% ,
6B
/ )an)eri'3on% P
4 Go%hic3on% 1B
O(t"eNtLZP "er0i%e Cue u0 teNto seAa escrito na %ela 1r<'ica na poi=>o " ?J,@A.
Modo de ;arP OutTe&t,-?N,eP 2n%e1erO !eJ%oP )%rin1QRAO
"ro1ra0 !eJ%oO
;e $r%O GraphO
Far "laca,ModoP 2n%e1erO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
)e%78$olor?$@anAO
7ar?B,B,6/9,469AO
)e%$olor?7lueAO
SetTe&tStyle?Go%hic3on%,HoriGDir,5AO
OutTe&t,-?1BB,1BB,c!urbo "acal F5.5cAO
Repea% ;n%il ]e@"reedO
(nd.
&/'&+ Preenc@imento ?pin%uraA
&/'&+'& Ret?ng(los
BarP ;ado para pin%ar u0 re%Hn1ulo. *n%e, deve-e de'inir o e%ilo de preenchi0en%o, uando
Set(illStyle.
Modo de ;arP Bar?Ni,ei,N',e'P WordAO
#et1ill#tGleP ;ado para ecolher o e%ilo de preenchi0en%o.
Modo de ;arP Set(illStyle?e%iloP 7@%eO corP 7@%eAO
D%mero Estilos
B (0p%@3ill ?"reenche co0 a cor de 'undoA
1 )olid3ill
, Line3ill
/ L!)lah3ill
4 )lah3ill
5 7])lah3ill
6 L!7])lah3ill
6 Ha%ch3ill
: Nha%ch3ill
9 2n%erLeave3ill
1B WideDo%3ill
61
11 $loeDo%3ill
1, ;er3ill
"ro1ra0 ()!2L-)O
;e $r%, GraphO
Far "laca,ModoP 2n%e1erO
(%iloP 7@%eO
$orP 7@%eO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
3or (%ilo P_ 1 %o 1, do
7e1in
$or P_ 1 d Rando0?15AO
Set(illStyle?(%ilo,aAO
Bar?B,B,1BB,1BBAO
ReadLnO
(ndO
$loeGraphO
(nd.
&/'&+'+ Pol5gonos
aA 1illPolGP S uado para pin%ar u0 pol&1ono, uando o e%ilo de'inido pelo procedi0en%o
Set(illStyle. (%e procedi0en%o preenche CualCuer pol&1ono 'echado, e o pol&1ono e%iver aber%o
e%e procedi0en%o preenche a%# encon%rar u0 ob.e%o 'echado.
Modo de ;arP (illPoly?(%iloP 7@%eO $orP 7@%eAO
"ro1ra0 "reenche^"ol&1onoO
;e $r%, GraphO
$on% -b.e%oP *rra@Q1..5,1..,R o' 2n%e1er _ ??159,BA,?B,5BA,?159,199A,?/19,5BA,?159,BAAO
Far "laca,ModoP 2n%e1erO
(%iloP 7@%eO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
#ra/Poly?5,ob.e%oAO ?W "lo%a "ol&1ono FaGadoWA
Repea% ;n%il ]e@"reedO
3or (%ilo P_ B %o 1, do
7e1in
)e%3ill)%@le?(%ilo,e(LL-WAO ?W De'ine (%ilo e $or WA
(illPoly?5,-b.e%oAO ?W "in%a "ol&1ono WA
ReadLnO
(ndO
$loeGraphO
6,
(nd.
bA 1lood1illP S uado para preencher u0 pol&1ono, uando o e%ilo de'inido pelo procedi0en%o
Set(illStyle. - preenchi0en%o par%e de u0 pon%o cen%ral "c ?Nc,ecA do ob.e%o e preenche ao redor
de%e pon%o a%# encon%rar u0a borda co0 a cor epeci'icada ?'un=>o recurivaA.
Modo de ;arP (lood(ill?Nc,ecP 2n%e1erO $or^da^7ordaP WordAO
"ro1ra0 Roa^do^Fen%oO
;e $r%, GraphO
$on% "on%o _ 16O
RoaP *rra@Q1..pon%o,1..,R o' 2n%e1er _ ??159,BA,?1:9,49A,?,69,,4A,?,/9,6,A,?/19,99A,
?,/9,1,/A,?,69,16/A,?1:9,149A,?159,199A,?1B9,149A, ?/9,16/A,
?69,1,/A,
?B,99A,?69,6,A,?/9,,4A,?1B9,49A,?159,BAAO
Far "laca,ModoP 2n%e1erO
(%iloP 7@%eO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
)e%$olor?e(LL-WAO ?W $or da borda WA
#ra/Poly?"on%o,RoaAO ?W 20pri0e Roa do Fen%o WA
$ircle?159,99,,BAO ?W 20pri0e $&rculo WA
)e%3ill)%@le?)-L2D^32LL,7L;(AO ?W De'ine (%ilo e $or de "reenchi0en%o WA
(lood(ill?1B,99,e(LL-WAO ?W "reenche a par%ir do pon%o 1B,99 WA
ReadLnO
$loeGraphO
(nd.
&/'&, Ativa)o de ^anelas <rficas
&/'&,'& ^anela Ativa
Set1ie/PortP "rocedi0en%o de'ine u0a .anela a%iva
6/
?Ji,@iA
?J',@'A
?B,BA
?N0aJ,e0aJA
Modo de ;arP Set1ie/Port?Ni,ei,N',e'P 2n%e1erO Recor%aP 7ooleanAO
"i ?Ni,eiAP "on%o 2nicial
"' ?N',e'AP "on%o 3inal
Recor%aP !R;( ou 3*L)( ?Fari<vel Cue indica e haver< recor%e na .anela ou n>oA.
"ro1ra0 Janela^*%iva^co0^Recor%eO
;e $r%,GraphO
$on% (L!(R _ `1/O
()$ _ `,6O
;" _ `6,O
D-WL _ `:BO
L(3! _ `65O
R2GH! _ `66O
Far "laca,ModoP 2n%e1erO
N,eP 2n%e1erO
!eclaP $harO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
)e%3ill)%@le?)-L2D^32LL,GR((LAO
7ar?B,B,6/9,469AO
Set1ie/Port?19,19,/BB,1:B,!R;(AO ?W !e%e o pro1ra0a uando 3*L)( WA
)e%$olor?R(DAO
Clear1ie/PortO ?W Li0pa Janela *%iva WA
N P_ /19O
e P_ ,/9O
Repea%
)e%$olor?R(DAO
Rec%an1le?N,e,Nd1B,ed1BAO
!ecla P_ Read]e@O
)e%$olor?7L*$]AO
Rec%an1le?N,e,Nd1B,ed1BAO
$ae !ecla
-'
;"P Dec?e,5AO
64
D-WLP 2nc?e,5AO
L(3!P Dec?N,5AO
R2GH!P 2nc?N,5AO
(ndO
;n%il !ecla 2L Q(L!(R,()$RO
(nd.
&/'&,'+ Lim.ar ^anela Ativa
Clear1ie/PortP "rocedi0en%o Cue li0pa, co0 a cor de 'undo, a .anela a%ivada pelo procedi0en%o
Set1ie/Port, e nenhu0a .anela 'or a%ivada, por 'al%a ?defaultA, a .anela a%iva # %oda a %ela.
Modo de ;arP Clear1ie/PortO
&/'&,', #alvar e Rec(.erar ^anelas <rficas
+etImage e PutImageP fuando # nece<rio colocar .anela obrepo%a na %ela, deve-e an%e de
eJibir a .anela, alvar o local onde a .anela er< eJibida. "ara alvar e recuperar ?repec%iva0en%eA
.anela >o uado o e1uin%e procedi0en%oP
Modo de ;arP +etImage?Ni,ei,N',e'P WordO Far "P "oin%erAO
Modo de ;arP PutImage?Ni,eiP WordO "P "oin%erO ModoP WordAO
D%mero odos 1(n)o
B $op@"u% Z Mov \
1 Nor"u% Z N-r \
, -r"u% Z -r \ ou Lor0al"u%
/ *nd"u% Z *nd \
4 Lo%"u% Z Lo% \
"ara de'inir o pon%eiro, Cue ir< con%er o .iNels da %ela, # nece<rio aber a ;(antidade de
bGtes ?por=>o de 0e0+riaA para alvar a .anela 1r<'ica, i%o # 'ei%o da e1uin%e 0aneiraP
ImageSi2eP Re%orna o n%mero de bGtes nece<rio para con%er a .anela de'inida pelo pon%o "i
?Ni,eiA e "' ?N',e'A.
Modo de ;arP ImageSi2e?Ni,ei,N',e'P WordAP WordO
+et0emP "rocedi0en%o Cue 'aG aloca)o din?nica de memria para o pon%eiro ', o Cual ocupar<
n b@%e na 0e0+ria.
Modo de ;arP +et0em?Far "P "oin%erO LX0ero^7@%eP WordAO
(ree0emP "rocedi0en%o Cue libera a rea de 0e0+ria ocupada pelo pon%eiro '.
Modo de ;arP (ree0em?"P "oin%erO LX0ero^7@%eP WordAO
65
"ro1ra0 JanelaO
;e $r%,GraphO
!@pe !2"- _ )%rin1Q,BRO
Far "laca,ModoP 2n%e1erO
"P *rra@Q1..5R o' "oin%erO
$orP 7@%eO
Lu0^7@%eP *rra@Q1..5R o' WordO
"rocedure Moldura?Ji,@i,J',@'PWordO cor^'ren%e,cor^'undoP7@%eAO
7e1in
)e%$olor?cor^'undoAO
)e%3ill)%@le?)olid3ill,cor^'undoAO
7ar?Ji,@i,J',@'AO
)e%$olor?cor^'ren%eAO
Rec%an1le?Ji,@i,J',@'AO
Rec%an1le?Jid,,@id,,J'-,,@'-,AO
(ndO
"rocedure )alva^Janela?.anela,Ji,@i,J',@'P WordAO
7e1in
Lu0^7@%eQ.anelaR P_ ImageSi2e?Ji,@i,J',@'AO
+et0em?pQ.anelaR,Lu0^7@%eQ.anelaRAO
+etImage?Ji,@i,J',@',"Q.anelaRjAO
(ndO
"rocedure Re%aura^Janela?.anela,Ji,@i,J',@'P WordAO
7e1in
)e%3ill)%@le?B,7L*$]AO
7ar?Ji,@i,J',@'AO
PutImage?Ji,@i,"Q.anelaRj,Lor0al"u%AO
(ree0em?pQ.anelaR,Lu0^7@%eQ.anelaRAO
(ndO
7e1in
"laca P_ FG*O
Modo P_ FG*H2O
2ni%Graph?"laca,Modo,ccAO
)e%3ill)%@le?)-L2D^32LL,7L*$]AO
7ar?B,B,6/9,469AO
)alva^Janela?1,1B,1B,1BB,5BAO
Moldura?1B,1B,1BB,5B,B,1AO
ReadLnO
)alva^Janela?,,/B,/B,1/B,:BAO
Moldura?/B,/B,1/B,:B,1,,AO
ReadLn
)alva^Janela?/,5B,5B,15B,1BBAO
Moldura?5B,5B,15B,1BB,,,/AO
ReadLnOO
Re%aura^Janela?/,5B,5B,15B,1BBAO
66
ReadLnO
Re%aura^Janela?,,/B,/B,1/B,:BAO
ReadLnO
Re%aura^Janela?1,1B,1B,1BB,5BAO
ReadLnO
$loeGraphO
(nd.
&0' Cria)o de Unidades ?UnitsA
;0a unidade # u0 con.un%o de procedi0en%o e 'un=Ie, Cue pode0 er uado por
CualCuer pro1ra0a.
&0'& Como Criar (ma Unidade
- pro1ra0ador pode de'inir ua pr+pria unidade Units. "or eJe0ploP ;e $r%,GraphO
Cue >o unidade do V!urbo "acal 5.5V. * de'ini=>o de u0a unidade # 'ei%a da e1uin%e 0aneiraP
Unit no0e^da^unidadeO
Interface
;e
$on%
!@pe
Far
"rocedure
"rocedure ... ?W $abe=alho de %odo o M+dulo WA
3unc%ion
3unc%ion
Im'lementation
"rocedure
$on%
!@pe
Far
7e1in
co0andoO
(ndO
3unc%ion
$on%
!@pe
Far
7e1in
co0andoO
66
(ndO
%nd'
Observa)o: ;0a unidade # u0 pro1ra0a 3on%e "acal e0 .rograma .rinci.al. "oui eJ%en>o
Vno0e."*)V e ap+ co0pilada, Vno0e.!";V. * van%a1e0 de u0a unidade de'inida pelo
pro1ra0ador # Cue per0i%e Cue a V'rocedureV e VfunctionV e.a0 uada e0 CualCuer pro1ra0a.
&0'+ ENem.lo de Cria)o de (ma Unidade:
Unit LuGGardiO
Interface
;e $r%O
!@pe !2"- _ )%rin1O
3unc%ion "o%?J,@P RealAP RealO
"rocedure !roca?F*R J,@P RealAO
"rocedure 20pri0e^)%rin1?c,lP 7@%eO P )%rin1AO
"rocedure Moldura^)i0ple?Ji,@i,J',@'P 7@%eAO
"rocedure 20pri0e^$har?c,lP 7@%eO chP $harAO
"rocedure Moldura^Dupla?Ji,@i,J',@'P 7@%eAO
"rocedure Li0pa^*rea?Ji,@i,J',@'P 7@%eO corP 7@%eAO
"rocedure (n%rada?c,l,%P 7@%eO F*R no0eP !2"-O 0ena1e0P !2"-AO
Im'lementation
?W ----------------------------------- "o% WA
3unc%ion "o%?J,@P RealAP RealO
7e1in
"o% P_ (Jp?Ln?JAW@AO
(ndO
?W ---------------------------------- !roca WA
"rocedure !roca?F*R J,@P RealAO
Far %e0pP RealO
7e1in
%e0p P_ JO
J P_ @O
@ P_ %e0pO
(ndO
?W ---------------------------------- 20pri0e^)%rin1 WA
"rocedure 20pri0e^)%rin1?c,lP 7@%eO P )%rin1AO
6:
7e1in
Go%oNe?c,lAO
Wri%e?AO
(ndO
?W ---------------------------------- 20pri0e^$har WA
"rocedure 20pri0e^$har?c,lP 7@%eO chP $harAO
7e1in
Go%oNe?c,lAO
Wri%e?chAO
(ndO
?W ---------------------------------- Moldura^Dupla WA
"rocedure Moldura^Dupla ?Ji,@i,J',@'P 7@%eAO
Far c,lP 7@%eO
7e1in
3or c P_ Ji %o J' do
7e1in
20pri0e^$har?c,@i,`,B5AO
20pri0e^$har?c,@',`,B5AO
(ndO
3or l P_ @i %o @' do
7e1in
20pri0e^$har?Ji,l,`1:6AO
20pri0e^$har?J',l,`1:6AO
(ndO
20pri0e^$har?Ji,@i,`,B1AO
20pri0e^$har?J',@i,`1:6AO
20pri0e^$har?J',@',`1::AO
20pri0e^$har?Ji,@',`,BBAO
(ndO
?W ------------------------------------ Moldura^)i0ple WA
"rocedure Moldura^)i0ple ?Ji,@i,J',@'P 7@%eAO
Far c,lP 7@%eO
7e1in
3or c P_ Ji %o J' do
7e1in
20pri0e^$har?c,@i,`196AO
20pri0e^$har?c,@',`196AO
(ndO
3or l P_ @i %o @' do
7e1in
20pri0e^$har?Ji,l,`169AO
20pri0e^$har?J',l,`169AO
(ndO
69
20pri0e^$har?Ji,@i,`,1:AO
20pri0e^$har?J',@i,`191AO
20pri0e^$har?J',@',`,16AO
20pri0e^$har?Ji,@',`19,AO
(ndO
?W -------------------------------- Li0pa^*rea WA
"rocedure Li0pa^*rea?Ji,@i,J',@'P 7@%eO corP 7@%eAO
7e1in
!eJ%$olor?corAO
Window?Ji,@i,J',@'AO
$lr)crO
Window?1,1,:B,,5AO
(ndO
?W --------------------------- (n%rada WA
"rocedure (n%rada?c,l,%P 7@%eO Far no0eP !2"-O 0ena1e0P !2"-AO
Far chP $harO
%a0,col,iP 7@%eO
7e1in
no0e P_ ccO
Go%oJ@?c,lAO
Wri%e?0ena1e0,no0eAO
%a0 P_ Len1%h?0ena1e0AO
col P_ cd%a0O
Go%oJ@?col,lAO
i P_ 1O
Repea%
Repea%
ch P_ Read]e@O
;n%il ch 2L Q`65,`9B,`96,`1,,,`1/,`:,`65,`,6,`/,RO
2' ch 2L Q`:,`65R !hen
7e1in
2' i U_ , !hen
7e1in
Dele%e?no0e,len1%h?no0eA,1AO
col P_ col-1O
20pri0e^$har?col,l,c cAO
Go%oJ@?col,lAO
i P_ i-1O
(ndO
(nd
(le
2' ?ch TU `1/A and ?ch TU `,6A !hen
7e1in
20pri0e^$har?col,l,chAO
col P_ cold1O
6B
no0e P_ no0edchO
i P_ id1O
(ndO
;n%il ?ch 2n Q`1/, `,6,RA -r ?i U_ %AO
(ndO
%nd.
&0', ENem.lo de Programa ;(e (sa a Unidade Criada:
;e $r%,Lu22ardiO
Far Lo0eP !2"-O
2P 7@%eO
7e1in
Li0pa^*rea?1,1,:B,,5,WH2!(AO
Moldura^)i0ple?5,/,/5,,,AO
Moldura^Dupla?45,/,65,,,AO
(n%rada?6,5,,B,Lo0e,cLo0eP cAO
20pri0e^)%rin1?5B,5,Lo0eAO
Go%oNe?5B,6AO
3or 2 P_ 1 %o Len1%h?Lo0eA do
7e1in
20pri0e^$har?49d2,6,Lo0eQ2RAO
ReadLnO
(ndO
ReadLnO
(nd.
Observa)o: "ara eJecu%ar o pro1ra0a e, obri1ar Cue a unidade e.a co0pilada nova0en%e, deve-e
co0pilar co0 a op=>o B(ild do 0enu Com.ile.
&3' emria de 75deo
(0 "acal, pode-e ecrever dire%o na 0e0+ria de v&deo e0 er a%rav# do co0ando Frite
ou F@iteLn, i%o # 'ei%o endere=ando u0 ve%or de 4BBB b@%e a par%ir do endere=o \B488:8888 Cue
# o in&cio da %ela de %eJ%o ?endere=o na placa de v&deoA, i%o # 'ei%o da e1uin%e 0aneiraP a pri0eira
poi=>o da %ela # pQBR, a e1unda # pQ,R, poi pQ1R e o a%ribu%o de cor do pri0eiro carac%er. "ara
calcular a poi=>o no ve%or unidi0enional a%rav# da coluna e linha # o e1uin%eP
61
:Bcoluna
,5 linha
B , 4 1
,
1 , :B
,5
Locali9a)o na emria de 75deo
poi=>o P_ 16B W ?linha - 1A d , W ?coluna - 1AO
Atrib(to de CORP ?1 7@%eA
6 6 5 4 / , 1 B
3undo 3ren%e
" 2
PP $arac%er "ican%e ?7i% 6A
1(ndoP $or do 3undo ?7i%P 6,5,4A
IP 2n%enidade da $or ?7i% /A
1renteP $or de 3ren%e ?7i%P ,,1,BA
"ro1ra0 Me0oria^FideoO
;e $r%O
Far FideoP *rra@QB../999R o' $har *bolu%e [7:BBPBBBBO
$,LP 7@%eO
$hP $harO
?W ------------------------ 20pri0e WA
"rocedure 20pri0e^$arac%er?c,lP 7@%eO carac%erP $harAO
Far poicaoP WordO
7e1in
poicao P_ 16B W ?l - 1A d , W ?c - 1AO
6,
FideoQpoicaoR P_ carac%erO
(ndO
7e1in
Repea%
3or L P_ 1 !o ,4 Do
3or $ P_ 1 !o :B Do
7e1in
Go%oNe?$,LAO
Wri%e?c*cAO
(ndO
$h P_ Read]e@O
3or L P_ 1 !o ,4 Do
3or $ P_ 1 !o :B Do
20pri0e^$arac%er?$,L,c7cAO ?W 20pri0e na Me0+ria WA
;n%il ]e@"reedO
(nd.
&4' Passagem de Par?metros .ela Lin@a de Comandos
do #istema O.eracional
ObAetivoP Deenvolver pro1ra0a Cue in%era1e0 co0 o )i%e0a -peracional, a%rav# de
parH0e%ro.
7ariveis PrTJBefinidas
ParamCountP *r0aGena o nX0ero de parH0e%ro da linha de co0ando
ParamStrFnGP *r0aGena a li%a de %rin1 da linha de co0ando
OndeP n # o &ndice da %rin1 ?B a%# ParamCountA
$PYUIn5erte "(L-!*)
)*!-L("
$PY^
OndeP "ara0$oun% _ 1
"ara0)%r?BA _ c*PY2LF(R!(.(N(c
"ara0)%r?1A _ c"(L-!*)c
ObAetivo do ProgramaP Recebe u0a %rin1 CualCuer pela linha de co0ando do )i%e0a
-peracional e a inver%e.
;e $r%O
Far 2,LP 7@%eO
)P )%rin1O
7e1in
6/
$lr)crO
2' ParamCount TU 1 !hen
Wri%eLn?c)in%aJeP 2LF(R!( TpalavraUcA
(le
7e1in
) P_ ParamStr?1AO
L P_ Len1%h?)AO
3or 2 P_ L Down!o 1 Do
Wri%e?)Q2RAO
(ndO
(nd.
*PYUlista L2)!*."*)
OndeP "ara0$oun% _ 1
"ara0)%r?BA _ c*PYL2)!*.(N(c
"ara0)%r?1A _ cL2)!*."*)c
ObAetivo do ProgramaP Recebe o no0e de u0 arCuivo %eJ%o, abre o arCuivo e li%a o con%eXdo na
%ela, nu0erando a linha e parando Cuando a %ela e%< cheia.
;e $r%O
Far *rCP 3ile -' $harO
Re1P $harO
LP 7@%eO
LinhaP WordO
L^$arP Lon12n%O
7e1in
$lr)crO
2' ParamCount TU 1 !hen
Wri%eLn?c)in%aJeP L2)!* Tno0e^do^arCuivoUcA
(le
7e1in
*i1n?*rC,ParamStr?1AAO
Z[2-\ Ree%?*rCA Z[2d\O
2' 2oReul% TU B !hen
Wri%eLn?c(RR-P *rCuivo L>o (Ji%ecA
(le
7e1in
Linha P_ 1O
L P_ 1O
Read?*rC,Re1AO
Wri%e?LinhaP/,cP cAO
While Lo%?(o'?*rCAA Do
7e1in
Wri%e?Re1AO
2' Re1 _ `1/ !hen
7e1in
64
2nc?LAO
Wri%e?LinhaP/,cP cAO
2nc?LinhaAO
2' L _ ,/ !hen
7e1in
Wri%eLnO
Wri%eLnO
Wri%e?c*rCuivoP c,ParamStr?1AAO
Wri%e?c - !ecle T(L!(RUcAO
ReadLnO
$lr)crO
(ndO
(ndO
Read?*rC,Re1AO
(ndO
$loe?*rCAO
(ndO
(ndO
(ndO
(nd.
$PYU'rocura ;L2F(R)2D*D( (
;L2F(R)2D*D( poui , le%ra (
$PYU^
OndeP "ara0$oun% _ ,
"ara0)%r?BA _ c*PY"R-$;R*.(N(c
"ara0)%r?1A _ c;L2F(R)2D*D(c
"ara0)%r?,A _ c(c
ObAetivo do ProgramaP Recebe u0a palavra e u0a le%ra e veri'ica Cuan%a veGe a le%ra e%<
preen%e den%ro da palavra
;e $r%O
Far ),)auJP )%rin1O
Le%raP $harO
2,L,!P 7@%eO
7e1in
$lr)crO
2' ParamCount TU , !hen
Wri%eLn?c)in%aJeP "R-$;R* T"alavraU TLe%raUcA
(le
7e1in
) P_ ParamStr?1AO
)auJ P_ ParamStr?,AO
Le%ra P_ )auJQ1RO
L P_ Len1%h?)AO
! P_ BO
3or 2 P_ 1 !o L Do
65
2' )QiR _ Le%ra !hen
2nc?!AO
Wri%eLn?),c poui c,!,c le%ra c,Le%raAO
(ndO
(nd.
&6' Ponteiros ?Fari<vel Cue *pon%aA
&6'& "i.os de Aloca)o de emria
&6'&'& J Aloca)o Esttica de emria
!ipo de aloca=>o de 0e0+ria onde cada varivel global poui u0 nX0ero definido de
b@%e alocado ?reervadoA na 0e0+ria, n>o podendo er au0en%ado ou di0inu&do duran%e %odo o
pro1ra0a.
ENem.loP
Far JP 7@%eO ?W 1 b@%e alocado na 0e0+ria WA
@P 2n%e1erO ?W , b@%e alocado na 0e0+ria WA
&6'&'+ J Aloca)o Bin?mica de emria
!ipo de aloca=>o onde cada vari<vel poui u0 nX0ero indefinido de b@%e alocado na
0e0+ria, podendo er alocado ou dealocado a CualCuer 0o0en%o co0 CualCuer %a0anho. "ara
i%o, # nece<rio uar u0a vari<vel do %ipo Ponteiro. * vari<vei locai >o alocada
dina0ica0en%e.
Observa)oP ;0 pon%eiro # u0a vari<vel Cue ocupa 4 b@%e
Befini)oP Far no0e^do^pon%eiroP j%ipo^baeO
ENem.loP Far pP HIntegerO ?W p apon%a para u0 in%eiro Q, 7@%eR WA
Aloca)oP (pa=o reervado na 0e0+ria R*M
Alocar (m Ponteiro
"e/?pAO
"rocedi0en%o Cue aloca 0e0+ria do %a0anho do %ipo^baeO
ENem.lo: "e/?pAO
2' p _ "il !hen
Wri%eLn?c(RR-P 3al%a de Me0+riacA
(le
66
Wri%eLn?c-8, "on%eiro *locadocAO
"il6 "alavra reervada Cue repreen%a pon%eiro nulo, ou e.a, pon%eiro n>o apon%a para nada.
Besaloca)oP Libera=>o de epa=o alocado na 0e0+ria
Besalocar o Ponteiro
#is'ose?pAO
"rocedi0en%o Cue desaloca a 0e0+ria alocada pelo procedi0en%o "e/?pAO
Alocar (ma _rea
+et0em?p,nX0ero^de^b@%eAO
"rocedi0en%o Cue aloca u0a <rea co0 VnV b@%e
ENem.lo:
;e $r%O
Far "P j2n%e1erO
LP 7@%eO
Lu0^7@%eP WordO
7e1in
$lr)crO
Wri%e?VLX0ero de (le0en%oP cAO
ReadLn?LAO
Lu0^7@%e P_ L W )iGe-'?2n%e1erAO ?W $alcula o LX0ero de 7@%e WA
+et0em?",Lu0^7@%eAO
2' " _ Lil !hen
Wri%eLn?c(RR-P 3al%a de Me0+riacA
(le
Wri%eLn?c-8, "on%eiro *locadocAO
Besalocar (ma _rea
(ree0em?p,nX0ero^de^b@%eAO
"rocedi0en%o Cue desaloca u0a <rea co0 n b@%e
Befini)2es
p $on%#0 o endere)o de 0e0+ria apon%ada pelo pon%eiro
pj $on%#0 o conte%do do pon%eiro
kn $on%#0 o endere=o da vari<vel n
66
;e $r%O
Far LP 2n%e1erO
"P j2n%e1erO
7e1in
$lr)crO
L P_ 65O
" P_ `DO ?W "on%eiro apon%a para a vari<vel n WA
Wri%eLn?c$on%eXdoP c,PHAO
(nd.
1BB B
1BB 1
1BB ,
1BB /
1BB 4
1BB 5
k n
k p
1 7@ %e
n
p
? ,b@ %eA
?4b @%eA
65
1B BB
e nder e=o c on%e Xdo
Me0 +ri aR* M
Endere)oP Q)e10en%oP-'')e%R
1(n)2es
aA 0emA5ailP Re%orna o nX0ero de b@%e dipon&vel na 0e0+ria
bA 0a&A5ailP Re%orna o nX0ero de b@%e do 0aior bloco dipon&vel na 0e0+ria
ENem.loP
;e $r%O
Far LivreP Lon12n%O
7locoP Lon12n%O
7e1in
$lr)crO
Livre P_ 0emA5ail Div 1B,4O
Wri%eLn?Livre,c ] 7@%e Livre na Me0oriacAO
7loco P_ 0a&A5ail Div 1B,4O
Wri%eLn?7loco,c ] 7@%e do Maior 7loco LivrecAO
6:
ReadLnO
(nd.
&6'+ Acesso Bireto a emria
7arivel PrT JBefinida
0emQ)e10en%oP-'')e%R
"ara acear dire%a0en%e a 0e0+ria ua-e a vari<vel pr#-de'inida 0em. $o0 e%a vari<vel,
pode-e li%ar ou 0odi'icar u0a poi=>o de 0e0+ria.
Endere)o do 75deoP [7:BBPBBBB )e10en%o [7:BB
-'')e% [BBBB
ObAetivo do ProgramaP "oui doi procedi0en%o, u0 para preencher a %ela co0 carac%ere
alea%+rio e ou%ro para li0par a %ela ?preencher co0 epa=oA e0 !rite.
;e $r%O
"rocedure Li0pa^!elaO
Far )e10en%o,-'')e%P Lon12n%O
7e1in
)e10en%o P_ [7:BBO
-'')e% P_ [BBBBO
Repea%
0emQ)e10en%oP-'')e%R P_ /,O ?W /, - (pa=o WA
2nc?-'')e%,,AO
;n%il -'')e% _ 4BBBO
(ndO
"rocedure )u.a^!elaO
Far )e10en%o,-'')e%P Lon12n%O
Le%raP 7@%eO
7e1in
)e10en%o P_ [7:BBO
-'')e% P_ [BBBBO
Repea%
Le%ra P_ Rando0?,56AO
0emQ)e10en%oP-'')e%R P_ Le%raO
2nc?-'')e%,,AO
;n%il -'')e% _ 4BBBO
(ndO
7e1in
Repea%
Li0pa^!elaO
)u.a^!elaO
69
;n%il ]e@"reedO
(nd.
&6', Acesso Bireto a emria de 75deoP
;e $r%O
Far FideoP *rra@QB../999R -' $har *bolu%e [7:BBPBBBBO
$,LP 7@%eO
Le%raP 7@%eO
"rocedure 20pri0e?c,l,Le%raP 7@%eAO
Far poicaoP 2n%e1erO
7e1in
poi=>o P_ 16B W ?l - 1A d ?c - 1A W ,O
FideoQpoi=>oR P_ $hr?Le%raAO
(ndO
7e1in
Repea%
$lr)crO
3or L P_ 1 !o ,4 Do
3or $ P_ 1 !o :B Do
7e1in
Le%ra P_ Rando0?,56AO
20pri0e?$,L,Le%raAO
(ndO
;n%il ]e@"reedO
(nd.
&6'- Listas Encadeadas
"er0i%e0 aloca=>o inde%er0inada de ele0en%o. !e0 por carac%er&%ica u0 elo de li1a=>o
en%re u0 ele0en%o e ou%ro.
"oui u0 !eader ?cabe=aA Cue indica o pri0eiro ele0en%o da li%a.
c
c b a
1 L2L , a / b
Header
:B
* li%a >o percorrida eCDencial0en%e, apena nu0a dire=>o, ou e.a, do pri0eiro ao
Xl%i0o ele0en%o. * in'or0a=>o do nX0ero de ele0en%o da li%a # ob%ida o0en%e co0 a varredura
de %oda a li%a. "ara reolver e%e doi proble0a pode-e uar u0 decri%or da e1uin%e 0aneiraP
"ri0eiro n ll%i0o
D()$R2!-R
&6'/ 1ilas e Pil@as
* li%a pode0 er 1ilas ou Pil@asP
1ilaP 32'- ?1ir% Inpu% 1ir% Ou%pu%A, ou e.a, o pri0eiro ele0en%o a en%rar na 'ila # o pri0eiro
ele0en%o a air da 'ila.
Pil@aP L2'- ?La% Inpu% 1ir% Ou%pu%A, ou e.a, o Xl%i0o ele0en%o a en%rar na pilha # o pri0eiro a
air.
E - (n%rada de Dado
# - )a&da de Dado
,
/
1
(9)
1
,
/
(
)
"ilha 3ila
Pil@aP 1ilaP
%ntradaP 1,,,/ %ntradaP 1,,,/
SaIdaP /,,,1 SaIdaP 1,,,/
Im.lementa)o de (ma Pil@a
ObAetivo do ProgramaP 2nerir nX0ero in%eiro e0 u0a pilha. fuando o nX0ero 'or i1ual M Gero
?BA, %odo o nX0ero da pilha >o li%ado.
"ro1ra0 "ilhaO
;e $r%O
:1
!@pe "-L!(2R- _ j(L(M(L!-O
(L(M(L!- _ Record
dadoP 2n%e1erO
eloP "-L!(2R-O
(ndO
Far ",HeaderP "-L!(2R-O
LP 2n%e1erO
7e1in
Header P_ LilO
Repea%
$lr)crO
Wri%e?cLX0eroP cAO
ReadLn?LAO
2' L TU B !hen
7e1in
Lew?"AO
2' " _ Lil !hen
Wri%eLn?c(RR-P 3al%a de Me0+riacA
(le
7e1in
"j.elo P_ HeaderO
"j.dado P_ LO
Header P_ "O
(ndO
(ndO
;n%il ?L _ BA or ?" _ LilAO
" P_ HeaderO
While "j.elo TU Lil Do
7e1in
Wri%eLn?cFalorP c,"j.dadoAO
" P_ "j.eloO
(ndO
Wri%eLn?cFalorP c,"j.dadoAO
ReadLnO
(nd.
Im.lementa)o de (ma 1ila
ObAetivo do ProgramaP 2nerir nX0ero in%eiro e0 u0a 'ila. fuando o nX0ero 'or i1ual M Gero ?BA,
%odo o nX0ero da 'ila >o li%ado.
"ro1ra0 3ilaO
;e $r%O
!@pe "-L!(2R- _ j(L(M(L!-O
(L(M(L!- _ Record
dadoP 2n%e1erO
eloP "-L!(2R-O
(ndO
:,
Far ",f,HeaderP "-L!(2R-O
LP 2n%e1erO
7e1in
$lr)crO
Wri%e?cLX0eroP cAO
ReadLn?LAO
Lew?"AO
Header P_ "O
"j.elo P_ LilO
"j.dado P_ LO
Repea%
$lr)crO
Wri%e?cLX0eroP cAO
ReadLn?LAO
2' L TU B !hen
7e1in
f P_ "O
Lew?"AO
2' " _ Lil !hen
Wri%eLn?c(RR-P 3al%a de Me0+riacA
(le
7e1in
fj.elo P_ "O
"j.dado P_ LO
"j.elo P_ LilO
(ndO
(ndO
;n%il L _ BO
" P_ HeaderO
While "j.elo TU Lil Do
7e1in
Wri%eLn?cFalorP c,"j.dadoAO
" P_ "j.eloO
(ndO
Wri%eLn?cFalorP c,"j.dadoAO
ReadLnO
(nd.
&6'0 Lista B(.lamente Encadeada
"oui u0 elo para o ele0en%o an%erior e u0 elo para o ele0en%o po%erior. "oui u0a
van%a1e0 obre a li%a encadeada, poi pode er percorrida e0 dua dire=Ie.
ObAetivo do ProgramaP 2nerir nX0ero in%eiro e0 u0a li%a dupla0en%e encadeada. * iner=>o
pode er pela es;(erda ou a direita. * eJibi=>o do ele0en%o da li%a pode er 'ei%a pela es;(erda
ou direita.
"ro1ra0 Li%a^Dupla0en%e^(ncadeadaO
:/
;e $r%O
!@pe "-L!(2R- _ j(L(M(L!-O
(L(M(L!- _ Record
an%eriorP "-L!(2R-O
dadoP 2n%e1erO
po%eriorP "-L!(2R-O
(ndO
D()$R2!-R _ Record
pri0eiroP "-L!(2R-O
nP WordO
ul%i0oP "-L!(2R-O
(ndO
Far "P "-L!(2R-O
DP D()$R2!-RO
LP 2n%e1erO
-pP $harO
"rocedure 2nicialiGa^Decri%orO
7e1in
D.pri0eiro P_ LilO
D.n P_ BO
D.ul%i0o P_ LilO
(ndO
"rocedure 2nere^(Cuerda?nP 2n%e1erAO
Far CP "-L!(2R-O
7e1in
Lew?"AO
2' " _ Lil !hen
Wri%eLn?c(RR-P 3al%a de Me0+riacA
(le
7e1in
2' D.n _ B !hen
7e1in
"j.an%erior P_ LilO
"j.dado P_ LO
"j.po%erior P_ LilO
D.pri0eiro P_ "O
D.n P_ 1O
D.ul%i0o P_ "O
(nd
(le
7e1in
C P_ D.pri0eiroO
"j.an%erior P_ LilO
"j.dado P_ nO
:4
"j.po%erior P_ CO
Cj.an%erior P_ "O
D.pri0eiro P_ "O
D.n P_ D.n d 1O
(ndO
(ndO
(ndO
"rocedure 2nere^Direi%a?nP 2n%e1erAO
Far CP "-L!(2R-O
7e1in
Lew?"AO
2' " _ Lil !hen
Wri%eLn?c(RR-P 3al%a de Me0+riacA
(le
7e1in
2' D.n _ B !hen
7e1in
"j.an%erior P_ LilO
"j.dado P_ nO
"j.po%erior P_ LilO
D.pri0eiro P_ "O
D.n P_ 1O
D.ul%i0o P_ "O
(nd
(le
7e1in
C P_ D.ul%i0oO
"j.an%erior P_ CO
"j.dado P_ nO
"j.po%erior P_ LilO
Cj.po%erior P_ "O
D.ul%i0o P_ "O
D.n P_ D.n d 1O
(ndO
(ndO
(ndO
"rocedure (Jibir^Li%a^Direi%aO
7e1in
" P_ D.ul%i0oO
While "j.an%erior TU Lil Do
7e1in
Wri%eLn?cFalorP c,"j.dadoAO
" P_ "j.an%eriorO
(ndO
Wri%eLn?cFalorP c,"j.dadoAO
(ndO
:5
"rocedure (Jibir^Li%a^(CuerdaO
7e1in
" P_ D.pri0eiroO
While "j.po%erior TU Lil Do
7e1in
Wri%eLn?cFalorP c,"j.dadoAO
" P_ "j.po%eriorO
(ndO
Wri%eLn?cFalorP c,"j.dadoAO
(ndO
7e1in
2nicialiGa^Decri%orO
Repea%
$lr)crO
Wri%e?cLX0eroP cAO
ReadLn?LAO
2' L TU B !hen
7e1in
Wri%e?cQ(RCuerda ou QDRirei%a hcAO
Repea%
-p P_ ;p$ae?Read]e@AO
;n%il -p 2L Qc(c,cDcRO
$ae op
-'
c(cP 2nere^(Cuerda?LAO
cDcP 2nere^Direi%a?LAO
(ndO
(ndO
;n%il L _ BO
$lr)crO
Repea%
Wri%e?cLi%arP Q(RCuerda, QDRirei%a ou Q3Ri0hcAO
Repea%
-p P_ ;p$ae?Read]e@AO
;n%il -p 2L Qc(c,cDc,c3cRO
Wri%eLn?-pAO
$ae -p
-'
c(cP (Jibir^Li%a^(CuerdaO
cDcP (Jibir^Li%a^Direi%aO
(ndO
;n%il -p _ c3cO
(nd.
+8' Interr(.)2es
:6
- Microco0pu%ador "$ ?"eronal $o0pu%erA poui u0 circui%o in%e1rado repon<vel por
in%erro0per o procea0en%o do Microproceador ?:B:6A cha0ado PIC 4+/6 ?Pro1ra00able
In%errup% Con%rollerA, pouindo ,56 %ipo de in%errup=Ie di'eren%e.
* in%errup=Ie pode0 er de hardware ou software. "or eJe0plo CtrlJBrea. # u0a
in%errup=>o de hardware ?%ecladoA.
Procedimento de Interr(.)o
Intr?nX0ero^da^in%errup=>oP 7@%eO Far re1P Re1i%erAO
Registers
!ipo de dado pr#-de'inido do "acal Cue per0i%e 0anipular dire%a0en%e o re1i%radore do
:B:6.
Aten)oP "ara uar e%e procedi0en%o # nece<rioO ;e #osO
ObAetivo do ProgramaP !e%ar e a i0preora ?27M ,/9BA e%< OnJLine ?Li1adaA ou OffJLine
?Deli1adaA
;e $r%, #osO
3unc%ion !e%a^20preoraP 7ooleanO
Far re1P Re1i%erO
%a%uP 7ooleanO
7e1in
re1.ah P_ [B,O
re1.dJ P_ [BBO
Intr?[16,re1AO
2' re1.ah _ 144 !hen
%a%u P_ !R;(
(le
%a%u P_ 3*L)(O
!e%a^20preora P_ %a%uO
(ndO
7e1in
$lr)crO
Repea%
2' !e%a^20preora !hen
Wri%eLn?c20preora -n-LinecA
(le
Wri%eLn?c20preora -''-LinecAO
;n%il ]e@"reedO
(nd.
ObAetivo do ProgramaP "oicionar o curor na %ela e0 CualCuer poi=>o c ?colunaA e l ?linhaA.
:6
;e $r%, #osO
$on% !(M"- _ 1BBO
Far $,lP 7@%eO
"rocedure $uror?col,linP 7@%eAO
Far re1P Re1i%erO
7e1in
re1.ah P_ [B,O
re1.bh P_ BO ?W LX0ero da "<1ina WA
re1.dh P_ linO
re1.dl P_ colO
Intr?[1B,re1AO
(ndO
7e1in
$lr)crO
3or L P_ 1 !o ,4 Do
3or $ P_ 1 !o :B Do
7e1in
$uror?$,LAO
Wri%e?c _--cAO
Dela@?!(M"-AO ?W $on%rola a Felocidade WA
(ndO
(nd.
::

Você também pode gostar