Você está na página 1de 5

04.

Introduo aos A|gor|tmos


Noes de Lg|ca
A lglca LraLa da correo do pensamenLo.
Como losoa, ela busca saber por que se pensa de uma
forma e no de ouLra.
1ambem pode se dlzer que a lglca e a arLe de pensar
correLamenLe, vlsLo que a forma mals complexa do
pensamenLo e o racloclnlo, pode se dlzer que:
a lglca Lem em vlsLa a correo do racloclnlo,
a lglca Lem em vlsLa a ordem da razo.
Conslderando a posslbllldade de que a razo pode
funclonar desordenadamenLe, a lglca enslna a por em
ordem no pensamenLo.
!oo ablo 04. lnLroduo aos AlgorlLmos 2
Lg|ca no D|a-a-D|a
Sempre que alguem pensa, esLe alguem
necessarlamenLe esL acompanhado pela lglca.
CuLra manlfesLao da lglca esL na fala e na escrlLa,
pols ambos so represenLaes do pensamenLo
humano.
Alguns exemplos de proposles lglcas:
! #$%&'$ &(') *&+,$-$. ! /$0$ &(') 1$ #$%&'$. 2 34&+5(6
3457&546 $/454 $ #$%&'$8 3$4$ -&365( 3&#$4 $ /$0$.
96:6 ; 7$5( %&0,6 <=& 96(;. 96(; ; 7$5( %&0,6 <=& >&-46.
?6#68 96:6 ; 7$5( %&0,6 <=& >&-46.
96:68 96(; & >&-46 764$7 @=1'6(. 96:6 & 96(; 1:6
<=&/4$4$7 6 %$(6 -& 364+&0$1$. A=&7 <=&/46= 6 %$(6B
!oo ablo 04. lnLroduo aos AlgorlLmos 3
A|gor|tm|zao da Lg|ca
A consLruo de algorlLmos e o ob[euvo fundamenLal
de Loda a programao de compuLadores, podendo ser
denldo como uma sequncla de passos que vlsam
aunglr um ob[euvo bem denldo.
Crdem de ensamenLo e, porLanLo, Lglca.
AlgorlLmos so relauvamenLe comuns no coudlano das
pessoas, por exemplo:
C7$ 4&+&5'$ -& /606 -&(+4&%& 6( 51#4&-5&1'&( & =7$
(&<=D1+5$ -& 3$((6( 3$4$ <=& (& +61(5#$ *$E&4 6 /606.
C7 7$3$ $34&(&1'$ =7$ (&<=D1+5$ -& 76%57&1'6(
1&+&(()456( 3$4$ (& +,&#$4 $6 -&(F16.
!oo ablo 04. lnLroduo aos AlgorlLmos 4
Conce|tos Comp|ementares
uma ao e um aconLeclmenLo que a parur de um
esLado lnlclal, aps um perlodo de Lempo nlLo, produz
um esLado nal prevlslvel e bem denldo.
um esLado e a slLuao aLual do ob[eLo.
uesLa forma, algorlLmos pode ser redenldo como a
descrlo de um con[unLo de aes que, obedecldas,
resulLam numa sucesso nlLa de passos, aunglndo um
ob[euvo.
vla de regra, um algorlLmo desuna-se a resolver um
problema.
llxa um padro de comporLamenLo a ser seguldo, com
vlsLas a alcanar, como resulLado, a soluo do
problema.
!oo ablo 04. lnLroduo aos AlgorlLmos 3
adro de Comportamento
Cbserve a segulnLe sequncla numerlca:
0, 1, 1, 2, 3, 3, 8, 13, 21,...
Cual e o declmo elemenLo?
ara soluclonar o problema, preclsa-se ldenucar a
regra de formao enLre os numeros, ou se[a, o seu
padro de comporLamenLo.
uma vez denldo o padro de comporLamenLo e
posslvel calcular o declmo elemenLo e qualquer ouLro
elemenLo dese[ado.
!oo ablo 04. lnLroduo aos AlgorlLmos 6
Sequenc|ao em A|gor|tmos
Suponha a necessldade de descrever como se Lroca
uma lmpada. 1al procedlmenLo levarla a segulnLe
sequncla de passos.
Sequenclao e uma conveno que ob[euva reger o
uxo de execuo, denlndo qual ao vem a segulr.
1al uxo esLabelece uma ordem sequenclal de
execuo, Lambem chamada de esLruLura sequenclal.
!oo ablo 04. lnLroduo aos AlgorlLmos 7
Passo 01: pegue uma escada;
Passo 02: posicione-a embaixo da lmpada;
Passo 03: busque uma lmpada nova;
Passo 04: suba na escada;
Passo 05: retire a lmpada velha;
Passo 06: coloque a lmpada nova.
Se|eo em A|gor|tmos (1)
Suponha agora um renamenLo para o problema da
Lroca de lmpada. A lmpada s deve ser Lrocada se
esuver quelmada.
no algorlLmo anLerlor esLa slLuao no esL prevlsLa,
logo, a lmpada serla Lrocada mesmo que esuvesse em
boas condles.
!oo ablo 04. lnLroduo aos AlgorlLmos 8
Passo 01: ligue o interruptor;
Passo 02: se a lmpada no acender, ento:
Passo 03: pegue uma escada;
Passo 04: posicione-a embaixo da lmpada;
Passo 05: busque uma lmpada nova;
Passo 06: suba na escada;
Passo 07: retire a lmpada velha;
Passo 08: coloque a lmpada nova.
Se|eo em A|gor|tmos (2)
C algorlLmo renado lnclulu uma seleo, baseada em
uma condlo, a qual deLermlna se as aes
subsequenLes sero ou no execuLadas.
LsLe LesLe condlclonal que permlLe ou no que o uxo
de execuo passe por um deLermlnado con[unLo de
aes e Lambem chamado de esLruLura de seleo.
Ao lnclulr uma esLruLura de seleo em um algorlLmo
deve-se observar:
qual o ponLo umo para reallzao da seleo, asslm
evlLa-se aes desnecessrlas,
qual as condles cerLa para LesLar, evlLando que ocorra
algum desvlo lndese[ado no uxo de execuo.
!oo ablo 04. lnLroduo aos AlgorlLmos 9
kepeno em A|gor|tmos (1)
Segulndo a ldela de renar o problema da Lroca de
lmpadas, suponha que se[a necessrlo revlsar e Lrocar
as lmpadas de uma casa Loda.
novamenLe o algorlLmo no aLende lnLegralmenLe, pols
ele descreve a Lroca de uma lmpada e no a Lroca de
vrlas lmpadas.
Sabe-se que os passos para Lroca de lmpadas so
sempre os mesmos, logo, uma alLernauva serla repeur
o uxo de execuo LanLas vezes quanLas fossem as
lmpadas exlsLenLes na casa.
Agora consldera que no e posslvel saber a quanudade
de lmpadas da casa. Como resolver o problema?
!oo ablo 04. lnLroduo aos AlgorlLmos 10
kepeno em A|gor|tmos (2)
Cbserve que o prlmelro passo do algorlLmo dene um
bloco de repeuo, o qual lmpe que o uxo
subsequenLe se[a reexecuLado aLe o LesLe falhar.
A capacldade de fazer com que um Lrecho do uxo de
aes se[a execuLado dlversas vezes Lambem e
chamado de esLruLura de repeuo.
!oo ablo 04. lnLroduo aos AlgorlLmos 11
Passo 01: enquanto existir lmpadas no verificadas, faa:
Passo 02: ligue o interruptor;
Passo 03: se a lmpada no acender, ento:
Passo 04: pegue uma escada;
Passo 05: posicione-a embaixo da lmpada;
Passo 06: busque uma lmpada nova;
Passo 07: suba na escada;
Passo 08: retire a lmpada velha;
Passo 09: coloque a lmpada nova.
kepeno em A|gor|tmos (3)
As repeues podem Ler formas dlferencladas:
G&('& 16 H1I+56, prlmelro se LesLa e depols se execuLa o
uxo.
G&('& 16 J57, prlmelro se execuLa o uxo e depols se
LesLa a condlo de repeuo.
H'&4$KL&( M&N15-$(, no h LesLes e o uxo e repeudo um
numero de vezes denldo a prlorl.
Ao uullzar repeues deve-se observar:
qual a forma de repeuo mals lnLeressanLe para o
problema,
quals aes devem car denLro e quals devem car fora
da repeuo.
!oo ablo 04. lnLroduo aos AlgorlLmos 12
Aspectos Importantes (1)
Comp|ex|dade
A complexldade pode ser encarada com slnnlmo de
varledade.
A varledade represenLa uma quanudade de slLuaes
dlferenLes que um problema pode apresenLar.
ara cada slLuao deve se Ler uma soluo prevlsLa.
Invesngao
uma das malores responsvels pelo aumenLo da
complexldade e a forma errnea de lnvesugar um
problema.
ueve-se sempre buscar resposLas ob[euvas e dlreLas
sobre as slLuaes envolvldas no problema.
!oo ablo 04. lnLroduo aos AlgorlLmos 13
Aspectos Importantes (2)
Leg|b|||dade
Mede a capacldade de compreenso do algorlLmo por
qualquer observador.
LsL relaclonado com a clareza com que sua lglca esL
exposLa.
ortab|||dade
LxlsLem uma grande varledade de llnguagens de
programao, cada um com suas caracLerlsucas.
AlgorlLmos so por denlo porLvels, ou se[a, as
solues esLabelecldas no dependem de Lecnologla.
CosLuma-se usar uma llnguagem de absLrao chamado
seudocdlgo.
!oo ablo 04. lnLroduo aos AlgorlLmos 14
rocesso para Construo de A|gor|tmos (1)
asso 1: ?&4 $'&1'$7&1'& 6 &1=1+5$-6.
L [usLamenLe o enunclado do problema que fornece o
encamlnhamenLo necessrlo para a resoluo do
problema.
asso 2: O&F4$4 -6 &1=1+5$-6 $( &1'4$-$( -& -$-6(.
Ao explorar o enunclado se pode descobrlr quals os
dados devem ser fornecldos, a parur dos quals a soluo
e encamlnhada.
asso 3: O&F4$4 -6 &1=1+5$-6 $( ($I-$( -& -$-6(.
Ao explorar o enunclado se pode descobrlr quals os
dados devem ser emludos para compor um resulLado
nal, o ob[euvo do algorlLmo.
!oo ablo 04. lnLroduo aos AlgorlLmos 13
rocesso para Construo de A|gor|tmos (2)
asso 4: M&'&4751$4 6 <=& -&%& (&4 *&5'6 3$4$
'4$1(*647$4 &1'4$-$( &7 ($I-$(.
nesLe passo se d a consLruo do algorlLmo
proprlamenLe dlLo.
A parur dos requlslLos ldenucados, faz-se necessrlo
esLabelecer a sequncla de aes necessrlas para
resolver o problema.
Como ferramenLa auxlllar se pode usar um dos segulnLes
meLodos:
MeLodo CarLeslano,
Lngenharla 8eversa,
1abela de ueclso.
!oo ablo 04. lnLroduo aos AlgorlLmos 16
rocesso para Construo de A|gor|tmos (3)
asso 3: P61('4=54 6 $0#645'76.
Com base no conheclmenLo adqulrldo sobre o problema
e as alLernauvas de soluo levanLadas para esLe, pode-
se escrever o algorlLmo.
asso 6: QR&+='$4 6 $0#645'76.
lmpllca em execuLar Lodas as aes descrlLas segulndo o
uxo esLabelecldo no algorlLmo.
A cada lnsLruo, as aes e os resulLados so
verlcados, garanundo o correLo funclonamenLo.
Cuando so ldenucados erros nos resulLados, a soluo
deve ser redenlda.
LsLa auvldade Lambem e chamada de 1esLe de Mesa.
!oo ablo 04. lnLroduo aos AlgorlLmos 17
Mtodo Cartes|ano
C meLodo carLeslano e baseado no prlnclplo da dlvlso
e conqulsLa.
LsLe meLodo conslsLe em aLacar um problema
complexo, dlvldlndo-o em problemas menores, logo,
mals fcels de resolver.
assos do meLodo:
asso 1: -5%5-54 6 346/0&7$ &7 (=$( 3$4'&( 3451+53$5(S
asso 2: $1$05($4 $ -5%5(:6 3$4$ #$4$1F4 +6&4D1+5$S
asso 3: (& $0#=7$ 3$4'& 1:6 *64 /&7 +6734&&1-5$8
$305+$4 6 7;'6-6 1$ 3$4'&S
asso 4: $1$05($4 6 6/@&'6 3$4$ #$4$1F4 &1'&1-57&1'6 &
+6&4D1+5$.
!oo ablo 04. lnLroduo aos AlgorlLmos 18
Lngenhar|a keversa
rocesso mulLo uullzado na rea Lecnlca.
ossul a nalldade de deLermlnar o maLerlal de
consLruo e a sequncla de monLagem a parur do
produLo dese[ado.
C produLo exlsLe e e desmonLado aLe chegar nos seus
componenLes mals bslcos.
no caso dos algorlLmos o produLo e o resulLado, em
ouLras palavras, as lnformaes de salda.
A parur do resulLado pode-se deLermlnar reversamenLe
os dados de enLradas, bem como as eLapas de
Lransformao desLes dados.
!oo ablo 04. lnLroduo aos AlgorlLmos 19
1abe|as de Dec|so
Cb[euva baslcamenLe relaclonar as aes que
dependem de alguma condlo com as prprlas
condles.
uesLa forma se pode esclarecer e vlsuallzar facllmenLe
quals valores o con[unLo de condles deve assumlr
para que se efeLue sua respecuva ao.
Sua apllcao se d prlnclpalmenLe na consLruo das
segulnLes esLruLuras:
seleo,
repeuo com LesLe no lnlclo,
repeuo com LesLe no m.
!oo ablo 04. lnLroduo aos AlgorlLmos 20

Você também pode gostar