Sie sind auf Seite 1von 144

!"#$%&'&($) + ,%$#%!(!-.

$ &
Algoritmos e programao I.indd 1 7/8/2013 16:00:32
Process Black
Obra organizada eIa Universidade Lulerana do rasiI.
Informamos que e de inleira resonsabiIidade dos aulores a
emisso de conceilos.
Nenhuma arle desla ubIicao odera ser reroduzida or
quaIquer meio ou forma sem a revia aulorizao da Idilora
da ULRA.
A vioIao dos direilos aulorais e crime eslabeIecido na Lei n .610/98
e unido eIo Arligo 184 do Cdigo IenaI.
ConseIho IdiloriaI IAD
Dris Crislina Gedral
Thomas Heimman
Mara SaIazar Machado
Andrea de Azevedo Iick
Aslomiro Romais
Setor de Processamento Tcnico da Biblioteca Martinho Lutero - ULBRA/Canoas
Dados Internacionais de Catalogao na Publicao (CIP)
I74a Isaia Filho, Eduardo.
Algoritimos e programao I / Eduardo Isaia Filho, Vanessa Lindemann.
Canoas: Ed. ULBRA, 2013.
144p.
1. Algoritmo. 2. Programao. 3. Computao. 4. Informtica.
I. Lindemann, Vanessa. II. Ttulo.

CDU: 681.3.421.2
Idilorao: RoseIi Menzen
Dados lecnicos do Iivro
Ionles: IaIalino Linolye, IrankIin Golhic Demi Cond
IaeI: osel 75g (mioIo) e suremo 240g (caa)
Medidas: 15x22cm
ISBN 978-85-7528-510-7
Algoritmos e programao I.indd 2 7/8/2013 16:00:54
Process Black
!,%+)+/'!-.$
Irezado(a) aIuno(a)
Se|a bem-vindo(a) ao esludo da disciIina de AIgorilmos e Irogramao I!
Isla disciIina inlroduz o aIuno no universo da Igica de rogramao, de forma
que no finaI do semeslre voc eslara caacilado a conslruir aIgorilmos. Iara isso,
vamos esludar conceilos basicos como lios de dados, variaveis, conslanles,
oeradores e exresses, formas de reresenlao de aIgorilmos e, or fim,
eslruluras de conlroIe sequenciaI, de seIeo e de reelio. A disciIina lambem
rev uma inlroduo a Iinguagem de rogramao C, ossibiIilando que voc
vaIide os aIgorilmos conslruidos duranle o semeslre.
Um aIgorilmo ode ser definido como uma sequncia de assos que visam alingir
um ob|elivo. AIgorilmos so comuns no nosso colidiano como, or exemIo, uma
receila de boIo. NeIa lemos uma Iisla de ingredienles e uma sequncia de assos que
devem ser seguidos ara alingirmos o ob|elivo finaI: o boIo. Quando conslruimos
um aIgorilmo, devemos esecificar aes cIaras e recisas, que a arlir de um eslado
iniciaI, as um eriodo de lemo finilo, roduzem um eslado finaI revisiveI e bem
definido. Isso significa que um aIgorilmo define um adro de comorlamenlo a
ser seguido visando resoIver um robIema, garanlindo que semre que execulado,
sob as mesmas condies, roduza o mesmo resuIlado.
O rinciaI ob|elivo do esludo da Igica de rogramao e a conslruo de
aIgorilmos. Um aIgorilmo reresenla o raciocinio envoIvido na Igica de
rogramao e, dessa forma, ermile-nos abslrair delaIhes comulacionais
alreIados as Iinguagens de rogramao que odem ser acrescenlados mais
larde. Assim, odemos focar nossa aleno naquiIo que e imorlanle: a Igica
da conslruo de aIgorilmos. VaIe Iembrar que: uma vez concebida uma soIuo
aIgorilmica ara um robIema, esla ode ser lraduzida ara quaIquer Iinguagem
de rogramao (rocesso denominado codificao).
O Iivro lexlo desla disciIina esla organizado em dez cailuIos, subdivididos
em sees, ara faciIilar sua Ieilura e comreenso e favorecer a reaIizao das
alividades rooslas ao finaI de cada cailuIo.
Algoritmos e programao I.indd 3 7/8/2013 16:00:55
Process Black
0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
S e ossiveI arender a conslruir aIgorilmos, conslruindo aIgorilmos! Iorlanlo,
resoIver os exercicios rooslos no finaI de cada cailuIo e fundamenlaI ara
desenvoIver o raciocinio Igico e alingir o ob|elivo desla disciIina. A disciIina
ossui conleudos cumuIalivos, ou se|a, no finaI do semeslre ainda eslaremos
uliIizando conceilos esludados nas rimeiras semanas de auIa. Sendo assim, e
imorlanle organizar o esludo, resoIver os robIemas rooslos eriodicamenle
e no deixar as duvidas ara deois.
As referncias bibIiograficas sugerem obras de aulores que fundamenlam os
esludos reaIizados e oferecem a voc ossibiIidades de arofundamenlo com
Ieiluras comIemenlares.
Um bom lrabaIho!

"#$%&''$#( )(*&''( +,*-&.(**
Algoritmos e programao I.indd 4 7/8/2013 16:00:55
Process Black
)$2%+ $ !1'$%
+457A4: &=7<7 B<CD:
Meslre, Coordenador dos Cursos de Comulao da ULRA unidade Canoas.
Irofessor liluIar da disciIina de AIgorilmos e Irogramao I resenciaI.
E7@F==7 "<@4FG7@@
Meslre em Cincia da Comulao - UIRGS - 2002, Doulora em Informalica
na Iducao - UIRGS - 2008. Irofessora dos cursos de Comulao da ULRA
Canoas.
Algoritmos e programao I.indd 5 7/8/2013 16:00:55
Process Black
H
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Algoritmos e programao I.indd 6 7/8/2013 16:00:55
Process Black
)1(I%&$
J &/'%$;1-.$ KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKL
JKJ M:@6F<>: 4F 7CN:A<>G: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKL
JKO M:@=>A589: 4: 7CN:A<>G: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJP
JKQ B:AG7= 4F AFRAF=F@>789: 4F 7CN:A<>G:=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJJ
JK0 +=>A5>5A7 ST=<67 4F 5G 7CN:A<>G: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJU
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJW
O M$/M+&'$) B1/;!(+/'!&) KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJL
OKJ ;74:= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJL
OKO E7A<TVF<= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKOP
OKQ M:@=>7@>F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKOO
OK0 +XRAF==YF= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKOO
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKOH
Q &/)'%1-Z+) ,%&(&'&E!) KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKOL
QKJ &@=>A589: RA<G<><V7 4F 7>A<S5<89: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKOL
QKO &@=>A589: RA<G<><V7 4F =7[47 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKQO
QKQ &@=>A589: RA<G<><V7 4F F@>A747 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKQ0
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKQH
0 +)'%1'1%! )+\1+/M&!" KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKQL
0KJ +=>A5>5A7 ST=<67 4F 5G 7CN:A<>G: =F]5F@6<7C KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKQL
0KO +XFGRC: 4F 5G 7CN:A<>G: 6:G F=>A5>5A7 =F]5F@6<7C KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0P
0KQ M:@=>A589: 4F 7CN:A<>G:= =F]5F@6<7<= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0O
0K0 'F=>F 4F GF=7 4F 7CN:A<>G:= 6:G F=>A5>5A7 =F]5F@6<7C KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0H
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKUO
U +)'%1'1%! ;+ M$/'%$"+ M$/;&M&$/!"^ )+ KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKUQ
UKJ +=>A5>5A7 6:@4<6<:@7C )+ =<GRCF= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKUQ
UKO +=>A5>5A7 6:@4<6<:@7C )+ 6:GR:=>7 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKUU
UKQ +=>A5>5A7 6:@4<6<:@7C )+ F@674F747 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKUL
UK0 B:AG7>789: 47 =:C589: 4: 7CN:A<>G: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKHU
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKHH
Algoritmos e programao I.indd 7 7/8/2013 16:00:55
Process Black
_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
H +)'%1'1%! ;+ M$/'%$"+ M$/;&M&$/!"^ +)M$"`! KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKWQ
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKW_
W +)'%1'1%! ;+ M$/'%$"+ ;+ %+,+'&-.$^ +/\1!/'$ KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK_J
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKL0
_ +)'%1'1%! ;+ M$/'%$"+ ;+ %+,+'&-.$^ %+,&'! KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLL
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJPH
L +)'%1'1%! ;+ M$/'%$"+ ;+ %+,+'&-.$^ ,!%! KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK JJJ
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK JJW
JP &/'%$;1-.$ a "&/#1!#+( M KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJOJ
JPKJ &4F@><!674:AF= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJOO
JPKO '<R:= 4F 474:= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJOQ
JPKQ (:4FC74:AF= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJOQ
JPK0 ;F6C7A789:b <@<6<7C<c789: F F=6:R: 4F V7A<TVF<= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJO0
JPKU ;F!@<89: 4F 6:@=>7@>F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJO0
JPKH Md4<N:= 4F e:AG7>: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJOU
JPKW M7A76>FAF= F=RF6<7<= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJOW
JPK_ M:G7@4: 4F 7>A<S5<89: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJOW
JPKL $RFA74:AF= F e5@8YF= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJO_
JPKJP M:GF@>TA<:=KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJQP
JPKJJ B5@8YF= 4F F@>A747 F =7[47 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJQP
JPKJO +=>A5>5A7= 4F 6:@>A:CF 6:@4<6<:@7C KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJQJ
JPKJQ +=>A5>5A7= 4F 6:@>A:CF 4F AFRF><89: KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJQQ
!><V<474F= KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKJQW
Algoritmos e programao I.indd 8 7/8/2013 16:00:56
Process Black
J
&/'%$;1-.$

+457A4: &=7<7 B<CD:
Um rograma de comulador e resuIlado da alividade inleIecluaI de um
rogramador. Iara isso, so necessarios aIguns conhecimenlos revios em
abslrao, modeIagem de robIemas e Igica de rogramao. Todo rograma
de comulador comea a arlir de um aIgorilmo, ou se|a, alraves da organizao
Igica das inslrues que resoIvem o robIema. Nesle cailuIo, sero aresenlados
os conceilos inlrodulrios ara a conslruo de aIgorilmos, suas formas de
reresenlao, seus melodos de conslruo e sua eslrulura basica. Ior fim, so
rooslos aIguns exercicios de fixao.
JKJ M:@6F<>: 4F 7CN:A<>G:
Um aIgorilmo e uma sequncia de assos finilos que visam soIucionar um
delerminado robIema. Islamos acoslumados a resoIver aIgorilmos lodos os
dias, mas os fazemos de forma lo aulomalica que nem nos damos conla. Ior
exemIo: lrocar uma Imada, fazer um boIo, rearar um cafe assado, escovar
os denles, lrocar um neu, enlre oulros. Todas as alividades do nosso dia a dia que
ossuem uma sequncia de assos ara serem resoIvidas odem ser consideradas
um aIgorilmo.
Se uliIizarmos o exemIo do rearo de um cafe assado, leremos os seguinles
assos:
1 asso: reservar os ulensiIios !Ilro de cafe, chaIeira e reciienle ara coIocar o
cafe assado,
2 asso: reservar o de cafe e a agua,
3 asso: aquecer a agua,
Algoritmos e programao I.indd 9 7/8/2013 16:00:56
Process Black
JP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
4 asso: coIocar o de cafe no !Ilro,
5 asso: dese|ar a agua aquecida no !Ilro.
Se voc seguir esles assos, ao finaI, voc rovaveImenle lera um cafe assado.
O que ode ser observado e que aIguns desles assos odem ser aIlerados em
sua ordem. Ior exemIo, se reservarmos os ingredienles anles dos ulensiIios, no
leremos aIlerao no rodulo finaI. Iorem, se coIocassemos a agua no fiIlro com
cafe anles de aquec-Ia, o resuIlado seria indese|ado.
Um aIgorilmo comulacionaI ode ser definido como uma sequncia Igica
de inslrues ou comandos, que devem ser seguidas ara se obler a soIuo de
um robIema. Da mesma forma que um aIgorilmo do dia a dia, deve seguir
uma sequncia de assos Igicos, que devem ser ordenados de forma cIara ara
soIucionar o robIema.
JKO M:@=>A589: 4: 7CN:A<>G:
Iara conslruir um aIgorilmo, lemos que saber cIaramenle quaI o robIema que
dese|amos soIucionar, ou se|a, quaI o ob|elivo do aIgorilmo. Iara isso, recisamos
anaIisar o robIema idenlificando lrs eIemenlos basicos: enlrada, rocessamenlo
e saida.
A enlrada so os eIemenlos necessarios ara dar inicio a soIuo do robIema, o
rocessamenlo e a maniuIao dos eIemenlos de enlrada ara obleno da saida
e a saida e o resuIlado eserado. Se considerarmos o exemIo do cafe assado,
aresenlado anleriormenle, odemos idenlificar:
enlrada: !Ilro de cafe, chaIeira, reciienle ara coIocar o cafe assado, de
cafe e agua,
rocessamenlo: aquecer a agua, coIocar o no !Ilro e dese|ar a agua no
!Ilro,
saida: o cafe assado.
Se considerarmos os aIgorilmos comulacionais, odemos descrever esles
eIemenlos em:
enlrada de dados: so os dados que o aIgorilmo devera receber,
rocessamenlo de dados: so as frmuIas e a disosio Igica em que os dados
de enlrada sero organizados ara obler-se a soIuo do robIema,
saida de dados: e a aresenlao do ob|elivo, ou se|a, o resuIlado eserado.
Algoritmos e programao I.indd 10 7/8/2013 16:00:56
Process Black
JJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Ior exemIo, se dese|amos fazer um aIgorilmo ara fazer a soma de dois numeros
quaisquer, odemos nesle caso idenlificar:
enlrada de dados: ergunlar ao usuario dois numeros quaisquer,
rocessamenlo de dados: caIcuIar a soma dos numeros informados,
saida de dados: aresenlar o resuIlado da soma.
Semre que formos conslruir um aIgorilmo, devemos nos concenlrar nesles lrs
eIemenlos, eIes semre eslaro envoIvidos. Iorem, nem semre eslaro nesla
ordem, odendo variar de aIgorilmo ara aIgorilmo.
JKQ B:AG7= 4F AFRAF=F@>789: 4F 7CN:A<>G:=
Ixislem diversas formas de reresenlarmos os aIgorilmos. Denlre eIas, cilamos
aIgumas abaixo.
Linguagem naluraI: uliIiza uma descrio narraliva ara eseci!car os assos
a serem reaIizados ara execular a larefa. Ior no ossuir uma eslrulura bem
de!nida, ode dar margem ara mas inlerrelaes e ambiguidades.
Iorlugus eslrulurado: uliIiza uma Iinguagem eslrulurada e se assemeIha a um
rograma escrilo em Iinguagem de rogramao. Tambem e denominado de
seudocdigo e e baslanle uliIizado como asso iniciaI anles de descrever um
rograma em uma Iinguagem de rogramao. Nesla disciIina, o orlugus
eslrulurado sera a forma uliIizada ara reresenlar os aIgorilmos no decorrer
dos cailuIos.
IIuxograma: e uma forma universaI de reresenlao. UliIiza-se de !guras
geomelricas ara iIuslrar os assos a serem seguidos ara resoIuo de um
robIema.
Diagrama de Chain: e uma variao do "uxograma ermilindo ler-se uma
viso hierarquica e eslrulurada da Igica do aIgorilmo. Isla reresenlao e
ouco uliIizada nos dias de ho|e.
JKQKJ ,:A>5N5f= F=>A5>5A74:
O orlugus eslrulurado e um lio de reresenlao de aIgorilmo que uliIiza
uma Iinguagem fIexiveI, inlermediaria enlre a Iinguagem naluraI e Iinguagem de
rogramao. NormaImenle, e uliIizado ara organizar o raciocinio Igico anles
de imIemenlar o mesmo em uma Iinguagem de rogramao. Todo aIgorilmo
reresenlado em orlugus eslrulurado devera ler sua sinlaxe re-definida. O
exemIo 1.1 roe um robIema que sera resoIvido uliIizando um aIgorilmo em
orlugus eslrulurado.
Algoritmos e programao I.indd 11 7/8/2013 16:00:56
Process Black
JO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 1.1. Iaa um aIgorilmo que caIcuIe e escreva a media finaI de um aIuno
considerando duas nolas, emila a mensagem AIuno arovado ou AIuno
rerovado. Observao: um aIuno e considerado arovado se obliver nola finaI
maior ou iguaI a 6.
algoritmo exemplo_11
variveis
nota1, nota2, media: real
incio
escrever (Informe a 1 nota do aluno = )
ler (nota1)
escrever (Informe a 2 nota do aluno = )
ler (nota2)
media (nota1 + nota2) / 2
se (media >= 6) ento
escrever (Mdia final = , media, Aluno aprovado)
seno
escrever (Mdia final = ,media, Aluno reprovado)
fim
JKQKO BC5X:NA7G7
O fIuxograma, lambem chamado de diagrama de bIocos, e uma reresenlao de
aIgorilmo que uliIiza simboIos geomelricos ara reresenlar as aes (comandos
ou inslrues) a serem seguidas. Assim como orlugus eslrulurado, e uliIizado
ara organizar o raciocinio Igico do robIema anles de imIemenla-Io em uma
Iinguagem de rogramao. Os simboIos uliIizados ara reresenlar eslas aes
so aresenlados na TabeIa 1.1.
Algoritmos e programao I.indd 12 7/8/2013 16:00:56
Process Black
JQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
'7SFC7 JKJ 3 )[GS:C:= NF:Gg>A<6:=
5mbn!n Nnmc Dcscrin
TerminaI
Indica o inicio e o fim do fIuxo do
aIgorilmo.
Sela de fIuxo de dados
Indica o senlido do fIuxo de dados e faz
a conexo dos bIocos exislenles.
Inlrada de dados
Indica que sero recebidas informaes
alraves do lecIado.
Irocessamenlo
Indica a reaIizao de caIcuIos,
alribuies ou quaIquer maniuIao de
dados.
Saida de dados
Indica que as informaes sero exibidas
na leIa.
Desvio condicionaI
Indica a lomada de deciso, dividindo o
fIuxo do aIgorilmo em dois caminhos.
Coneclor Serve ara coneclar dois fIuxos.
Cabe deslacar que e ossiveI enconlrar formas geomelricas diferenles ara
reresenlar delerminados comandos e/ou inslrues. Inlrelanlo, isso e aenas
uma conveno ou habilo de cada aulor. O aIgorilmo do exemIo 1.1 reresenlado
alraves de um fIuxograma ode ser vislo a seguir.
Algoritmos e programao I.indd 13 7/8/2013 16:00:56
Process Black
J0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
JKQKQ ;<7NA7G7 4F MD7R<@
Os diagramas de Chain foram criados ara subsliluir os diagramas de bIocos
(fIuxograma) or um diagrama de quadros. A vanlagem de se uliIizar esle lio
de diagrama e a cIareza quanlo ao fIuxo de execuo e sua desvanlagem e que e
Algoritmos e programao I.indd 14 7/8/2013 16:00:57
Process Black
JU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
mais lrabaIhoso fazer desenhos do que escrever lexlo. O aIgorilimo do exemIo 1.1
reresenlado alraves de um diagrama de Chain ode ser vislo a seguir.
inicio
ler nota1, nota2
media (nota1 + nota2) / 2
S N
resultado Aprovado resultado Reprovado
escrever media, resuIlado
fim
JKQK0 B:AG7C<c789: 4F 5G 7CN:A<>G:
Conslruir um aIgorilmo consisle em delaIhar os dados que sero rocessados
e as inslrues que vo oerar sobre esses dados. Isla conslruo, como vislo
anleriormenle, ode ser feila or diferenles formas de reresenlaes, mas e
imorlanle formaIizarmos a descrio dos aIgorilmos segundo uma conveno
re-definida, ara que lodas as essoas envoIvidas no rocesso ossam enlend-
Ia. Iara isso, e necessario definir o con|unlo de regras que reguIam a escrila do
aIgorilmo (sinlaxe) e o con|unlo de regras que definem a inlerrelao desla
escrila (semnlica). Nos cailuIos seguinles, sero definidas a sinlaxe e a semnlica
uliIizadas nesla disciIina.
JK0 +=>A5>5A7 ST=<67 4F 5G 7CN:A<>G:
Observe a receila de boIo de chocoIale a seguir.
/$0$ -& 12$1$0(3&
4*5#&-,&*3&'6
7 8 $9$'
7 : & :;< =>1(#( -& (?@1(#
7 < =>1(#(' %(#,*2( -& 3#,5$
7 : =>1(#( -& 12$1$0(3& &. AB $C (12$1$0(3(-$
7 :;< =>1(#( -& B0&$
7 : 1$02&# -& %&#.&*3$ &. AB
media > 6
Algoritmos e programao I.indd 15 7/8/2013 16:00:58
Process Black
JH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
7 : A,3(-( -& '(0
7 : =>1(#( -& D5C( EC&*3&
F$-$ -& A#&A(#$6
:G /(3( $' $9$' 1$. $ (?@1(#H $ B0&$H $ (12$1$0(3(-$ & ( %(#,*2(H -&A$,' (-,1,$*& ( D5C(
EC&*3& & A$# @03,.$ $ %&#.&*3$ &. ABG
<G I''& &. %$#*$ 1$. 3&.A&#(3C#( .J-,( A$# KL .,*C3$'H -&'&*%$#.& EC&*3&G
Se observarmos com aleno, veremos que esla receila ossui uma eslrulura
basica: nome da receila, ingredienles e modo de rearo. Iodemos verificar que
esla eslrulura faciIila a IocaIizao da receila, ermile verificar se ossuimos lodos
os ingredienles, anles de comear o rearo.
Um aIgorilmo, reresenlado em orlugus eslrulurado, ossui uma eslrulura
baslanle semeIhanle a uma receila, organizada em lrs arles: idenlificao do
aIgorilmo, decIarao de conslanles e/ou variaveis e o coro do aIgorilmo. Observe
o exemIo 1.1, reroduzido novamenle a seguir.
AIgorilmo exemIo_11 4-&*3,%,1(-$# -$ (05$#,3.$
variaveis
nola1, nola2, media: reaI
M&10(#(?N$ -& 9(#,D9&,'
inicio
escrever ("Informe a 1 nola do aIuno ")
Ier (nola1)
escrever ("Informe a 2 nola do aIuno ")
Ier (nola2)
media (nola1 + nola2) / 2
se (media > 6) enlo
escrever ("Media finaI ", media, "AIuno arovado")
seno
escrever ("Media finaI ",media, "AIuno rerovado")
fim
O$#A$ -$ (05$#,3.$
Isla eslrulura faciIila a IocaIizao do aIgorilmo, ermilindo saber quais variaveis
e/ou conslanles sero usadas e como eIas sero maniuIadas ara obler o resuIlado
eserado.
#C:==TA<:
Irograma: e uma sequncia de inslrues que odem ser execuladas or
um comulador. I um con|unlo de ordens dadas a um comulador ara a
Algoritmos e programao I.indd 16 7/8/2013 16:00:58
Process Black
JW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
reaIizao de um delerminado rocesso. I a imIemenlao de um aIgorilmo
em uma delerminada Iinguagem de rogramao.
Linguagens de rogramao: so ferramenlas (sovares) que ermilem o
desenvoIvimenlo de rogramas. Iossuem um oder de criao iIimilado,
desde |ogos, edilores de lexlo, sislemas emresariais ale sislemas oeracionais.
Ixislem varias Iinguagens de rogramao, cada uma com suas caraclerislicas
rrias. IxemIos: IascaI, C, C++, C-, }ava e oulras.
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
!><V<474F=
1. Vamos conslruir aIguns aIgorilmos Descreva os assos necessarios ara
soIucionar os seguinles desa!os.
a. Descreva como voc lroca uma Imada.
b. Um camons recisa alravessar um rio uliIizando um barco com
caacidade ara carregar eIe mesmo e mais uma de suas lrs cargas,
que so: um Iobo, uma oveIha e um mao de aslo. Quais os assos
que o camons deve seguir ara alravessar o rio sem erder a sua
carga Sabendo que o Iobo come a oveIha e a oveIha come o aslo, ou
se|a, em momenlo aIgum o Iobo ode !car sozinho com a oveIha e a
oveIha !car sozinha com o aslo. DICA: rocure no GoogIe (vvv.
googIe.com.br) as aIavras |ogo camons oveIha aslo ou |ogo
aslor oveIha feno e lesle sua soIuo de maneira onIine.
Algoritmos e programao I.indd 17 7/8/2013 16:00:58
Process Black
J_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
c. Trs |esuilas e lrs canibais recisam alravessar um rio, ara isso
disem de um barco com caacidade ara duas essoas. Ior medida
de segurana, em nenhuma das margens do rio, o numero de canibais
ode ser maior que o numero de |esuilas. QuaI a soIuo ara efeluar
a lravessia de forma segura DICA: rocure no GoogIe (vvv.googIe.
com.br) as aIavras |ogo |esuilas canibais e lesle sua soIuo de
maneira onIine.
d. A Torre de Hani consisle em uma base com lrs inos, onde em
um deIes, eslo disoslos lrs discos uns sobre os oulros, em ordem
crescenle de dimelro, de cima ara baixo. Descreva como assar lodos
os discos de um ino ara oulro quaIquer, usando um dos inos como
auxiIiar, de maneira que um disco maior nunca !que em cima de oulro
menor em nenhuma siluao. DICA: rocure no GoogIe (vvv.googIe.
com.br) as aIavras |ogo lorre de hani e lesle sua soIuo de maneira
onIine.
e. Iedro ossui dois baIdes: um com caacidade ara comorlar 5 Iilros,
e oulro que comorla 3 Iilros. IIe no ossui oulros reciienles e os
baIdes no ossuem marcaes de voIume. Como Iedro, uliIizando
os dois baIdes, ode relirar exalamenle sele Iilros de agua de uma
fonle
1
Rcspnsta:
Incha o baIde de 5 Iilros e dese|e a agua no baIde de 3 Iilros, enchendo-o.
Agora, reslaram 2 Iilros no baIde de 5 Iilros. }ogue fora a agua do baIde de 3
Iilros e coIoque neIe os 2 Iilros que eslavam no baIde de 5 Iilros. A seguir, encha
o baIde de 5 Iilros novamenle e ronlo! No baIde de 3 Iilros eslo, agora, 2
Iilros de agua, enquanlo o baIde de 5 Iilros esla cheio, lolaIizando 7 Iilros!
Algoritmos e programao I.indd 18 7/8/2013 16:00:59
Process Black
O
M$/M+&'$) B1/;!(+/'!&)
+457A4: &=7<7 B<CD:
Nesle cailuIo, sero aresenlados os conceilos de dados, variaveis e conslanles,
os lios basicos de dados, os oeradores arilmelicos, reIacionais e Igicos. Ior fim,
so rooslos aIguns exercicios de fixao.
OKJ ;74:=
O ob|elivo da maioria dos aIgorilmos e maniuIar dados, lransformando os dados
de enlrada em dados de saida (resuIlados). Um dado e um alribulo que descreve
enlidades ou caraclerislicas, or exemIo: o nome de uma essoa, sua idade, seu
eso ou o numero de aginas de um Iivro.
Quando vamos desenvoIver um aIgorilmo, recisamos reviamenle idenlificar o
lio do dado que esla sendo maniuIado. Isso e necessario, ois, quando formos
converler o aIgorilmo ara uma Iinguagem de rogramao, os dados sero
armazenados na memria rinciaI do comulador e um esao de memria
esecifico (lamanho) deve ser reservado a cada lio de dado. Os rinciais lios
de dados so: inleiro, reaI, caraclere, cadeia e Igico.
OKJKJ '<R:= ST=<6:= 4F 474:=
Os lios de dados odem ser cIassificados de acordo com o lio de informao
conlida neIes: dados numericos (inleiros e reais), dados Iilerais (caraclere e cadeia)
e dados Igicos.
Inleiro: os dados do lio inleiro erlencem ao con|unlo de numeros inleiros
reIalivos, ou se|a, so aqueIes que no ossuem comonenles decimais ou
fracionarios, odendo ser osilivos, nuIos ou negalivos. IxemIos: quanlidade
Algoritmos e programao I.indd 19 7/8/2013 16:00:59
Process Black
OP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
de aIunos em uma lurma (aIunos 24), idade de uma essoa (anos 25), o ano
(ano 2013), oulros.
ReaI: os dados do lio reaI erlencem ao con|unlo dos numeros reais. Iorlanlo,
odem ler comonenles decimais ou fracionarios e ser osilivos, nuIos ou
negalivos. IxemIos: o saIario de uma essoa (saIario 3.450,34), a lemeralura
(lemeralura 12), a aIlura de um redio (aIlura 120,50), oulros.
Caraclere: os dados do lio caraclere so comoslos or um unico caraclere
aIfanumerico (0..9, A..Z, a..z) ou caraclere eseciaI (-, , , , , >, ...). Os dados
do lio caraclere so deIimilados or asas. IxemIos: cdigo de acesso a um
sislema (cdigo -), resosla a uma ergunla (resosla S), seIeo enlre
aIlernalivas (aIlernaliva a), o sexo de uma essoa (sexo M).
Cadeia: os dados do lio cadeia so formados or um con|unlo de caracleres
aIfanumericos (0..9, A..Z, a..z) e/ou caracleres eseciais (-, , , , , >, ...).
Os dados do lio cadeia so deIimilados or asas. IxemIos: nome de um
funcionario (nome AIberlo MaIazovski), endereo de um cIienle (rua Av.
}uIio de CasliIhos, 990), senha de acesso a um sislema (senha 9125ax),
oulros.
Lgico: um dado do lio Igico s ode assumir dois eslados: verdadeiro ou
faIso. IxemIos: resosla verdadeiro (ou, simIesmenle resosla v), lesle
faIso (ou, simIesmenle lesle f).
OKO E7A<TVF<=
Uma variaveI ode ser definida como um IocaI, na memria rinciaI, uliIizado
ara armazenar o conleudo de um delerminado dado, odendo receber muilos
vaIores diferenles duranle a execuo do aIgorilmo, mas em um dado inslanle eIa
s ode aresenlar um vaIor unico.
O conceilo de variaveI foi criado ara ermilir, que alraves do nome (idenlificador),
os aIgorilmos ossam armazenar, IocaIizar e maniuIar as informaes na
memria dos comuladores. So, orlanlo, formadas or lrs alribulos: um nome
(idenlificador), um lio de dado, e um vaIor.
Toda variaveI ossui um nome unico que a diferencia das demais. A escoIha do
nome de uma variaveI cabe ao rogramador, orem aIgumas regras devem ser
observadas. So eIas:
devem semre comear com uma Ielra,
odendo ser seguida de Ielras e/ou numeros,
Algoritmos e programao I.indd 20 7/8/2013 16:00:59
Process Black
OJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
no e ermilido esaos em branco, caso ha|a necessidade de searador o
subIinhado baixo (C*-&#'1$#&) ode ser uliIizado, exemIo: nome_aIuno,
no e ermilido uliIizar simboIos, oeradores, acenlos e caracleres eseciais,
or exemIo: , , -, +, /, , ,
no e ermilido uliIizar uma aIavra reservada, ou se|a, uma aIavra que e
um comando do aIgorilmo.
IxemIos de nomes de variaveis:
SaIario : correlo,
1ANO : errado, ois no comeou com uma Ielra,
ANO1 : correlo,
a casa : errado, ois conlem o esao em branco,
SAL/HORA : errado, ois conlem o caracler /,
SAL_HORA : correlo,
_DISCONTO : errado, ois no comeou com uma Ielra.
Uma considerao imorlanle quanlo ao nome das variaveis e que esle deve ser
um nome reresenlalivo, de forma que ao Ier o nome da variaveI se|a ossiveI
Iembrar o que eIa armazena.
OKOKJ )<@>7XF 47 4F6C7A789: 4F V7A<TVF<=
Todas as variaveis uliIizadas em um aIgorilmo devem ser decIaradas anles de
serem uliIizadas, alraves da definio de um nome (idenlificador) e do lio de
dado que sera armazenado neIa. A seguir ve|a como e a sinlaxe da decIarao de
uma variaveI:
variveis
<nome da varivel ou lista de nomes> : <tipo de dado>

Excmp!n
variveis
nome, endereco: cadeia
idade: inteiro
peso, altura: real
Algoritmos e programao I.indd 21 7/8/2013 16:00:59
Process Black
OO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
OKQ M:@=>7@>F=
Ao conlrario das variaveis, o conleudo armazenado em uma conslanle no e
aIlerado duranle a execuo de um aIgorilmo.
OKQKJ )<@>7XF 47 4F6C7A789: 4F 6:@=>7@>F=
As conslanles lambem so definidas anles de serem uliIizadas e seus nomes
(idenlificadores) seguem as mesmas regras das variaveis. A seguir ve|a como e a
sinlaxe da decIarao de uma conslanle.
constantes
<nome da constante> = <contedo>
Excmp!n
constantes
pi = 3.1416
OK0 +XRAF==YF=
Oeradores so eIemenlos fundamenlais que, quando reIacionados com oerandos,
roduzem uma exresso. Ior exemIo, a exresso 3 + 2 reIaciona dois oerandos
(os numeros 3 e 2) or meio do oerador (+) que reresenla a oerao de adio.
Os oerandos dividem-se em arilmelicos, reIacionais e Igicos. Isla diviso esla
direlamenle reIacionada com o lio de exresso onde aarecem os oeradores.
OK0KJ +XRAF==YF= 7A<>Gg><67=
As exresses arilmelicas so formadas or variaveis numericas e oeradores
arilmelicos, cu|o resuIlado da avaIiao e do lio numerico (inleiro ou reaI). Os
oeradores arilmelicos e sua ordem de rioridade so aresenlados na TabeIa 2.1.
'7SFC7 OKJ 3 $RFA74:AF= 7A<>Gg><6:=
Opcradnr Opcran Prinridadc Excmp!n
Ixonenciao 1 3 2 9
// Radiciao 1 25 // 2 5
MuIliIicao 2 7 2 14
/ Diviso 2 20 / 4 5
div Quocienle da diviso inleira 2 20 div 6 3
mod Reslo da diviso inleira 2 20 mod 6 2
+ Adio 3 3 + 8 11
- Sublrao 3 30 12 18
Algoritmos e programao I.indd 22 7/8/2013 16:00:59
Process Black
OQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Como ode ser observado, nos aIgorilmos odemos uliIizar lrs oeradores
reIacionados a diviso, so eIes: /, div e mod. Vamos enlender quaI a diferena de
cada um deIes, reIembrando aIguns conceilos:
14 4
-12 3,5 quocienle
20
- 20
0 reslo da diviso
Observe que a diviso de 14 or 4 e a diviso lradicionaI, onde fracionamos o
quocienle ale oblermos um resuIlado nuIo ou uma dizima eridica. Ao uliIizarmos
os oeradores div e mod, eslamos fazendo a diviso inleira, ou se|a, devemos
encerrar o rocesso de diviso quando o quocienle necessilar ser fracionado. Ve|a
o exemIo da diviso inleira:
14 4
- 8 3 quoienle inleiro (div)
2 reslo da diviso inleira (mod)
Oulros exemIos so aresenlados na TabeIa 2.2.
'7SFC7 OKO 3 +XFGRC:= 4F 4<V<=9:b 4<V F G:4
10 / 2 5
10 div 2 5
10 mod 2 0
20 / 3 6,666...
20 div 3 6
20 mod 3 2
105 / 10 10,5
105 div 10 10
105 mod 10 5
32 / 6 5, 333...
32 div 6 5
32 mod 6 2
A rioridade enlre os oeradores define a ordem em que os mesmos devem ser
execulados denlro de uma mesma exresso. Quando ha dois ou mais oeradores
de mesma rioridade em uma exresso, a execuo se da da esquerda ara
direila. Iara aIlerar a ordem em que os oeradores so execulados, ode-se uliIizar
arnleses, or exemIo:
(2 + 3) 2
5 2
10
2 + 3 2
2 + 6
8
Temos que ler um cuidado eseciaI quando converlemos uma exresso malemalica
ara uliIiza-Ia em um aIgorilmo. Considere a exresso a seguir.
3 + 5
2
Algoritmos e programao I.indd 23 7/8/2013 16:00:59
Process Black
O0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Iodemos observar que o resuIlado desla exresso e 4, ois rimeiro somamos 3
e 5 e deois dividimos or 2. Quando converlemos a exresso ara uliIizarmos
em um aIgorilmo, lemos que ler cuidado com a rioridade dos oeradores, um
rogramador desalenlo oderia muilo bem, converler a exresso malemalica ara
3 + 5 / 2. Observe que agora o resuIlado e 5,5 diferenle da exresso originaI, ois
o oerador riorilario e a diviso e no a soma, ou se|a, rimeiro iriamos dividir
5 or 2, ara somenle deois somarmos a 3. Quando converlemos uma exresso
malemalica, ara uliIizarmos nos aIgorilmos, normaImenle, leremos que adicionar
arnleses ara delerminar a rioridade de execuo. A converso correla ara
exresso e (3 + 5) / 2.
OK0KO +XRAF==YF= CdN<67=
As exresses Igicas lm como resuIlado um vaIor Igico (verdadeiro/V ou
faIso/I). IIas odem ser formadas or oeradores reIacionais, oeradores Igicos
ou eIa combinao de ambos.
!"#"!"$ &'()*+,)(- )(.*/0,1*0-
Isles oeradores, Iislados na TabeIa 2.3, so uliIizados quando se dese|a efeluar
comaraes enlre ob|elos de mesma nalureza (variaveis do mesmo lio de dado).
O resuIlado de uma comarao e semre um vaIor Igico (verdadeiro ou faIso).
'7SFC7 OKQ 3 $RFA74:AF= AFC76<:@7<=
Opcradnr Cnmparan Excmp!n
IguaI 3 2 faIso
> Diferenle 10 > 20 verdadeiro
Menor 4 18 verdadeiro
> Maior 10 > 20 faIso
Menor ou iguaI 4 7 verdadeiro
> Maior um iguaI 7 > 7 verdadeiro
!"#"!"! &'()*+,)(- .230/,-
Os oeradores Igicos ou booIeanos lambem resuIlam em vaIores Igicos e,
normaImenle, so usados ara combinar exresses reIacionais. Os oeradores
Igicos e suas reIaes de recedncia so moslrados na TabeIa 2.4.
Algoritmos e programao I.indd 24 7/8/2013 16:00:59
Process Black
OU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
'7SFC7 OK0 3 $RFA74:AF= CdN<6:=
Opcradnr Opcran Prinridadc Excmp!n
NO Negao 1 no(2>7) no(I) V
I Con|uno 2 (22) e (37) (V) e (V) V
OU Dis|uno 3 (25) ou (920) (I) ou (V) V
Se considerarmos duas variaveis, reresenladas or !"#$%!&'( e !"#$%!&'), odemos
descrever as lrs oeraes Igicas a seguir:
* !"#$%!&'( I !"#$%!&'): o oerador I resuIla em verdadeiro somenle se ambas
variaveis forem verdadeiras. Se uma for faIsa, ou se ambas forem faIsas, a
oerao I lambem sera faIsa.
* !"#$%!&'( OU !"#$%!&'): o oerador OU resuIla em verdadeiro se eIo menos
uma das variaveis for verdadeira. S resuIlam em vaIores faIsos se ambas
variaveis forem faIsas.
NO !"#$%!&'(: o oerador NO e unario, ou se|a, s se aIica a uma variaveI.
I avaIiado verdadeiro se a variaveI for faIsa, de modo conlrario, o oerador
NO resuIlara em faIso, se a variaveI for verdadeira.
A TabeIa 2.5, chamada de labeIa-verdade, exemIifica o uso dos oeradores Igicos,
considerando duas variaveis Igicas (A e ). Uma vez que uma variaveI Igica s
ode assumir dois vaIores (verdadeiro ou faIso), ha exalamenle qualro combinaes
ossiveis enlre A e . As coIunas conlm os resuIlados das oeraes Igicas sobre
as combinaes de A e .
'7SFC7 OKU 3 '7SFC7hVFA474F 4:= :RFA74:AF= CdN<6:=
A B Nn A Nn B A c B A nu B
V V I I V V
V I I V I V
I V V I I V
I I V V I I
Algoritmos e programao I.indd 25 7/8/2013 16:01:00
Process Black
OH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
!><V<474F=
1) Marque com um () somenle os idenli!cadores vaIidos.
a) ( ) nome b) ( ) endereo c) ( ) 3x4
d) ( ) soma e) ( ) saIario_Iiquido f) ( ) a
g) ( ) nomedaemresa h) ( ) ah! i) ( ) saIario lolaI
|) ( ) media k) ( ) x2 I) ( ) dala
2) Observe os dados Iislados a seguir e idenli!que o seu lio, marcando com I
os inleiros, R os reais e C as cadeias.
a) ( ) nome de uma essoa b) ( ) o lamanho de uma mesa
c) ( ) reo de um rodulo d) ( ) o numero de cadeiras de uma mesa
e) ( ) um dia do ms f) ( ) o cdigo de um rodulo
3) AssinaIe com um () a resosla cerla. Ao converlermos a exresso
3
y x ara
uliIizarmos em um aIgorilmo, como !ca a exresso
a) ( ) x//3 + y//3, b) ( ) x + y //3, c) ( ) (x + y) // 3, d) ( ) 3 // x+y.
4) QuaI o resuIlado da exresso 9 + 4 / 2 + 3
a) 9,5, b) 2,6, c) 14, d) 9,8, e) 9.
Algoritmos e programao I.indd 26 7/8/2013 16:01:00
Process Black
OW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
5) Considere as exresses Igicas e assinaIe (V) quando o resuIlado for
Verdadeiro e (I) quando o resuIlado for IaIso.
a) ( ) V e I ou V b) ( ) no (V e V) c) ( ) (V ou I ) e V d) ( ) no I e no I
Gabaritn:
1. As resoslas correlas so: a, d, f, g, k e I.
2. a) C, b) R, c) R, d) I, e) I, f) C
3. b
4. c
5. a) V, b) I, c) V, d) V
Algoritmos e programao I.indd 27 7/8/2013 16:01:01
Process Black
O_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Algoritmos e programao I.indd 28 7/8/2013 16:01:02
Process Black
Q
&/)'%1-Z+) ,%&(&'&E!)
E7@F==7 "<@4FG7@@
Inslrues rimilivas so comandos basicos uliIizados ara efeluar a enlrada e a
saida de dados e sua movimenlao na memria. Isles comandos, resenles na
maioria absoIula dos aIgorilmos, garanlem a comunicao do aIgorilmo com o
mundo exlerior. Nesle cailuIo, sero aresenladas as inslrues rimilivas de
alribuio, de enlrada de dados (comando LIR) e de saida de dados (comando
ISCRIVIR).
QKJ &@=>A589: RA<G<><V7 4F 7>A<S5<89:
A sinlaxe do comando de alribuio, reresenlado eIo simboIo , e aresenlada
a seguir e exemIificada nos Quadros 3.1 e 3.2.
<varivel> <expresso>
<varivel> <varivel>
<varivel> <constante>
Seu funcionamenlo consisle em avaIiar a exresso (variaveI ou conslanle) que
esla a direila do comando e armazenar o vaIor resuIlanle desla exresso (variaveI
ou conslanle) na osio de memria corresondenle a variaveI que aarece a
esquerda do comando. Iara isso, e necessario que o lio de dado resuIlanle da
exresso (variaveI ou conslanle) avaIiada e o lio de dado da variaveI se|am
comaliveis. No exemIo media 6.8 (I-se media recebe seis e oilo), o vaIor
6,8 e armazenado na osio de memria reservada a variaveI media, que devera
ser do lio reaI. Oulros exemIos da inslruo rimiliva de alribuio odem ser
observados no Quadro 3.1.
Algoritmos e programao I.indd 29 7/8/2013 16:01:02
Process Black
QP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: QKJ +XFGRC:= 47 <@=>A589: RA<G<><V7 4F 7>A<S5<89:
Dcc!aran dc varivcis Excmp!ns dc cnmandns dc atribuin
x, y: lgico
codigo, qtde: inteiro
desconto, total: real
nome, telefone: cadeia
resposta1: caractere
resposta2: caractere
01 x verdadeiro
02 y x
03 codigo 2089
04 qtde 3
05 total qtde * 5
06 desconto total * 0.1
07 nome "Ana Lu"
08 telefone "(99)3333-0123"
09 resposta1 "S"
10 resposta2 resposta1
As variaveis x e y foram decIaradas do lio Igico, enlo odem armazenar
os vaIores Igicos verdadeiro ou faIso. No exemIo 01, x recebe o vaIor Igico
verdadeiro. No exemIo 02, y recebe o vaIor armazenado na variaveI x, ou se|a, o
vaIor Igico verdadeiro.
As variaveis codigo e qtde, decIaradas como inleiro, s odem armazenar vaIores
do lio inleiro, como iIuslram os exemIos 03 e 04 do Quadro 3.1. No caso de uma
variaveI do lio reaI, esla odera armazenar lanlo vaIores reais (como iIuslra o
exemIo 06), quanlo vaIores inleiros. Isla siluao ode ser observada no exemIo
05, onde a variaveI total que e do lio reaI, recebe o resuIlado da exresso
qtde*5 que, nesle exemIo, resuIla em 15.
Os uIlimos exemIos do Quadro 3.1 iIuslram a alribuio de vaIores a variaveis
decIaradas como Iilerais. I imorlanle observar que quando as variaveis forem
do lio cadeia ou caraclere, a exresso a ser alribuida a variaveI deve eslar enlre
asas, como nos exemIos 07, 08 e 09. No exemIo 10, a variaveI resposta2 recebe
o vaIor armazenado na variaveI resposta1, ou se|a, um S.
Relomando a queslo da comalibiIidade de lio, deslaca-se que: (a) o resuIlado
de uma exresso com oeradores de diviso e/ou radiciao semre devera ser
armazenado em uma variaveI do lio reaI, como iIuslram os exemIos 03, 04 e 05
do Quadro 3.2, (b) os oeradores mod e div s odem ser uliIizados com oerandos
do lio inleiro, conforme exemIos 06 e 07 do Quadro 3.2, (c) o resuIlado de uma
exresso com oeradores mod e/ou div deve ser armazenado em uma variaveI do
lio inleiro siluaes lambem observaveis nos exemIos 06 e 07 do Quadro 3.2.
Algoritmos e programao I.indd 30 7/8/2013 16:01:02
Process Black
QJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: QKO +XFGRC:= 47 <@=>A589: RA<G<><V7 4F 7>A<S5<89:
Dcc!aran dc varivcis Excmp!ns dc cnmandns dc atribuin
op1, op2: inteiro
r1, r2, r3: real
r4, r5: inteiro
01 op1 10
02 op2 2
03 r1 op1 / op2
04 r2 18 / 4
05 r3 25 // 2
06 r4 8 mod 3
07 r5 op1 div 3
Nos exemIos 01 e 02 do Quadro 3.2, as variaveis op1 e op2 recebem,
reseclivamenle, 10 e 2. Im seguida, a variaveI r1 recebe o resuIlado da diviso de
op1 or op2 que, nesle caso, e 5. Como foi exIicado anleriormenle, indeendenle
do resuIlado da exresso ser inleiro ou no, a variaveI r1 foi decIarada do lio reaI
e ira armazenar esle resuIlado como reaI. O mesmo ocorre nos exemIos 04 e 05, em
que as variaveis r2 e r3 armazenam, reseclivamenle, os vaIores 4,5 (resuIlado de
uma diviso) e 5 (resuIlado de uma radiciao). O Quadro 3.3 iIuslra os resuIlados
dos exemIos 06 e 07, em que as variaveis r4 e r5 recebem, reseclivamenle, 2
(reslo da diviso) e 3 (quocienle inleiro).
\574A: QKQ +XFGRC: 4:= :RFA74:AF= G:4 F 4<V
r4 8 mod 3
8 3
- 6 2
2 reslo da diviso
r5 op1 div 3
10 3
- 9 3
1 quocienle inleiro
(a) IxemIo 06 - Quadro 3.2 (b) IxemIo 07 - Quadro 3.2
Ior fim, vaIe Iembrar que uma sequncia de alribuies modifica o conleudo da
variaveI armazenada na memria, como iIuslra o exemIo do Quadro 3.4.
\574A: QK0 +XFGRC: 4F 5G7 =F]5f@6<7 4F 7>A<S5<8YF=
Comandos de alribuio Memria
01 x 10
02 x x + 1
03 x 20
x
10
11
20
Algoritmos e programao I.indd 31 7/8/2013 16:01:02
Process Black
QO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
No exemIo 01 do Quadro 3.4 a variaveI x e iniciaIizada com o vaIor 10 e,
consequenlemenle, a reresenlao da variaveI x na memria armazenava 10, em
seguida, e alribuido a variaveI x o vaIor resuIlanle da exresso x + 1, que e 11,
subsliluindo o vaIor anlerior na memria, finaImenle, no exemIo 03, a variaveI
x recebe o vaIor 20, que subsliluiu o vaIor anlerior na memria como iIuslra o
Quadro 3.4.
O Quadro 3.5 aresenla um aIgorilmo que exemIifica o uso da inslruo
rimiliva de alribuio. Isle aIgorilmo lem or ob|elivo caIcuIar a media finaI
de um aIuno, considerando duas nolas. Iara isso, foram reaIizadas as seguinles
alribuies: a variaveI nota1 recebe 7, a variaveI nota2 recebe 9 e o resuIlado
da exresso que caIcuIa a media, (nota1+nota2)/2, e armazenado na
variaveI media.
\574A: QKU +XFGRC: 47 7RC<6789: 4: 6:G7@4: 4F 7>A<S5<89:
Excmp!n 3.1 - Ca!cu!a a mdia dc um a!unn, cnnsidcrandn duas nntas.
01 algoritmo exemplo31
02 variveis
03 nota1, nota2, media: real
04 incio
05 nota1 7
06 nota2 9
07 media (nota1 + nota2) / 2
08 fim
A soIuo do exemIo 3.1 aresenla duas Iimilaes significalivas: (a) a media do
aIuno e caIcuIada e armazenada na memria, orem no e exibida ara o usuario
do rograma, (b) se o rograma for execulado mais de uma vez, o resuIlado sera
semre o mesmo, ois os vaIores armazenados nas variaveis nota1 e nota2
ermanecem inaIlerados. Islas Iimilaes sero resoIvidas com o uso das inslrues
rimilivas de saida e de enlrada, reseclivamenle, conforme descrevem as sees
3.2 e 3.3.
QKO &@=>A589: RA<G<><V7 4F =7[47
A inslruo rimiliva de saida de dados lem or ob|elivo rover a inlerao enlre o
rograma e o usuario (ou oulros disosilivos), emilindo mensagens e/ou exibindo
vaIores armazenados em variaveis na memria do comulador.
A sinlaxe do comando de saida de dados e aresenlada a seguir e exemIificada
no Quadro 3.6. Como ode ser observado, o argumenlo da inslruo rimiliva
Algoritmos e programao I.indd 32 7/8/2013 16:01:02
Process Black
QQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
de saida ode ser uma unica variaveI, uma Iisla de variaveis, um IileraI ou uma
mislura de ambos.
escrever(<varivel>)
escrever(<lista de variveis>)
escrever(<literal>)
escrever(<literal>,<varivel>)
\574A: QKH +XFGRC:= 47 =<@>7XF 4: 6:G7@4: 4F =7[47
Varivcis Excmp!ns dc cnmandns dc sada
media: real
nome: cadeia
01 escrever(media)
02 escrever("Digite o nome do aluno: ")
03 escrever("Mdia final = ",media)
04 escrever(nome," obteve mdia final = ",media)
No exemIo 01 do Quadro 3.6, o comando de saida exibira aenas o vaIor
armazenado na variaveI media (considerando a variaveI media do exemIo 3.1,
o vaIor exibido seria 8). No segundo exemIo, o comando de saida conlem aenas
um IileraI, que sera reroduzido no disosilivo de saida. O exemIo 03 conlem um
IileraI (Media finaI ) e uma variaveI (media), searados or virguIa, resuIlando
em FJ-,( %,*(0 T U. Suondo que a variaveI nome armazene }oana e a variaveI media
armazene 8, a saida do exemIo 04 seria V$(*( $W3&9& .J-,( %,*(0 T U.
A aIicao do comando de saida ode ser observada no exemIo 3.2, que reescreve
a soIuo do exemIo 3.1 resoIvendo uma das Iimilaes ciladas anleriormenle.
Nesla soIuo, descrila no Quadro 3.7, a media do aIuno e caIcuIada e armazenada
na memria (Iinha 07) e, or fim, exibida ao usuario (Iinha 08).
\574A: QKW +XFGRC: 47 7RC<6789: 4F 6:G7@4:= 4F 7>A<S5<89: F =7[47 4F 474:=
Excmp!n 3.2 - Ca!cu!a a mdia dc um a!unn, cnnsidcrandn duas nntas.
01 algoritmo exemplo32
02 variveis
03 nota1, nota2, media: real
04 incio
05 nota1 7
06 nota2 9
07 media (nota1 + nota2) / 2
08 escrever ("Mdia do aluno = ", media)
09 fim
Algoritmos e programao I.indd 33 7/8/2013 16:01:02
Process Black
Q0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
QKQ &@=>A589: RA<G<><V7 4F F@>A747
A inslruo rimiliva de enlrada ermile que dados fornecidos eIo usuario via
lecIado (ou or oulros disosilivos) se|am armazenados em variaveis na memria
do comulador.
A sinlaxe do comando de enlrada de dados e exibida a seguir e exemIificada no
Quadro 3.8.
ler(<varivel>)
ler(<lista de variveis>)
\574A: QK_ +XFGRC:= 47 =<@>7XF 4: 6:G7@4: 4F F@>A747
Varivcis Excmp!ns dc cnmandns dc sada
nota1: real
nota2: real
nome: cadeia
01 ler(nome,nota1,nota2)
02 escrever("Digite o nome do aluno: ")
ler(nome)
escrever("Digite a primeira nota do aluno: ")
ler(nota1)
escrever("Digite a segunda nota do aluno: ")
ler(nota2)
No rimeiro exemIo do Quadro 3.8, as lrs variaveis so Iidas em um unico
comando de enlrada, sem nenhuma informao revia ao usuario sobre o que eIe
devera digilar. Ao conlrario, o exemIo 02 I uma variaveI de cada vez e, anles
de cada comando de enlrada, emile uma mensagem ao usuario indicando o que
deve ser informado ao rograma. Isla soIuo faciIila a inlerao do usuario com
o rograma, garanlindo que as informaes se|am fornecidas na ordem correla.
Relomando o exemIo que caIcuIa a media do aIuno, rooslo na seo 3.1, o
Quadro 3.9 aresenla a soIuo ideaI ara o robIema, incIuindo o comando de
enlrada ara resoIver a segunda Iimilao mencionada anleriormenle, com reIao
as variaveis nota1 e nota2 que ermaneciam inaIleradas, resuIlando semre o
mesmo vaIor ara media. Isle aIgorilmo inicia soIicilando que o usuario digile a
rimeira nola do aIuno (Iinha 05) e, em seguida, I o vaIor digilado e armazena na
variaveI nola1 (Iinha 06). O mesmo aconlece com a segunda nola (Iinhas 07 e 08).
A media do aIuno e caIcuIada e armazenada na variaveI media (Iinha 09) e, or
fim, exibida ao usuario (Iinha 10).
Algoritmos e programao I.indd 34 7/8/2013 16:01:03
Process Black
QU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: QKL +XFGRC: 47 7RC<6789: 4F 6:G7@4:= 4F 7>A<S5<89:b F@>A747 F =7[47
Excmp!n 3.3 - Ca!cu!a a mdia dc um a!unn, cnnsidcrandn duas nntas.
01 algoritmo exemplo33
02 variveis
03 nota1, nota2, media: real
04 incio
05 escrever("Digite a primeira nota: ")
06 ler(nota1)
07 escrever("Digite a segunda nota: ")
08 ler(nota2)
09 media (nota1 + nota2) / 2
10 escrever ("Mdia do aluno = ", media)
11 fim
Um rogramador deve se reocuar em faciIilar a inlerao do usuario com o
rograma. Inlo, e imorlanle uliIizar o comando de saida anles do comando
de enlrada, ara indicar o que o usuario deve digilar (como nas Iinhas 05 e 07
do exemIo 3.3). Oulro delaIhe imorlanle a ser observado e a aresenlao dos
resuIlados que deve conler, aIem do resuIlado em si, mensagens exIicando seu
significado (como aconlece na Iinha 10 do exemIo 3.3).
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
Algoritmos e programao I.indd 35 7/8/2013 16:01:03
Process Black
QH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
!><V<474F=
1) AssinaIe (V) ara as asserlivas Verdadeiras e (I) ara as IaIsas.
(a) ( ) Inslrues rimilivas so comandos basicos uliIizados ara
efeluar a enlrada e a saida de dados e sua movimenlao na
memria, resenles aenas em aIguns aIgorilmos.
(b) ( ) So inslrues rimilivas: o comando de alribuio, o comando
de enlrada de dados e o comando de saida de dados.
(c) ( ) O funcionamenlo do comando de alribuio consisle em avaIiar
a exresso, variaveI ou conslanle que esla a esquerda do
comando e armazenar o vaIor resuIlanle na osio de memria
corresondenle a variaveI que aarece a direila do comando.
(d) ( ) A inslruo rimiliva de saida de dados lem or ob|elivo
rover a inlerao enlre o rograma e o usuario (ou oulros
disosilivos).
(e) ( ) A inslruo rimiliva de enlrada ermile que dados fornecidos
eIo usuario via lecIado (ou or oulros disosilivos) se|am
armazenados em variaveis na memria do comulador.

2) Sobre a inslruo rimiliva de alribuio...
(I) O resuIlado de uma oerao de diviso semre deve ser armazenado
em uma variaveI decIarada do lio reaI, ois mesmo que o resuIlado
desla oerao se|a um vaIor inleiro (exemIo: 10 / 5, cu|o resuIlado
sera 2), esle sera armazenado como reaI.
(II) Os oerandos de uma exresso com oeradores mod e/ou div odem
ser do lio reaI, mas o resuIlado da exresso deve ser armazenado
em uma variaveI do lio inleiro.
(III) No comando de alribuio, o IileraI alribuido a uma variaveI do lio
cadeia ou caraclere deve eslar enlre asas conforme o exemIo: nome
Luciene.
Quais asserlivas so VIRDADIIRAS
(a) Aenas I e II
(b) Aenas II.
(c) Aenas I e III.
(d) I, II e III.
(e) Nenhuma das resoslas anleriores.
Algoritmos e programao I.indd 36 7/8/2013 16:01:03
Process Black
QW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
3) Considerando a decIarao de variaveis a seguir, assinaIe os comandos de
alribuio considerados INVLIDOS.
variveis
nome, aluno: cadeia
resp: caractere
a, b, c: inteiro
total, preco, resto: real
teste, ! ag: lgico
(a) ( ) res "sim" (f) ( ) total resto mod 5
(b) ( ) a b / 5 (g) ( ) a b + c
(c) ( ) teste "verdadeiro" (h) ( ) preco qtde * 5.00
(d) ( ) nome "Roberto" (i) ( ) ! ag teste
(e) ( ) b b + 1 (|) ( ) preco total - c
4) AssinaIe a oo em que uma ou mais das inslrues rimilivas esla(o)
INCORRITA(s), considerando a decIarao de variaveis a seguir.
variveis
nome: cadeia
idade: inteiro
peso, altura, imc: real
(a)
escrever(Informe o nome, o peso e a altura do paciente: )
ler(nome, peso, altura)
imc peso / (altura * altura)
escrever(IMC do paciente ,nome, = , imc)
(b) idade 10
nome Solano S
escrever(nome, tem , idade, anos)
(c) escrever(Informe o nome do paciente: )
ler(nome)
escrever(Informe a idade do paciente: )
ler(idade)
(d)
ler(nome, peso, altura)
imc peso / (altura * altura)
escrever(imc)
(e) Nenhuma das resoslas anleriores.
Algoritmos e programao I.indd 37 7/8/2013 16:01:03
Process Black
Q_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
5) Considerando os comandos de alribuio a seguir, marque a oo que
conlenha a decIarao de variaveis CORRITA.
a 10
b 2
c a mod b
teste "S"
desconto 500 * 0.1
x 50
y 10
z x / y
(a)
variveis
a, b, x, y: inteiro
c, desconto, z: real
teste: caractere
(b)
variveis
teste: caractere
a, b, c, x, y: inteiro
desconto, z: real
(c)
variveis
teste: cadeia
a, b, c, x, y: inteiro
desconto, z: real
(d)
variveis
teste: caractere
a, b, x, y: inteiro
c, desconto, z: real
(e)
Nenhuma das respostas anteriores.
%F=R:=>7=
1) a I, b V, c I, d V, e V.
2) c.
3) a, b, c, f, h.
4) c.
5) b
Algoritmos e programao I.indd 38 7/8/2013 16:01:04
Process Black
0
+)'%1'1%! )+\1+/M&!"
E7@F==7 "<@4FG7@@
Ao criar um aIgorilmo, lem-se como ob|elivo a soIuo de um delerminado
robIema. Iara que esle robIema se|a resoIvido, os conceilos basicos e as inslrues
rimilivas esludados nos cailuIos anleriores, devem eslar organizados de forma a
reresenlar um con|unlo de aes, que seguira um fIuxo de execuo delerminado
or lrs eslruluras basicas de conlroIe: sequenciaI, condicionaI e reeliliva.
Isle cailuIo e dedicado a eslrulura sequenciaI, que conlem um con|unlo de
inslrues que sero execuladas de forma Iinear, de cima ara baixo, da esquerda
ara a direila, sem nenhum desvio enlre as direlivas de inicio e fim do aIgorilmo.
As eslruluras de conlroIe condicionaI e reeliliva sero esludadas nos cailuIos
subsequenles.
0KJ +=>A5>5A7 ST=<67 4F 5G 7CN:A<>G: =F]5F@6<7C
A eslrulura basica de um aIgorilmo sequenciaI e aresenlada no Quadro 4.1. Na
Iinha 01, lem-se a idenlificao do aIgorilmo, seguida da decIarao de variaveis
(Iinhas 02 e 03) e, or fim, enlre as direlivas de inicio e fim enconlra-se o coro do
aIgorilmo (Iinhas 04 a 08).
\574A: 0KJ +=>A5>5A7 ST=<67 4F 5G 7CN:A<>G: =F]5F@6<7C
01 algoritmo <nome>
02 variveis
03 <lista de variveis>: <tipo>
04 incio
05 <instruo 1>
06 <instruo 2>
07 <instruo n>
08 fim
Algoritmos e programao I.indd 39 7/8/2013 16:01:04
Process Black
0P
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Como ode ser observado na eslrulura aresenlada no Quadro 4.1, o fIuxo de
execuo de um aIgorilmo sequenciaI e Iinear.
0KO +XFGRC: 4F 5G 7CN:A<>G: 6:G F=>A5>5A7 =F]5F@6<7C
O aIgorilmo aresenlado no cailuIo 3, que caIcuIa a media de um aIuno a arlir
de duas nolas fornecidas eIo usuario, e um exemIo da aIicao da eslrulura
sequenciaI. Isle exemIo, escrilo em orlugus eslrulurado, foi reroduzido
novamenle no Quadro 4.2.
\574A: 0KO +XFGRC: 4F 7CN:A<>G: =F]5F@6<7C FG R:A>5N5f= F=>A5>5A74:
Excmp!n 3.3. Ca!cu!a a mdia dc um a!unn, cnnsidcrandn duas nntas.
01 algoritmo exemplo33
02 variveis
03 nota1, nota2, media: real
04 incio
05 escrever("Digite a primeira nota: ")
06 ler(nota1)
07 escrever("Digite a segunda nota: ")
08 ler(nota2)
09 media (nota1 + nota2) / 2
10 escrever ("Mdia do aluno = ", media)
11 " m
As inslrues que comem o coro do aIgorilmo sero execuladas uma as a
oulra, na mesma ordem em que foram escrilas, sem quaIquer lio de desvio. Alraves
da inslruo rimiliva de saida na Iinha 05, o usuario recebera uma mensagem
soIicilando que a rimeira nola do aIuno se|a digilada. O vaIor digilado eIo
usuario sera Iido e armazenado na variaveI nota1 (Iinha 06). Os mesmos assos
so reelidos ara a segunda nola (Iinhas 07 e 08), que e Iida e armazenada na
variaveI nota2. Im seguida, a variaveI media recebe a media do aIuno, caIcuIada
na Iinha 09 a arlir da exresso (nota1+nota2)/2.
A soIuo do aIgorilmo, aresenlada no Quadro 4.2, foi escrila em orlugus
eslrulurado, mas lambem e ossiveI uliIizar oulras formas de reresenlao, como
iIuslra o fIuxograma da Iigura 4.1. O fIuxograma de um aIgorilmo sequenciaI
ermile, a arlir do simboIo de inicio, a execuo das inslrues conlidas nos
simboIos subsequenles sem nenhum desvio, ale aIcanar o simboIo de fim.

Algoritmos e programao I.indd 40 7/8/2013 16:01:04
Process Black
0J
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
B<N5A7 0KJ +XFGRC: 4F 7CN:A<>G: =F]5F@6<7C FG eC5X:NA7G7
Algoritmos e programao I.indd 41 7/8/2013 16:01:04
Process Black
0O
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
0KQ M:@=>A589: 4F 7CN:A<>G:= =F]5F@6<7<=
O rimeiro asso, ara chegar a soIuo de um robIema, e idenlificar no seu
enunciado quais so os dados de enlrada e de saida e, a arlir dai, definir o
rocessamenlo necessario ara gerar o resuIlado eserado.
No exemIo aresenlado na seo anlerior, os dados de enlrada so as nolas do
aIuno e a saida eserada e a sua media. Iara chegar a esse resuIlado, foi reaIizado o
caIcuIo da media arilmelica enlre as duas nolas fornecidas eIo usuario, conforme
ode ser observado no esquema da Iigura 4.2.
B<N5A7 0KO +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4F 6TC65C: 47 Gg4<7
Entrada Prnccssamcntn 5ada
Nolas do aIuno
nota1 nota2

CaIcuIar a media
media (nota1+nota2)/2

Media do aIuno
media
A revia idenlificao dos eIemenlos basicos, iIuslrados na Iigura 4.2, e imorlanle
ara a conslruo da soIuo do robIema. Oulros exemIos so aresenlados
a seguir com o ob|elivo de iIuslrar asso a asso como conslruir soIues ara
aIgorilmos sequenciais. A arlir do enunciado de cada robIema so idenlificados os
eIemenlos basicos ara a conslruo do aIgorilmo (enlrada / rocessamenlo / saida)
e, em seguida, aresenla-se a soIuo do robIema em orlugus eslrulurado.
Excmp!n 4.1
Dcscrin dn prnb!cma: conslrua um aIgorilmo que: (a) Ieia o nome de um
funcionario, a quanlidade de horas or eIe lrabaIhadas e o vaIor que eIe recebe or
hora, (b) caIcuIe o saIario brulo, o vaIor do INSS (8 sobre o saIario brulo) e o saIario
Iiquido do funcionario, (c) escreva o nome do funcionario e os vaIores caIcuIados.
A arlir desle enunciado, monla-se o esquema da Iigura 4.3 que conlem os
eIemenlos basicos ara a conslruo da soIuo.
B<N5A7 0KQ +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4: FXFGRC: 0KJ
Entrada Prnccssamcntn 5ada
nome
ht
vh

CaIcuIar saIario brulo
sbht*vh
CaIcuIar INSS
insssb*0.08
CaIcuIar saIario Iiquido
slsb-inss

nome
sb
inss
sl
Algoritmos e programao I.indd 42 7/8/2013 16:01:04
Process Black
0Q
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Ioram idenlificados, a arlir do enunciado do robIema (exemIo 4.1), lrs dados de
enlrada: nome do funcionario, horas lrabaIhadas e vaIor da hora (reresenlados na
Iigura 4.3 eIas variaveis nome,ht e vh, reseclivamenle). Como saida, esera-se:
nome do funcionario, saIario brulo, inss e saIario Iiquido (o nome do funcionario
sera informado eIo usuario e os oulros dados sero caIcuIados). No rocessamenlo,
e necessario definir como, a arlir dos dados de enlrada, gerar o resuIlado eserado.
Nesle exemIo, foram criadas as variaveis sb, inss e sl ara armazenar os
vaIores caIcuIados ara o saIario brulo, o INSS e o saIario Iiquido. O saIario brulo
e caIcuIado muIliIicando a quanlidade de horas lrabaIhadas eIo vaIor da hora
(ht*vh), o vaIor do INSS reresenla 8 do saIario brulo (sb*0.08) e, or fim, o
saIario Iiquido e o saIario brulo menos o vaIor do INSS (sb-inss).
Com o esquema da Iigura 4.3, orlanlo, e ossiveI conslruir a soIuo ara o
robIema, descrila em orlugus eslrulurado no Quadro 4.3.
\574A: 0KQ ):C589: 4: FXFGRC: 0KJ FG R:A>5N5f= F=>A5>5A74:
Excmp!n 4.1 - Ca!cu!a n sa!rin dc um Iuncinnrin.
01 algoritmo exemplo41
02 variveis
03 nome: cadeia
04 ht: inteiro
05 vh,sb,inss,sl: real
06 incio
07 escrever("Nome do funcionrio: ")
08 ler(nome)
09 escrever("Quantidade de horas trabalhadas: ")
10 ler(ht)
11 escrever("Valor da hora: ")
12 ler(vh)
13 sb ht * vh
14 inss sb * 0.08
15 sl sb - inss
16 escrever ("Funcionrio: ", nome)
17 escrever ("Salrio bruto: R$", sb)
18 escrever ("INSS: R$", inss)
19 escrever ("Salrio lquido: R$", sl)
20 fim
O aIgorilmo inicia com a definio de um idenlificador (Iinha 01), que deve seguir
as mesmas regras usadas ara definir nomes de variaveis - como no e ermilido o
uso de esao em branco e caracleres eseciais, o exemIo 4.1 e idenlificado como
exemplo41. Inlre as Iinhas 02 e 05, consla a decIarao de variaveis: o nome do
funcionario e do lio cadeia, a quanlidade de horas lrabaIhadas foi decIarada do
Algoritmos e programao I.indd 43 7/8/2013 16:01:05
Process Black
00
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
lio inleiro e as demais variaveis so do lio reaI (vaIor da hora, saIario brulo, inss
e saIario Iiquido). O coro do aIgorilmo esla enlre as Iinhas 06 e 20, onde eslo
organizados os eIemenlos basicos de enlrada/rocessamenlo/saida do esquema
aresenlado na Iigura 4.3. Os comandos que reresenlam a enlrada de dados
eslo enlre as Iinhas 07 e 12 - anles de cada inslruo rimiliva de enlrada (Iinhas
08, 10 e 12), e sera emilida uma mensagem ara o usuario, indicando os dados a
serem digilados (Iinhas 07, 09 e 11). Os caIcuIos do rocessamenlo aarecem enlre
as Iinhas 13 e 15, cu|os resuIlados sero escrilos enlre as Iinhas 16 e 19 - comandos
que reresenlam a saida de dados.
Excmp!n 4.2
Dcscrin dn prnb!cma: sabe-se que na cidade o indice de nalaIidade anuaI e
30 maior do que na cidade . Conslrua um aIgorilmo que, a arlir do indice de
nalaIidade anuaI da cidade , caIcuIe e escreva o vaIor eslimado da nalaIidade
anuaI na cidade .
O esquema da Iigura 4.4 conlem os eIemenlos basicos ara a conslruo da soIuo
desle robIema.
B<N5A7 0K0 +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4: FXFGRC: 0KO
Entrada Prnccssamcntn 5ada
ndice de
nalaIidade anuaI
da cidade
y

CaIcuIar o indice de
nalaIidade da cidade ,
que e 30 suerior ao da
cidade
x y*1.3

ndice de
nalaIidade anuaI
da cidade
x
A enlrada e o indice de nalaIidade da cidade (reresenlada eIa variaveI y).
O ob|elivo do aIgorilmo e caIcuIar e escrever o indice de nalaIidade da cidade
(reresenlada eIa variaveI x), que e 30 suerior ao da cidade . A soIuo ara
o robIema esla descrila em orlugus eslrulurado no Quadro 4.4.
Algoritmos e programao I.indd 44 7/8/2013 16:01:05
Process Black
0U
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: 0K0 ):C589: 4: FXFGRC: 0KO FG R:A>5N5f= F=>A5>5A74:
Excmp!n 4.2 - Ca!cu!a n ndicc dc nata!idadc dc uma cidadc.
01 algoritmo exemplo42
02 variveis
03 x, y: real
04 incio
05 escrever("Indice de natalidade da cidade Y: ")
06 ler(y)
07 x y * 1.3
08 escrever ("Indice de natalidade da cidade X: ", x)
09 fim
Excmp!n 4.3
Dcscrin dn prnb!cma: faa um aIgorilmo que converla uma lemeralura de graus
Cenligrados ara graus Iahrenheil. A frmuIa de converso e I(9C+160)/5, onde
I e a lemeralura em Iahrenheil e C e a lemeralura em Cenligrados.
Os dados de enlrada e saida, bem como o rocessamenlo necessario ara resoIver
o robIema, odem ser observados na Iigura 4.5. A arlir desles dados, chega-se a
soIuo ara o robIema, aresenlada em orlugus eslrulurado no Quadro 4.5.
B<N5A7 0KU +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4: FXFGRC: 0KQ
Entrada Prnccssamcntn 5ada
Temeralura em
graus Cenligrados
C

Converler a lemeralura
de graus Cenligrados ara
Iahrenheil
F (9*C+160)/5

Temeralura em
graus Iahrenheil
F
\574A: 0KU ):C589: 4: FXFGRC: 0KQ FG R:A>5N5f= F=>A5>5A74:
Excmp!n 4.3 - Cnnvcrsn dc graus Ccntgradns para graus Fahrcnhcit.
01 algoritmo exemplo43
02 variveis
03 C, F: real
04 incio
05 escrever("Temperatura em graus Centgrados: ")
06 ler(C)
07 F (9*C+160)/5
08 escrever ("Temperatura em graus Fahrenheit: ", F)
09 fim
Algoritmos e programao I.indd 45 7/8/2013 16:01:05
Process Black
0H
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
0K0 'F=>F 4F GF=7 4F 7CN:A<>G:= 6:G F=>A5>5A7 =F]5F@6<7C
O lesle de mesa lem or ob|elivo deleclar, caso exislam, erros semnlicos na
soIuo do aIgorilmo (ou se|a, erros de Igica). Iara reaIizar o lesle de mesa, as
variaveis uliIizadas no aIgorilmo devem ser Iisladas, uma simuIao da execuo do
aIgorilmo e reaIizada e lodos os vaIores assumidos eIas variaveis so regislrados.
No finaI, comara-se a resosla oblida com a resosla eserada. Caso no ha|a
coincidncia enlre eslas resoslas, deleclou-se um erro de Igica.
Os exemIos descrilos a seguir aresenlam o aIgorilmo e seu lesle de mesa.
Excmp!n 4.4
Dcscrin dn prnb!cma: faa um aIgorilmo ara caIcuIar a area de um lringuIo.
B<N5A7 0KH +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4: FXFGRC: 0K0
Entrada Prnccssamcntn 5ada
ase e aIlura
b h

CaIcuIar a area do lringuIo
area (b*h)/2

rea do lringuIo
area
Mesmo que no esle|a exIicilo na descrio do robIema, os dados de enlrada odem
ser idenlificados a arlir da frmuIa usada ara caIcuIar a area de um lringuIo.
Assim, como iIuslra a Iigura 4.6, os dados necessarios ara caIcuIar esla area so a
base e a aIlura do lringuIo. No rocessamenlo, simIesmenle, aIica-se a frmuIa
e, or fim, o resuIlado devera ser exibido ao usuario. O aIgorilmo que resoIve esle
robIema e descrilo no Quadro 4.6 e seu lesle de mesa e exIicado na sequncia.
\574A: 0KH ):C589: 4: FXFGRC: 0K0 FG R:A>5N5f= F=>A5>5A74:
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
01 algoritmo exemplo44
02 variveis
03 b, h, area: real
04 incio
05 escrever("Base: ")
06 ler(b)
07 escrever("Altura: ")
08 ler(h)
09 area (b*h)/2
10 escrever ("rea = ", area)
11 fim
Algoritmos e programao I.indd 46 7/8/2013 16:01:05
Process Black
0W
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
!inha
b h area
06 12
Iara leslar a soIuo aresenlada, e reciso definir vaIores ara os dados de enlrada.
Nesle caso, a base e a aIlura do lringuIo (no lesle aresenlado a seguir definiu-se
b 12 e h 5, que resuIlara em uma area de 30). Im seguida, e necessario monlar a
labeIa onde devem conslar lodas as variaveis uliIizadas na soIuo e o regislro dos
vaIores assumidos or eIas na simuIao da execuo do aIgorilmo. Isla elaa do
lesle ode ser observada no Quadro 4.7. esquerda, aarecem os vaIores definidos
como dados de enlrada, no cenlro, a labeIa do lesle de mesa que sera reenchida
duranle a simuIao de execuo do aIgorilmo, e a direila, um esao onde sera
regislrada a saida do aIgorilmo.
\574A: 0KW 3 'F=>F 4F GF=7 4: FXFGRC: 0K0 F>7R7 J
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
b 12
h 5

Ieilo islo, a simuIao de execuo deve ser iniciada, assando Iinha a Iinha do
aIgorilmo e regislrando os vaIores assumidos eIas variaveis. Na Iinha 05 do
aIgorilmo (Quadro 4.6), rimeira inslruo a ser execulada, sera emilida uma
mensagem ao usuario ara que eIe informe a base do lringuIo. Isla inslruo no
aIlera o vaIor de nenhuma das variaveis, orlanlo, no gera regislro na labeIa do
lesle de mesa. Na Iinha 06 (Quadro 4.6), o vaIor digilado eIo usuario sera Iido e
armazenado na variaveI b, gerando um regislro no lesle de mesa, conforme iIuslra
o Quadro 4.8. Isle regislro conlem o numero da Iinha da inslruo execulada no
aIgorilmo e o vaIor de enlrada da variaveI b, definido como 12 nesle lesle.
\574A: 0K_ 3 'F=>F 4F GF=7 4: FXFGRC: 0K0 F>7R7 Ob R7==: J
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
b 12 varivcis
h 5
!inha
b h area
varivcis
Algoritmos e programao I.indd 47 7/8/2013 16:01:06
Process Black
0_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Na Iinha 07 (Quadro 4.6), uma mensagem sera emilida ao usuario soIicilando que
eIe digile a aIlura do lringuIo, vaIor que sera Iido e armazenado na variaveI h
(Iinha 08 - Quadro 4.6), gerando um novo regislro na labeIa do lesle de mesa, que
ode ser observado no Quadro 4.9.
\574A: 0KL 3 'F=>F 4F GF=7 4: FXFGRC: 0K0 F>7R7 Ob R7==: O
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
b 12
h 5
A area do lringuIo e caIcuIada na Iinha 09 (Quadro 4.6). Considerando os vaIores
armazenados nas variaveis b e h, lem-se (125)/2, que resuIla em 30. Isle vaIor
e armazenado na variaveI area, devendo, orlanlo, ser regislrado na labeIa do
lesle de mesa.
\574A: 0KJP 3 'F=>F 4F GF=7 4: FXFGRC: 0K0 F>7R7 Ob R7==: Q
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
b 12
h 5
Ior fim, na Iinha 10 (Quadro 4.6), consla a inslruo rimiliva de saida que ira
exibir ao usuario o vaIor da area do lringuIo, caIcuIado no aIgorilmo. O Quadro
4.11 aresenla, a direila, a saida do aIgorilmo.
!inha
b h area
06 12
08 5
varivcis
!inha
b h area
06 12
08 5
09 30
varivcis
Algoritmos e programao I.indd 48 7/8/2013 16:01:06
Process Black
0L
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: 0KJJ 3 'F=>F 4F GF=7 4: FXFGRC: 0K0 F>7R7 Ob R7==: 0
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
b 12
h 5 rea 30
Incerrada a simuIao de execuo, verifica-se que a resosla oblida coincide com
a resosla eserada (area 30). Iorlanlo, o aIgorilmo esla correlo.
Excmp!n 4.5
Dcscrin dn prnb!cma: escreva um aIgorilmo ara caIcuIar a quanlidade de
combusliveI necessaria ara um aulomveI ercorrer delerminada dislncia.
Considerar um consumo medio de um Iilro de combusliveI ara cada 12 km
rodados.
Iara caIcuIar a quanlidade de combusliveI necessaria ara um aulomveI ercorrer
uma dislncia quaIquer, e necessario saber a dislncia a ser ercorrida e o consumo
medio do veicuIo. No enunciado do robIema, consla aenas o consumo medio do
veicuIo. Iorlanlo, a dislncia a ser ercorrida devera ser informada eIo usuario.
A Iigura 4.7 aresenla os eIemenlos basicos ara a conslruo desle aIgorilmo.
B<N5A7 0KW +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4: FXFGRC: 0KU
Entrada Prnccssamcntn 5ada
Dislncia a ser
ercorrida
distancia

CaIcuIar a quanlidade de
combusliveI
litros distancia/12

Quanlidade de
combusliveI
litros
A arlir desles dados, conslri-se o aIgorilmo com a soIuo ara o robIema
(Quadro 4.12) e, em seguida, reaIiza-se o lesle de mesa (Quadros 4.13 e 4.14).
!inha
b h area
06 12
08 5
09 30
varivcis
Algoritmos e programao I.indd 49 7/8/2013 16:01:06
Process Black
UP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: 0KJO ):C589: 4: FXFGRC: 0KU FG R:A>5N5f= F=>A5>5A74:
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
01 algoritmo exemplo45
02 variveis
03 distancia, litros: real
04 incio
05 escrever("Informe a distncia a ser percorrida: ")
06 ler(distancia)
07 litros distancia/12
08 escrever ("Sero necessrios ",litros," de combustvel.")
09 fim
Iara leslar a soIuo aresenlada, definiu-se que a dislncia a ser ercorrida e de
200 km. Assim, o vaIor eserado como resuIlado e de 16,7 Iilros de combusliveI
(200/1216,7). O Quadro 4.13 aresenla a rimeira elaa do lesle de mesa, que
consisle em monlar o esquema ara regislrar os vaIores assumidos eIas variaveis
duranle a simuIao da execuo do aIgorilmo.
\574A: 0KJQ 3 'F=>F 4F GF=7 4: FXFGRC: 0KU F>7R7 J
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
distancia 200
A simuIao de execuo e iniciada na Iinha 05 (Quadro 4.12), que exibira uma
mensagem ao usuario, ara que eIe digile a dislncia a ser ercorrida com o veicuIo.
Na sequncia (Iinha 06 - Quadro 4.12), esle vaIor sera Iido e armazenado na variaveI
distancia, gerando um regislro na labeIa do lesle de mesa, conforme ode ser
observado no Quadro 4.14.
!inha
distncia litros
varivcis
Algoritmos e programao I.indd 50 7/8/2013 16:01:06
Process Black
UJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: 0KJ0 3 'F=>F 4F GF=7 4: FXFGRC: 0KU F>7R7 Ob R7==: J
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
dislancia 200
Na Iinha 07 (Quadro 4.12), a quanlidade de Iilros necessaria ara ercorrer a
dislncia informada eIo usuario e caIcuIada e o resuIlado e armazenado na variaveI
litros. O regislro desla execuo aarece na labeIa do lesle de mesa do Quadro
4.15, onde lambem consla a saida de dados execulada na Iinha 08 (Quadro 4.12),
considerando o resuIlado oblido.
\574A: 0KJU 3 'F=>F 4F GF=7 4: FXFGRC: 0KU F>7R7 Ob R7==: O
Excmp!n 4.4 - C!cu!n da rca dc um tringu!n.
Entrada Tcstc dc mcsa 5ada
distancia 200 Sero necessarios 16,7
Iilros de combusliveI.
Incerrada a simuIao de execuo do aIgorilmo, verifica-se que a resosla oblida
coincide com a resosla eserada (16,7 Iilros). Iorlanlo, o aIgorilmo esla correlo.
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&': aIgorilmos,
IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
!inha
distncia litros
06 200
varivcis
!inha
distncia litros
06 200
07 16,7
varivcis
Algoritmos e programao I.indd 51 7/8/2013 16:01:06
Process Black
UO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
!><V<474F=
Iara cada um dos exercicios a seguir, monle o esquema com os eIemenlos
basicos (enlrada / rocessamenlo / saida), conslrua o aIgorilmo com a soIuo
ara o robIema e, or !m, reaIize o lesle de mesa, ara assegurar que a resosla
esle|a correla.
(1) O cuslo !naI de um carro novo ara o consumidor e a soma do
cuslo de fabrica, dos imoslos e da orcenlagem do dislribuidor.
Suondo que os imoslos lolaIizam 45 sobre o cuslo de fabrica e a
orcenlagem do dislribuidor se|a de 20 sobre o vaIor lolaI, escreva
um aIgorilmo que Ieia o cuslo de fabrica de um carro, caIcuIe e escreva
o cuslo !naI ao consumidor.
(2) Sabe-se que, ara iIuminar de maneira correla os cmodos de uma
casa, ara cada m
2
, deve-se usar 18 de olncia. Iaa um aIgorilmo
que receba as duas dimenses de um cmodo (em melros), caIcuIe e
aresenle a sua area (em m
2
) e a olncia de iIuminao que devera
ser uliIizada.
(3) Uma emresa que romove eselacuIos lealrais recisa de um
rograma ara de!nir o vaIor minimo ara o convile, considerando
o cuslo lolaI do eselacuIo e o numero de Iugares disoniveis ara
o ubIico no IocaI da aresenlao.
(4) Sabe-se que
1 e 12 oIegadas,
1 |arda 3 es,
1 miIha 1760 |ardas.
Iaa um aIgorilmo que receba uma medida em es, faa as converses
conforme a descrio acima e moslre os resuIlados em oIegadas,
|ardas e miIhas.
(5) Considerando uma aIicao de I reais a laxa de |uros i conslanle
or um eriodo de N meses, caIcuIe e escreva quaI sera o monlanle
M as o lermino da aIicao, sendo M I (1 + i)
N
.
Algoritmos e programao I.indd 52 7/8/2013 16:01:07
Process Black
U
+)'%1'1%! ;+ M$/'%$"+ M$/;&M&$/!"^
)+
E7@F==7 "<@4FG7@@
Como foi exIicado anleriormenle, os aIgorilmos seguem um fIuxo de execuo
delerminado or lrs eslruluras basicas de conlroIe: sequenciaI (lema do cailuIo
4), condicionaI e reeliliva.
A eslrulura condicionaI e uliIizada ara desviar o fIuxo de execuo do aIgorilmo
ara diferenles arles da soIuo. IIa divide-se em eslrulura SI e eslrulura
ISCOLHA - a rimeira deIas abordada nesle cailuIo. A eslrulura SI e mais fIexiveI,
odendo uliIizar na sua condio lodos os oeradores reIacionais (, >, , >, , >)
e, quando forem necessarias, mais de uma condio com os oeradores Igicos (I
e OU) enlre eIas. Isla eslrulura lambem e cIassificada como eslrulura condicionaI
SI simIes, comosla ou encadeada, como descrevem as rximas sees.
UKJ +=>A5>5A7 6:@4<6<:@7C )+ =<GRCF=
A sinlaxe da eslrulura condicionaI SI simIes e aresenlada a seguir.
se(<condio ou lista de condies>)ento
<instruo ou bloco de instrues>
A condio e leslada e resuIlara verdadeiro ou faIso. Quando resuIlar verdadeiro, a
inslruo da cIausuIa ento e execulada. Isla eslrulura ode conler mais de uma
condio com oeradores Igicos enlre eIas e, lambem, ode conler um bIoco de
inslrues a ser execulado, ao inves de uma inslruo unica. VaIe Iembrar que um
bIoco e comoslo or duas ou mais inslrues, deIimilado eIas direlivas de inicio e
fim. O Quadro 5.1 aresenla lrs exemIos da eslrulura condicionaI SI simIes.
Algoritmos e programao I.indd 53 7/8/2013 16:01:07
Process Black
U0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKJ +XFGRC:= 47 =<@>7XF 47 F=>A5>5A7 6:@4<6<:@7C )+ =<GRCF=
Cnm instrun nica Cnm b!ncn dc instrucs Mais dc uma cnndin c b!ncn dc
instrucs
se(a>b)ento
escrever(a)
se(a>b)ento
incio
a a-b
escrever(a)
fim
se(a>b)e(a<>0)e(b<>0)ento
incio
a a/b
escrever(a)
fim
No rimeiro exemIo do Quadro 5.1, a eslrulura condicionaI SI ossui aenas
uma condio (a>b) e, quando esla resuIlar verdadeiro, uma unica inslruo a ser
execulada (escrever(a)). O segundo exemIo lambem lesla uma unica condio.
Inlrelanlo, quando esla resuIlar verdadeiro, um bIoco de inslrues sera execulado.
I, or fim, o lerceiro exemIo aresenla uma siluao em que lrs condies
devero ser verdadeiras ara que o bIoco de comandos se|a execulado.
Iara exemIificar a aIicao desla eslrulura condicionaI, roe-se a amIiao
do exemIo que caIcuIa a media de um aIuno, cu|a soIuo foi aresenlada nos
cailuIos anleriores. AIem de caIcuIar e exibir a media do aIuno, o aIgorilmo devera
emilir a mensagem AIuno arovado semre que a media for iguaI ou suerior
a 6.0 (seis). A soIuo ara esle robIema, denominado exemIo 5.1, ode ser
observada no Quadro 5.2.
\574A: UKO +XFGRC: 4F 7CN:A<>G: 6:G F=>A5>5A7 6:@4<6<:@7C )+ =<GRCF=
Excmp!n 5.1. CaIcuIa a media de um aIuno e emile mensagem AIuno arovado.
01 algoritmo exemplo51
02 variveis
03 nota1, nota2, media: real
04 incio
05 escrever("Digite a primeira nota: ")
06 ler(nota1)
07 escrever("Digite a segunda nota: ")
08 ler(nota2)
09 media (nota1 + nota2) / 2
10 escrever ("Mdia do aluno = ", media)
11 se(media>=6)ento
12 escrever("Aluno aprovado!")
13 fim
As inslrues das Iinhas 11 e 12 foram acrescenladas a soIuo iniciaI e, semre
que a condio (media>=6) for verdadeira, a mensagem Aluno aprovado! sera
exibida ao usuario.
Algoritmos e programao I.indd 54 7/8/2013 16:01:07
Process Black
UU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Na soIuo aresenlada, enlrelanlo, quando o aIuno obliver media inferior a
6.0 (seis), nenhuma mensagem sera exibida ao usuario informando sobre sua
rerovao. Isla Iimilao ode ser resoIvida uliIizando a eslrulura condicionaI
SI comosla, descrila na rxima seo.
UKO +=>A5>5A7 6:@4<6<:@7C )+ 6:GR:=>7
A sinlaxe da eslrulura condicionaI SI comosla ode ser observada a seguir.
se(<condio ou lista de condies>)ento
<instruo ou bloco de instrues>
seno
<instruo ou bloco de instrues>
Quando a condio avaIiada resuIlar verdadeiro, a inslruo da cIausuIa ento
sera execulada, caso conlrario, quando resuIlar faIso, e a inslruo da cIausuIa
seno que sera execulada.
Com esla eslrulura e ossiveI acrescenlar a soIuo do exemIo anlerior, a emisso
da mensagem AIuno rerovado. quando a media for menor que 6.0 (seis). A
soIuo ara esle robIema, denominado exemIo 5.2, ode ser observada no
Quadro 5.3.
\574A: UKQ +XFGRC: 4F 7CN:A<>G: 6:G F=>A5>5A7 6:@4<6<:@7C )+ 6:GR:=>7
Excmp!n 5.2. CaIcuIa a media de um aIuno e emile mensagem AIuno arovado ou
AIuno rerovado.
01 algoritmo exemplo52
02 variveis
03 nota1, nota2, media: real
04 incio
05 escrever("Digite a primeira nota: ")
06 ler(nota1)
07 escrever("Digite a segunda nota: ")
08 ler(nota2)
09 media (nota1 + nota2) / 2
10 escrever("Mdia do aluno = ", media)
11 se(media>=6)ento
12 escrever("Aluno aprovado!")
13 seno
14 escrever("Aluno reprovado!")
15 fim
Algoritmos e programao I.indd 55 7/8/2013 16:01:07
Process Black
UH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
As inslrues das Iinhas 13 e 14 foram acrescenladas a soIuo anlerior. Desla forma,
quando a condio (media>=6) for verdadeira, a mensagem Aluno aprovado!
sera exibida, e quando a condio resuIlar faIso, o aIgorilmo emilira a mensagem
Aluno reprovado.
Na sequncia, mais um robIema sera resoIvido ara exemIificar a aIicao da
eslrulura SI comosla e deslacar a necessidade da eslrulura SI encadeada.
Excmp!n 5.3
Dcscrin dn prnb!cma: escreva um aIgorilmo que verifique se um vaIor quaIquer
digilado eIo usuario e osilivo ou negalivo.
B<N5A7 UKJ +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4: FXFGRC: UKQ
Entrada Prnccssamcntn 5ada
valor

Comarar o vaIor com zero ara


verificar se e osilivo ou negalivo
se(valor<0)ento
escrever("Negativo")
seno
escrever("Positivo")

Imrimir uma
das mensagens:

Negalivo
ou
Iosilivo
\574A: UK0 ):C589: 4: FXFGRC: UKQ
Excmp!n 5.3 - VcriIica sc um va!nr ncgativn nu pnsitivn.
01 algoritmo exemplo53
02 variveis
03 valor: real
04 incio
05 escrever("Informe um valor qualquer: ")
06 ler(valor)
07 se(valor<0)ento
08 escrever("Negativo")
09 seno
10 escrever("Positivo")
11 fim
Anles de iniciar o lesle de mesa, vaIe Iembrar que a escoIha dos dados de lesles e
muilo imorlanle na simuIao. Os dados escoIhidos devem garanlir a execuo
Algoritmos e programao I.indd 56 7/8/2013 16:01:07
Process Black
UW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
de lodas as inslrues do aIgorilmo, leslando lodas as ossibiIidades de saida.
Nesle exemIo, duas ossibiIidades sero lesladas: um vaIor negalivo e um vaIor
osilivo.
No rimeiro lesle reaIizado, definiu-se como dado de enlrada 80. Assim, o
resuIlado eserado e Negalivo. O Quadro 5.5 aresenla a rimeira elaa do lesle
de mesa, que consisle em monlar o esquema ara regislrar os vaIores assumidos
eIas variaveis duranle a simuIao da execuo do aIgorilmo.
\574A: UKU 3 'F=>F 4F GF=7 4: FXFGRC: UKQ
Excmp!n 5.3 - VcriIica sc um va!nr ncgativn nu pnsitivn.
Entrada Tcstc dc mcsa 5ada
valor 80
A simuIao de execuo e iniciada na Iinha 05 (Quadro 5.4), que exibira uma
mensagem ao usuario soIicilando que eIe digile um vaIor quaIquer. Na sequncia
(Iinha 06 Quadro 5.4), esle vaIor sera Iido e armazenado na variaveI valor,
gerando um regislro na labeIa do lesle de mesa, conforme ode ser observado
no Quadro 5.6.
\574A: UKH 3 'F=>F 4F GF=7 4: FXFGRC: UKQ 6:G V7C:A @FN7><V:
Excmp!n 5.3 - VcriIica sc um va!nr ncgativn nu pnsitivn.
Entrada Tcstc dc mcsa 5ada
valor 80 Negalivo

Na Iinha 07 (Quadro 5.4), a condio (valor<0) e leslada. Como 80 e menor do
que zero, esse lesle resuIla verdadeiro e, consequenlemenle, a inslruo da cIausuIa
ento sera execulada, emilindo a mensagem Negalivo. A saida gerada, orlanlo,
coincide com a resosla eserada.
Ao leslar um vaIor osilivo como 22, or exemIo, a condio da Iinha 07 (Quadro
5.4) no sera salisfeila, resuIlando faIso. Nesle caso, a inslruo da cIausuIa seno
sera execulada, emilindo a mensagem Iosilivo. Nesle caso, o resuIlado oblido
!inha
valor

varivcis
!inha
valor
06 - 80
varivcis
Algoritmos e programao I.indd 57 7/8/2013 16:01:08
Process Black
U_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
lambem coincide com o resuIlado eserado. Os dados desle lesle odem ser
observados no Quadro 5.7.
\574A: UKW 3 'F=>F 4F GF=7 4: FXFGRC: UKQ 6:G V7C:A R:=<><V:
Excmp!n 5.3 - VcriIica sc um va!nr ncgativn nu pnsitivn.
Entrada Tcstc dc mcsa 5ada
valor 22 Iosilivo
Os lesles de mesa reaIizados demonslram que os resuIlados oblidos alraves da
simuIao de execuo do aIgorilmo, com vaIores negalivos e osilivos, coincidem
com os resuIlados eserados. Mas o que aconleceria se o vaIor digilado eIo usuario
fosse um 0 (zero) Nesle caso, o aIgorilmo emiliria a mensagem Iosilivo, que
no condiz com o resuIlado eserado |a que o zero e neulro. Iara corrigir esle
robIema, sera necessario usar a eslrulura condicionaI SI encadeada, descrila na
rxima seo.
UKQ +=>A5>5A7 6:@4<6<:@7C )+ F@674F747
A aIicao da eslrulura condicionaI SI encadeada, cu|a sinlaxe e aresenlada
a seguir, ode ser observada no Quadro 5.8 que reescreve a soIuo do exemIo
anlerior e nos exemIos aresenlados na sequncia.
se(<condio ou lista de condies>)ento
<instruo ou bloco de instrues>
seno
se(<condio ou lista de condies>)ento
<instruo ou bloco de instrues>
seno
<instruo ou bloco de instrues>
A soIuo do exemIo anlerior, que verifica se um vaIor e osilivo ou negalivo,
foi reescrila no Quadro 5.8, uliIizando a eslrulura SI encadeada (Iinhas 07 a 13).
As modificaes reaIizadas aarecem enlre as Iinhas 10 e 13, onde mais um lesle
foi incIuido ara garanlir que quando o dado de enlrada for 0 (zero), o aIgorilmo
emila uma mensagem Zero e neulro.
!inha
valor
06 22
varivcis
Algoritmos e programao I.indd 58 7/8/2013 16:01:08
Process Black
UL
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UK_ ):C589: 4: FXFGRC: UKQ
Excmp!n 5.3 - VcriIica sc um va!nr ncgativn nu pnsitivn.
01 algoritmo exemplo53
02 variveis
03 valor: real
04 incio
05 escrever("Informe um valor qualquer: ")
06 ler(valor)
07 se(valor<0)ento
08 escrever("Negativo")
09 seno
10 se(valor>0)ento
11 escrever("Positivo")
12 seno
13 escrever("Zero neutro")
14 fim
Iara leslar lodas as ossibiIidades de saida desla soIuo, o lesle de mesa deve ser
reaIizado considerando lrs vaIores: um osilivo, um negalivo e o zero.
Excmp!n 5.4
Dcscrin dn prnb!cma: escreva um aIgorilmo ara enconlrar o maior enlre dois
vaIores quaisquer digilados eIo usuario.
B<N5A7 UKO +CFGF@>:= ST=<6:= R7A7 6:@=>A589: 4: 7CN:A<>G: 4: FXFGRC: UKQ
Entrada Prnccssamcntn 5ada
valor1
valor2

Comarar os vaIores ara


enconlrar o maior enlre eIes

maior
ou mensagem:
vaIores iguais
O aIgorilmo do Quadro 5.9 foi conslruido a arlir dos dados do esquema da Iigura
5.2. Im seguida, aresenla-se o lesle de mesa reaIizado (Quadros 5.5 e 5.6).
Algoritmos e programao I.indd 59 7/8/2013 16:01:08
Process Black
HP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKL ):C589: 4: FXFGRC: UK0
Excmp!n 5.4 - Encnntra n mainr cntrc dnis va!nrcs quaisqucr.
01 algoritmo exemplo54
02 variveis
03 valor1,valor2:real
04 incio
05 escrever("Informe o primeiro valor: ")
06 ler(valor1)
07 escrever("Informe o segundo valor: ")
08 ler(valor2)
09 se(valor1>valor2)ento
10 escrever("Maior = ", valor1)
11 seno
12 se(valor2>valor1)ento
13 escrever("Maior = ", valor2)
14 seno
15 escrever("Valores iguais!")
16 fim
Nesle exemIo, lrs ossibiIidades devem ser lesladas: valor1 maior, valor2
maior, valor1 e valor2 iguais.
No lesle reaIizado, descrilo a seguir, definiu-se como dados de enlrada 8 e 5.
Assim, o resuIlado eserado e Maior 8. O Quadro 5.10 aresenla a rimeira
elaa do lesle de mesa, que consisle em monlar o esquema ara regislrar os vaIores
assumidos eIas variaveis duranle a simuIao da execuo do aIgorilmo.
\574A: UKJP 3 'F=>F 4F GF=7 4: FXFGRC: UK0 F>7R7 J
Excmp!n 5.4 - Encnntra n mainr cntrc dnis va!nrcs quaisqucr.
Entrada Tcstc dc mcsa 5ada
valor1 8
valor2 5
A simuIao de execuo e iniciada na Iinha 05 (Quadro 5.9), que exibira uma
mensagem ao usuario soIicilando que eIe digile o rimeiro vaIor. Na sequncia
(Iinha 06 Quadro 5.9), esle vaIor sera Iido e armazenado na variaveI valor1,
gerando um regislro na labeIa do lesle de mesa, conforme ode ser observado no
Quadro 5.11.
!inha
valor1 valor2
varivcis
Algoritmos e programao I.indd 60 7/8/2013 16:01:08
Process Black
HJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKJJ 3 'F=>F 4F GF=7 4: FXFGRC: UK0 F>7R7 Ob R7==:J
Excmp!n 5.4 - Encnntra n mainr cntrc dnis va!nrcs quaisqucr.
Entrada Tcstc dc mcsa 5ada
valor1 8
valor2 5
A execuo da Iinha 07 (Quadro 5.9) exibe uma mensagem soIicilando que o
usuario digile o segundo vaIor, que e Iido e armazenado na variaveI valor2
(Iinha 08 Quadro 5.9). O regislro desla execuo aarece na labeIa do lesle de
mesa do Quadro 5.12.
\574A: UKJO 3 'F=>F 4F GF=7 4: FXFGRC: UK0 F>7R7 Ob R7==:O
Excmp!n 5.4 - Encnntra n mainr cntrc dnis va!nrcs quaisqucr.
Entrada Tcstc dc mcsa 5ada
valor1 8 Maior 8
valor2 5
Na Iinha 09 (Quadro 5.9) aconlece a comarao enlre os dois vaIores armazenados
na memria, 8 e 5. A condio leslada verifica se o rimeiro vaIor e maior que o
segundo. Nesle caso, a condio leslada e 8>5, que resuIla em verdadeiro e ermile
a execuo da inslruo da cIausuIa ento. A saida gerada, orlanlo, e Maior
8, que coincide com a resosla eserada.
Excmp!n 5.5
Dcscrin dn prnb!cma: lendo como dados de enlrada a aIlura e o gnero de uma
essoa, escreva um aIgorilmo ara caIcuIar seu eso ideaI, uliIizando as seguinles
frmuIas: ara homens (72,7 x aIlura)58, ara muIheres (62,1 x aIlura)44.7.

!inha
valor1 valor2
06 8
varivcis

!inha
valor1 valor2
06 8
08 5
varivcis
Algoritmos e programao I.indd 61 7/8/2013 16:01:08
Process Black
HO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKJQ ):C589: 4: FXFGRC: UKU
Excmp!n 5.5 - Ca!cu!a n pcsn idca! dc uma pcssna.
01 algoritmo exemplo55
02 variveis
03 genero: caractere
04 altura, peso_ideal: real
05 incio
06 escrever("Qual o seu gnero(M ou F)? ")
07 ler(genero)
08 escrever("Qual a sua altura? ")
09 ler(altura)
10 se(genero="M")ento
11 peso_ideal (72.7*altura)-58
12 seno
13 se(genero="F")ento
14 peso_ideal (62.1*altura)-44.7
15 seno
16 incio
17 peso_ideal 0
18 escrever("Gnero invlido.")
19 fim
20 escrever("Peso ideal = ", peso_ideal)
21 fim
A soIuo desle exemIo sera usada ara reIembrar aIguns fundamenlos |a
esludados: (a) a variaveI genero foi decIara do lio caraclere (Iinha 03), or isso,
ao comara-Ia com M ou com I, esles devem eslar enlre asas, como ode ser
observado nas Iinhas 10 e 13, (b) a cIausuIa seno da Iinha 15 ossui um bIoco de
inslrues a ser execulado, deIimilado eIas direlivas de inicio (Iinha 16) e fim (Iinha
19), (c) o lexlo do aIgorilmo esla indenlado, faciIilando a sua Ieilura e comreenso
a inslruo rimiliva de saida da Iinha 20 esla aIinhada as inslrues anleriores a
eslrulura SI, ou se|a, eIa no faz arle desla eslrulura e sera execulada semre.
Excmp!n 5.6
Dcscrin dn prnb!cma: Ieia um vaIor inleiro e verifique se eIe e ar ou imar.
Algoritmos e programao I.indd 62 7/8/2013 16:01:09
Process Black
HQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKJ0 ):C589: 4: FXFGRC: UKH
Excmp!n 5.6 - VcriIica sc um va!nr par nu mpar.
01 algoritmo exemplo56
02 variveis
03 valor: inteiro
04 incio
05 escrever("Digite um valor inteiro: ")
06 ler(valor)
07 se(valor mod 2 = 0)ento
08 escrever(valor, " par.")
09 seno
10 escrever(valor, " mpar.")
11 fim
Nesle caso, a variaveI valor deve ser do lio inleiro ara ser uliIizada com o
oerador mod, que relorna o reslo de uma diviso.
Excmp!n 5.7
Dcscrin dn prnb!cma: um banco concedera um credilo eseciaI aos seus cIienles,
variaveI conforme o saIdo medio no uIlimo ano. Conslrua um aIgorilmo que Ieia
o saIdo medio de um cIienle, caIcuIe e escreva o vaIor do credilo de acordo com
a labeIa a seguir.
5a!dn mdin Crditn
Ale R 500,00 sem credilo
Inlre R 501,00 e 1.000,00 20 sobre o vaIor do saIdo medio
Inlre R 1.000,00 e 3.000,00 30 sobre o vaIor do saIdo medio
Acima de R 3.000,00 40 sobre o vaIor do saIdo medio
Algoritmos e programao I.indd 63 7/8/2013 16:01:09
Process Black
H0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKJU ):C589: 4: FXFGRC: UKW
Excmp!n 5.7 - Ca!cu!a n va!nr dc crditn dispnnvc! para um c!icntc.
01 algoritmo exemplo57
02 variveis
03 saldo_medio, credito: real
04 incio
05 escrever("Digite o saldo mdio do cliente no ltimo ano: ")
06 ler(saldo_medio)
07 se(saldo_medio<=500)ento
08 credito 0
09 seno
10 se(saldo_medio>500)e(saldo_medio<=1000)ento
11 credito saldo_medio*0.2
12 seno
13 se(saldo_medio>1000)e(saldo_medio<=3000)ento
14 credito saldo_medio*0.3
15 seno
16 credito saldo_medio*0.4
17 escrever ("O cliente tem R$", credito," de crdito.")
18 fim
Nesle exemIo, as eslruluras SI das Iinhas 10 e 13 ossuem duas condies com o
oerador Igico I enlre eIas. Desla forma, ara que a inslruo da cIausuIa ento
se|a execulada, as duas condies devem resuIlar verdadeiro.
Excmp!n 5.8
Dcscrin dn prnb!cma: faa um aIgorilmo que execule as oeraes basicas de uma
caIcuIadora. Leia dois vaIores numericos e um simboIo, caso o simboIo se|a um dos
reIacionados a seguir efelue a oerao corresondenle com os vaIores digilados
eIo usuario, caso conlrario, digile a mensagem Oerador invaIido!. SimboIos:
+ soma, - sublrao, muIliIicao, / diviso. Aleno ara a diviso or 0!
Algoritmos e programao I.indd 64 7/8/2013 16:01:09
Process Black
HU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKJH ):C589: 4: FXFGRC: UK_
Excmp!n 5.8 - Exccuta as npcracs bsicas dc uma ca!cu!adnra.
01 algoritmo exemplo58
02 variveis
03 valor1, valor2: real
04 op: caractere
05 incio
06 escrever("Valor 1: ")
07 ler(valor1)
08 escrever("Operador (+ - * /): ")
09 ler(op)
10 escrever("Valor 2: ")
11 ler(valor2)
12 se(op="+")ento
13 escrever("Resultado = ", valor1+valor2)
14 seno
15 se(op="-")ento
16 escrever("Resultado = ", valor1-valor2)
17 seno
18 se(op="*")ento
19 escrever("Resultado = ", valor1*valor2)
20 seno
21 se(op="/")ento
22 se(valor2<>0)ento
23 escrever("Resultado = ", valor1/valor2)
24 seno
25 escrever("No possvel dividir por 0.")
26 seno
27 escrever("Operador invlido!")
28 fim
A soIuo aresenlada nesle exemIo ossui varias eslruluras SI encadeadas, onde
a variaveI op foi comarada a qualro oeradores diferenles (Iinhas 12, 15, 18 e 21).
Nesla siluao, quando a variaveI e do lio inleiro Igico, ou caraclere e recisa ser
comarada com varios vaIores, lambem e ossiveI resoIver o robIema uliIizando
a eslrulura condicionaI ISCOLHA, lema do rximo cailuIo.
UK0 B:AG7>789: 47 =:C589: 4: 7CN:A<>G:
Como ode ser observado nos exemIos aresenlados ale agora, as soIues lm
seu lexlo indenlado (indenlar significa inserir delerminado esao enlre a margem
da agina e o inicio do lexlo de um aragrafo). Recomenda-se o uso de indenlao
no lexlo do aIgorilmo ara faciIilar a sua Ieilura. O Quadro 5.17 aresenla o mesmo
lrecho de um aIgorilmo sem e com indenlao, iIuslrando o quanlo a segunda
oo deixa o aIgorilmo mais IegiveI.
Algoritmos e programao I.indd 65 7/8/2013 16:01:09
Process Black
HH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: UKJW B:AG7>789: 4: >FX>: 4: 7CN:A<>G:
5cm indcntan Cnm indcntan
se(valor1>valor2)ento
escrever(valor1)
seno
se(valor2>valor1)ento
escrever(valor2)
seno
escrever("Valores iguais!")
se(valor1>valor2)ento
escrever(valor1)
seno
se(valor2>valor1)ento
escrever(valor2)
seno
escrever("Valores iguais!")
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
!><V<474F=
Partc I - Qucstcs nb|ctivas c tcstcs dc mcsa
1) As execular o lesle a seguir:
x 0
se (a <= b) e (c > b) ento
x 5
seno
x 10
x eslara armazenando 10 se:
(a) a b c,
(b) a > b c,
(c) a b c,
(d) a b c,
(e) Nenhuma das aIlernalivas anleriores.
Algoritmos e programao I.indd 66 7/8/2013 16:01:09
Process Black
HW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
2) As execular o lesle a seguir:
w 10
se (g <= m) ou (h < m) ento
w w * 5
seno
w w / 5
eslara armazenando 2 se:
(a) h m g,
(b) h m g,
(c) g m h,
(d) h m g,
(e) Nenhuma das aIlernalivas anleriores.
3) Considerando o aIgorilmo aresenlado a seguir...
aIgorilmo teste_de_mesa
variveis
x, y, z: lgico
incio
ler(x,y,z)
se(x=V)ento
se(y=V)ento
incio
comando 1
se(z=F)ento
comando 2
seno
comando 3
comando 4
" m
seno
comando 5
comando 6
fim
Algoritmos e programao I.indd 67 7/8/2013 16:01:10
Process Black
H_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
(a) Se x V, y I e z V, quais os comandos sero execulados
(b) Se x V, y V e z V, quais os comandos sero execulados
(c) Quais os vaIores de x, y e z ara que somenle o comando 5 se|a
execulado
(d) Quais os vaIores de x, y e z ara que somenle o comando 6 se|a
execulado
(e) Nenhuma das aIlernalivas anleriores.

4) Indique a saida dos lrechos de aIgorilmo aresenlados a seguir,
considerando
A 20, 5, C 5 e D 5.
(a)
se NO(D > 5) ento
X(A+B)*D
seno
X(A-B)/C
escreva X
Saida:
(b)
se(A>2)E(B<7)ento
X(A+2)*(B-2)
seno
X(A+B)/D*(C+D)
escreva X
Saida:
(c)
se(A=2)OU(B>7)ento
X(A+2)*(B-2)
seno
X(A+B)/D*(C+D)
escreva X
Saida:
(d)
se NO(A>3)E NO(B<7)ento
XA+B
seno
XA/B
escreva X
Saida:
Algoritmos e programao I.indd 68 7/8/2013 16:01:10
Process Black
HL
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
5) O aIgorilmo aresenlado a seguir caIcuIa a quanlidade de Ialas de linla
necessarias e o cuslo ara inlar lanques ciIindricos de combusliveI. Os dados
de enlrada so a aIlura (h) e o raio (r) do ciIindro. A Iala de linla cusla R 24,00,
cada Iala conlem 5 Iilros e cada Iilro inla 3 melros quadrados.
algoritmo exercicio5
variveis
h, r, c, qtde, area, litro: real
incio
ler (h, r)
area (3.14*r**2)+(2*3.14*r*h)
litro area/3
qtde litro/5
c qtde*24
escrever ("Custo = R$ ", c)
escrever ("Quantidade de latas de tinta = ", qtde)
" m
QuaI a saida do aIgorilmo, considerando h 6 e r 2 Considere duas casas
decimais ara fazer os caIcuIos.
Partc II - Rcsn!un dc prnb!cmas
Iara cada um dos exercicios a seguir, monle o esquema com os eIemenlos basicos
(enlrada / rocessamenlo / saida), conslrua o aIgorilmo com a soIuo ara o
robIema e, or fim, reaIize o lesle de mesa ara assegurar que a resosla esle|a
correla.
1) Conslrua um aIgorilmo que veri!que se o nome e a senha informados eIo
usuario so vaIidos considerando a labeIa a seguir. Imila uma das mensagens
Acesso Iiberado ou Acesso negado.
Usurin 5cnha
anaIuisa 990123
Iuciano 714460
|osue 134895
Algoritmos e programao I.indd 69 7/8/2013 16:01:10
Process Black
WP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
2) A empresa 1001 Utilidades precisa de um algoritmo para calcular o salrio de
seus funcionrios. O salrio bruto de cada funcionrio calculado com base
no n de horas por ele trabalhadas no ms e o valor que ele recebe por hora.
O salrio lquido deve considerar a comisso de 2% sobre o total das vendas
realizadas pelo funcionrio no ms, o bnus por tempo de servio (conforme a
tabela abaixo) e, nalmente, o desconto de INSS (8% sobre o total a receber).
Para a empresa, importante ter os seguintes valores disponveis em R$:
salrio xo, total de adicionais (comisso + bnus), desconto INSS e salrio
lquido.
Tcmpn dc scrvin Bnus
Inlre 2 e 4 anos 2
Inlre 5 e 10 anos 5
Maior que 10 anos 10
3) Iaa um aIgorilmo que, lendo como dados de enlrada um onlo quaIquer,
delermine e escreva o seu quadranle.
2 1
3 4

Algoritmos e programao I.indd 70 7/8/2013 16:01:10


Process Black
WJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
4) }oo Iao-de-Iescador, homem de bem, comrou um microcomulador
ara conlroIar o rendimenlo diario de seu lrabaIho. Toda vez que eIe voIla de
um dia de escaria e lraz um eso de eixes maior que o eslabeIecido eIo
reguIamenlo de esca do eslado Rio Grande do SuI (100 quiIos) deve agar
uma muIla or quiIo excedenle, que varia de acordo com a labeIa abaixo.
Pcsn cm cxccssn (E) Va!nr da mu!ta p/ qui!n cxccdcntc
1 I 28 R 2,50
28 I 50 R 7,80
I > 50 R 13,00

Iaa um aIgorilmo que Ieia a variaveI I (eso de eixes) e veri!que se ha
excesso. Se houver, armazene o excesso de eso na variaveI I e o vaIor da muIla
que }oo devera agar na variaveI M, caso conlrario lais variaveis devero
receber 0 (zero). Aresenle o eso em excesso e o vaIor da muIla.
5) Iaa um aIgorilmo que Ieia lrs vaIores (A, e C) e veri!que se eIes formam
ou no um lringuIo. Se for um lringuIo, indique de que lio e: equiIalero,
escaIeno ou issceIes.
TringuIo: forma geomelrica comosla or lrs Iados, sendo que cada Iado
e menor que a soma dos oulros dois Iados (islo e uma regra, ou se|a, uma
condio). Logo, e lringuIo quando A +C, A+C e CA+.
IssceIes: dois Iados iguais (A) ou (AC) ou (C).
IscaIeno: lodos os Iados diferenles (A>) e (>C).
IquiIalero: lodos os Iados iguais (A) e (C).
Rcspnstas dns cxcrccins da Partc I
1 - b
2 - b
3 (a) Comandos 5 e 6,
3 (b) Comandos 1, 3, 4 e 6,
3 (c) x V, y I, z no e leslado,
3 (d) ImossiveI execular aenas o comando 6.

Algoritmos e programao I.indd 71 7/8/2013 16:01:10
Process Black
WO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
4 (a) 3
4 (b) 66
4 (c) 50
4 (d) 4

5 - Cuslo R 140,64
Quanlidade de Ialas de linla 5,86
Algoritmos e programao I.indd 72 7/8/2013 16:01:11
Process Black
H
+)'%1'1%! ;+ M$/'%$"+ M$/;&M&$/!"^
+)M$"`!
E7@F==7 "<@4FG7@@
O cailuIo anlerior aresenlou a eslrulura condicionaI SI, que avaIia uma exresso
Igica que resuIla verdadeiro ou faIso. Se o resuIlado desla exresso for verdadeiro,
as inslrues da cIausuIa ento so execuladas. Caso conlrario, o fIuxo e desviado
ara execular as inslrues da cIausuIa seno. Tem-se, orlanlo, dois caminhos
ossiveis a serem seguidos. Im siluaes de iguaIdade ara uma mesma variaveI,
em que e necessario comarar a variaveI com varios vaIores, uliIiza-se a eslrulura
condicionaI SI encandeada (como iIuslrou o exemIo 5.8). Nesle caso, lem-se uma
seIeo de muIliIa escoIha.
O uso da eslrulura condicionaI ISCOLHA, lema desle cailuIo, ode simIificar
baslanle a cascala de eslruluras SI, necessaria em siluaes de seIeo de muIliIa
escoIha. A eslrulura ISCOLHA ode ser uliIizada, orlanlo, em siluaes de
iguaIdade ara uma mesma variaveI, desde que esla variaveI se|a do lio inleiro,
caraclere ou Igico.
A sinlaxe da eslrulura condicionaI ISCOLHA e aresenlada a seguir.
escolha(<varivel>)
caso <1>: <instruo ou bloco de instrues>
caso <2>: <instruo ou bloco de instrues>
caso <n>: <instruo ou bloco de instrues>
seno
<instruo ou bloco de instrues>
fim
Algoritmos e programao I.indd 73 7/8/2013 16:01:11
Process Black
W0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Se a variaveI avaIiada liver um dos vaIores Iislados nas oes, a inslruo (ou
bIoco de inslrues) corresondenle ao caso sera execulada. Quando a variaveI
for diferenle de lodas as oes Iisladas, a inslruo (ou bIoco de inslrues) da
cIausuIa seno sera execulada. A cIausuIa seno e ocionaI nesla eslrulura.
Iara demonslrar a aIicao da eslrulura condicionaI ISCOLHA, a soIuo do
exemIo 5.8 (descrila no cailuIo 5), que execula as oeraes basicas de uma
caIcuIadora, foi reescrila no Quadro 6.1 subsliluindo a eslrulura SI encadeada
eIa eslrulura ISCOLHA.
\574A: HKJ ):C589: 4: FXFGRC: UK_ 6:G F=>A5>5A7 +)M$"`!
Excmp!n 5.8 - Exccuta as npcracs bsicas dc uma ca!cu!adnra.
01 algoritmo exemplo58
02 variveis
03 valor1, valor2: real
04 op: caractere
05 incio
06 escrever("Valor 1: ")
07 ler(valor1)
08 escrever("Operador (+ - * /): ")
09 ler(op)
10 escrever("Valor 2: ")
11 ler(valor2)
12 escolha(op)
13 caso "+": escrever("Resultado = ", valor1+valor2)
14 caso "-": escrever("Resultado = ", valor1-valor2)
15 caso "*": escrever("Resultado = ", valor1*valor2)
16 caso "/": se(valor2<>0)ento
17 escrever("Resultado = ", valor1/valor2)
18 seno
19 escrever("No possvel dividir por 0.")
20 seno
21 escrever("Operador invlido!")
22 fim
23 fim
Comarando esla soIuo a aresenlada no cailuIo 5, que uliIizou eslrulura
SI encadeada, e ossiveI observar o quanlo a eslrulura condicionaI ISCOLHA
simIifica a Ieilura e a comreenso do aIgorilmo.
Na sequncia, so aresenlados mais aIguns exemIos ara demonslrar a aIicao
da eslrulura condicionaI ISCOLHA.
Algoritmos e programao I.indd 74 7/8/2013 16:01:11
Process Black
WU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 6.1
Dcscrin dn prnb!cma: faa um aIgorilmo que Ieia um vaIor inleiro enlre 0 e 10
e escreva o vaIor or exlenso.
\574A: HKO ):C589: 4: FXFGRC: HKJ
Excmp!n 6.1 - Escrcvc um va!nr cntrc 0 c 10 pnr cxtcnsn.
01 algoritmo exemplo61
02 variveis
03 valor: inteiro
04 incio
05 escrever("Digite um valor entre 0 e 10: ")
06 ler(valor)
07 escolha(valor)
08 caso 0: escrever("Zero")
09 caso 1: escrever("Um")
10 caso 2: escrever("Dois")
11 caso 3: escrever("Trs")
12 caso 4: escrever("Quatro")
13 caso 5: escrever("Cinco")
14 caso 6: escrever("Seis")
15 caso 7: escrever("Sete")
16 caso 8: escrever("Oito")
17 caso 9: escrever("Nove")
18 caso 10: escrever("Dez")
19 seno
20 escrever("Valor invlido!")
21 fim
22 fim
Excmp!n 6.2
Dcscrin dn prnb!cma: faa um aIgorilmo que Ieia um cdigo (COD) e duas
variaveis ( e ). Quando o cdigo for A: lesle e informe se e ar ou imar, :
lesle e informe quaI o menor vaIor ( ou ), C: verifique e informe se os vaIores
so muIliIos.
Algoritmos e programao I.indd 75 7/8/2013 16:01:11
Process Black
WH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: HKQ ):C589: 4: FXFGRC: HKO
Excmp!n 6.2 - Exccuta instrucs cnnInrmc um cdign (A, B nu C).
01 algoritmo exemplo62
02 variveis
03 codigo: caractere x, y: inteiro
04 incio
05 escrever("Qual o cdigo (A, B ou C)? ") ler(codigo)
06 escrever("Qual o valor de x? ") ler(x)
07 escrever("Qual o valor de y? ") ler(y)
08 escolha(codigo)
09 caso "A": se(x mod 2 = 0)ento
10 escrever(x, " par.")
11 seno
12 escrever(x, " mpar.")
13 caso "B": se(x<y)ento
14 escrever("x=",x," menor do que y=",y)
15 seno
16 se(x>y)ento
17 escrever("y=",y," menor do que x=",x)
18 seno
19 escrever(x," e ",y," so iguais")
20 caso "C": se(x mod y = 0)ou(y mod x = 0)ento
21 escrever(x," e ",y," so mltiplos)
22 seno
23 escrever(x," e ",y," no so mltiplos)
24 seno
25 escrever("Cdigo invlido! Digite A, B ou C.")
26 fim
27 fim
Como foi exIicado anleriormenle, o aIgorilmo e execulado de cima ara baixo e
da esquerda ara a direila, enlo e ossiveI escrever mais de uma inslruo or
Iinha como iIuslram as Iinhas 03, 05, 06 e 07.
Excmp!n 6.3
Dcscrin dn prnb!cma: considerando o cardaio de uma Ianchonele, aresenlado
a seguir, conslrua um aIgorilmo que caIcuIe e informe o vaIor a ser ago or um
Algoritmos e programao I.indd 76 7/8/2013 16:01:11
Process Black
WW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
delerminado cIienle. O aIgorilmo deve Ier o cdigo do rodulo e a quanlidade
adquirida, caIcuIar e escrever o lolaI a agar.
Cdign Dcscrin Prcn
001 Cachorro-quenle 8,00
002 Torrada 6,00
003 is 12,00
004 Refrigeranle 3,00
005 Suco 3,00
006 gua mineraI 2,00
\574A: HK0 ):C589: 4: FXFGRC: HKQ
Excmp!n 6.3 - Ca!cu!a n tnta! a pagar cm uma !anchnnctc.
01 algoritmo exemplo63
02 variveis
03 codigo, qtde: inteiro
04 incio
05 escrever("Digite o cdigo do produto: ")
06 ler(codigo)
07 escrever("Digite a quantidade: ")
06 ler(qtde)
08 escolha(codigo)
09 caso 001: escrever("Total a pagar = R$",qtde*8)
09 caso 002: escrever("Total a pagar = R$",qtde*6)
09 caso 003: escrever("Total a pagar = R$",qtde*12)
09 caso 004: escrever("Total a pagar = R$",qtde*3)
09 caso 005: escrever("Total a pagar = R$",qtde*3)
09 caso 006: escrever("Total a pagar = R$",qtde*2)
24 seno
25 escrever("Cdigo invlido!")
26 fim
27 fim
A soIuo aresenlada esla correla. Inlrelanlo, ossui Iimilaes, ois s e ossiveI
regislrar a comra de um rodulo a cada execuo do aIgorilmo. Iara resoIver
esle robIema, ermilindo o regislro de varios rodulos em uma mesma comra,
e necessario uliIizar as eslruluras de reelio, lema dos rximos cailuIos.
Algoritmos e programao I.indd 77 7/8/2013 16:01:11
Process Black
W_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
!><V<474F=
Iara cada um dos exercicios a seguir, monle o esquema com os eIemenlos basicos
(enlrada / rocessamenlo / saida), conslrua o aIgorilmo com a soIuo ara o robIema
e, or fim, reaIize o lesle de mesa ara assegurar que a resosla esle|a correla.
1) Conslrua um aIgorilmo que Ieia o cdigo de um rodulo e imrima sua descrio
e seu reo, conforme a labeIa a seguir. O aIgorilmo devera emilir uma mensagem
de aIerla, caso o cdigo do rodulo digilado no esle|a cadaslrado.
Cdign Dcscrin Prcn
1485 Camisela 35,00
2395 Camisa 70,40
3400 CaIa 120,00
4197 }aquela 190,00
5266 MoIelom 90,00
2 ) Uma emresa concedera um aumenlo de saIario aos seus funcionarios, variaveis
de acordo com o cargo, conforme a labeIa abaixo. Iscreva um aIgorilmo que Ieia o
saIario e o cdigo do cargo de um funcionario, caIcuIe o vaIor do novo saIario. Se
o cargo do funcionario no esliver na labeIa, eIe devera receber 40 de aumenlo.
Imrima a descrio do cargo, o saIario anligo, o novo saIario e a diferena.
Cdign Cargn % dc aumcntn
101 Gerenle 10
102 Ingenheiro 20
103 Tecnico 30
Algoritmos e programao I.indd 78 7/8/2013 16:01:12
Process Black
WL
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
3) Iscrever um aIgorilmo que Ieia os seguinles dados:
- o cdigo do eslado de origem da carga de um caminho (conforme a TabeIa 1),
- o eso da carga do caminho em loneIadas,
- o cdigo da carga (conforme a TabeIa 2).
Com base neslas informaes, o aIgorilmo deve caIcuIar e escrever:
- o eso da carga converlido em quiIos,
- o reo da carga do caminho,
- o vaIor do imoslo, considerando o reo da carga e o eslado de origem,
- o vaIor lolaI lransorlado eIo caminho (vaIor da carga + imoslo).
Tabc!a 1 Tabc!a 2
Cdign dn Estadn Impnstn Cdign da Carga Prcn pnr qui!n
1 35 10 50,00
2 25 20 100,00
3 15 30 200,00
4 5
5 isenlo
4) Iscreva um aIgorilmo que caIcuIe o que deve ser ago or um rodulo,
considerando como dados de enlrada o reo normaI de eliquela e a escoIha
da condio de agamenlo. UliIize os cdigos da labeIa a seguir ara efeluar
o caIcuIo do vaIor a ser ago deendendo da condio de agamenlo.
Cdign Cnndin dc pagamcntn
1 A visla, em dinheiro ou cheque, recebe 10 de desconlo
2 A visla, no carlo de credilo, recebe 5 de desconlo
3 Im 2 vezes, reo normaI de eliquela, sem |uros
4 Im 3 vezes, reo de eliquela mais |uros de 10
5) Iaa um aIgorilmo que Ieia um numero enlre 1 e 7 e informe o dia da semana
corresondenle, sendo domingo o numero 1. Caso o numero no corresonda
a um dia da semana, o aIgorilmo devera emilir mensagem de erro.
Algoritmos e programao I.indd 79 7/8/2013 16:01:12
Process Black
_P
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Algoritmos e programao I.indd 80 7/8/2013 16:01:12
Process Black
W
+)'%1'1%! ;+ M$/'%$"+ ;+ %+,+'&-.$^
+/\1!/'$
E7@F==7 "<@4FG7@@
Isle cailuIo da conlinuidade a discusso a reseilo de eslruluras de conlroIe
do fIuxo de execuo dos aIgorilmos. Inquanlo as eslruluras condicionais,
esludadas nos cailuIos anleriores, lm como ob|elivo escoIher enlre diferenles
fIuxos de execuo, a arlir da avaIiao de uma exresso, as eslruluras de
reelio ossibiIilam que uma ou mais inslrues se|am execuladas mais de
uma vez no aIgorilmo, enquanlo uma condio de inlerruo for salisfeila.
Como foi deslacado no uIlimo exemIo do cailuIo anlerior (exemIo 6.3), em
delerminadas siluaes, e necessario que um con|unlo de inslrues ossa ser
reelido varias vezes. O exemIo mencionado deveria caIcuIar o lolaI gaslo
or um cIienle em uma Ianchonele. Inlrelanlo, na soIuo aresenlada, s e
ossiveI regislrar a comra de um lio de rodulo cada vez que o aIgorilmo e
execulado. No e ossiveI, or exemIo, regislrar a comra de uma lorrada e
um refrigeranle. Iara resoIver essa Iimilao, faz-se necessario o uso de uma das
eslruluras de conlroIe de reelio, como ode ser observado mais adianle.
As eslruluras de conlroIe de reelio dividem-se em INQUANTO, RIIITA
e IARA. IIas diferenciam-se em reIao ao momenlo em que a condio de
inlerruo sera avaIiada, que ode ser anles ou deois da rimeira ilerao.
Oulro falor a ser considerado na escoIha da eslrulura de reelio a ser
usada refere-se ao conhecimenlo revio sobre o numero de ileraes a serem
reaIizadas.
A eslrulura de conlroIe de reelio INQUANTO e o ob|elo de esludo do resenle
cailuIo, as oulras duas eslruluras sero abordadas nos cailuIos subsequenles. A
eslrulura INQUANTO ermile execular uma ou mais inslrues reelidamenle
Algoritmos e programao I.indd 81 7/8/2013 16:01:12
Process Black
_O
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
enquanlo sua condio de inlerruo resuIlar verdadeiro. A sinlaxe da eslrulura
de reelio INQUANTO e aresenlada a seguir.
enquanto(<condio>)faa
<instruo ou bloco de instrues>
Como ode ser observado, a condio de inlerruo e verificada anles da execuo
da inslruo ou bIoco de inslrues a ser reelido. Se o resuIlado desla condio
for verdadeiro, a inslruo ou bIoco de inslrues e execulado e, Iogo as esla
ilerao, o fIuxo de execuo relorna ara o inicio da eslrulura INQUANTO e a
condio e avaIiada novamenle. Isle rocesso e reelido ale que a condio de
inlerruo resuIle faIso. Nesle caso, o fIuxo de execuo do aIgorilmo conlinuara
a arlir da inslruo imedialamenle as a eslrulura INQUANTO. VaIe deslacar
que, como a condio de inlerruo e avaIiada no inicio da eslrulura de conlroIe,
quando esla resuIlar faIso na rimeira vez em que for verificada, a inslruo ou
bIoco de inslrues da eslrulura no sera execulado nenhuma vez.
Iara exemIificar a aIicao da eslrulura INQUANTO, o robIema descrilo
no exemIo 6.3 sera resoIvido novamenle a seguir nesle cailuIo denominado
exemIo 7.1.

Excmp!n 7.1
Dcscrin dn prnb!cma: considerando o cardaio de uma Ianchonele, aresenlado
a seguir, conslrua um aIgorilmo que caIcuIe e informe o vaIor a ser ago or um
delerminado cIienle. O aIgorilmo deve Ier o cdigo do rodulo e a quanlidade
adquirida, caIcuIar e escrever o lolaI a agar.
Cdign Dcscrin Prcn
001 Cachorro-quenle 8,00
002 Torrada 6,00
003 is 12,00
004 Refrigeranle 3,00
005 Suco 3,00
006 gua mineraI 2,00
Algoritmos e programao I.indd 82 7/8/2013 16:01:12
Process Black
_Q
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: WKJ ):C589: 4: FXFGRC: WKJ
Excmp!n 7.1 - Ca!cu!a n tnta! a scr pagn pnr um c!icntc cm uma !anchnnctc.
01 algoritmo exemplo71
02 variveis
03 codigo, qtde: inteiro
04 total: real
05 resp: caractere
06 incio
07 total 0
08 resp "S"
09 enquanto(resp="S")faa
10 incio
11 escrever("Digite o cdigo do produto: ")
12 ler(codigo)
13 escrever("Digite a quantidade adquirida: ")
14 ler(qtde)
15 escolha(codigo)
16 caso 001: total total + (qtde*8.00)
17 caso 002: total total + (qtde*6.00)
18 caso 003: total total + (qtde*12.00)
19 caso 004: total total + (qtde*3.00)
20 caso 005: total total + (qtde*3.00)
21 caso 006: total total + (qtde*2.00)
22 seno
23 escrever("Cdigo invlido!")
24 fim
25 escrever("Continuar o registro de produtos? S/N ")
26 ler(resp)
27 fim
28 escrever("Total a pagar = R$",total)
29 fim
Anles de iniciar a soIuo do aIgorilmo, e necessario Ier com aleno o seu
enunciado ara idenlificar os dados de enlrada e saida e definir como rocessa-
Ios ara resoIver o robIema. Nesle caso, or exemIo, a arlir da descrio
do robIema no e ossiveI saber reviamenle o numero de ileraes a serem
reaIizadas. Um cIienle ode comrar dois ilens diferenles (lorrada + refrigeranle),
oulro cIienle ode comrar qualro ilens (lorrada + refrigeranle + xis + suco). Dianle
desle conlexlo, as cada ilerao, o usuario ira informar se dese|a conlinuar o
regislro de rodulos ou lolaIizar a comra. A resosla do usuario e leslada na
condio de inlerruo (Iinha 09), de forma que enquanlo sua resosla for S
(sim), o bIoco de inslrues (enlre as Iinhas 10 e 27) que ermile o regislro de
Algoritmos e programao I.indd 83 7/8/2013 16:01:12
Process Black
_0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
uma comra sera reelido. Quando o usuario resonder N (no), a condio de
inlerruo no sera salisfeila e o fIuxo de execuo conlinuara a arlir da inslruo
imedialamenle as o bIoco da eslrulura INQUANTO, ou se|a, na Iinha 28, que
exibira uma mensagem ao usuario com o vaIor lolaI a ser ago.
Considerando que as eslruluras de conlroIe de reelio ermiliro a criao
de aIgorilmos mais comIexos, ara os quais a necessidade de lesles se faz mais
resenle, roe-se a reaIizao do lesle de mesa desle aIgorilmo, cu|o resuIlado
ode ser observado no Quadro 7.2. Iara simuIar a execuo desle aIgorilmo foi
considerada a comra dos seguinles rodulos: duas lorradas, um xis e lrs sucos
- dados de enlrada, Iislados a esquerda no Quadro 7.2.
\574A: WKO 3 'F=>F 4F GF=7 4: FXFGRC: WKJ
Excmp!n 5.4 - Encnntra n mainr cntrc dnis va!nrcs quaisqucr.
Entrada Tcstc dc mcsa 5ada
2 torradas TolaI a agar R 33,00
1 xis
3 sucos
A simuIao de execuo e iniciada na Iinha 07 (Quadro 7.1), onde a variaveI
total e iniciaIizada com 0 (zero), gerando o rimeiro regislro na labeIa do lesle
de mesa (Quadro 7.2). Na sequncia (Iinha 08), a variaveI resp e iniciaIizada com o
caraclere S. Isla variaveI ira armazenar a resosla do usuario referenle a conlinuar
!inha
varivc!
resp cod qtde total
07 0
08 S
12 002
14 2
17 12.00
26 S
12 003
14 1
18 24.00
26 S
12 005
14 3
20 33.00
26 N
Algoritmos e programao I.indd 84 7/8/2013 16:01:13
Process Black
_U
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
ou no o regislro de rodulos (Iinha 26) que, consequenlemenle, sera a condio
de inlerruo da eslrulura INQUANTO (Iinha 09). Inlrelanlo, na rimeira
verificao da condio de inlerruo (Iinha 09), o usuario ainda no resondeu
se dese|a conlinuar ou no e, or isso, a variaveI resp esla vazia. Iara que o bIoco
de inslrues da eslrulura se|a execulado, a condio de inlerruo da eslrulura
devera resuIlar verdadeiro, ou se|a, a variaveI resp deve ser iniciaIizada com S.
A condio de inlerruo da Iinha 09 (Quadro 7.1) e avaIiada e resuIla verdadeiro
orque, nesle momenlo, a variaveI resp esla armazenando S, como ode ser
observado na segunda Iinha da labeIa do lesle de mesa, no Quadro 7.2. Na
sequncia, o usuario ira informar o cdigo do rodulo escoIhido eIo cIienle
(vaIor Iido na Iinha 12 do Quadro 7.1 e armazenado na variaveI codigo) e a
quanlidade adquirida (vaIor Iido na Iinha 14 do Quadro 7.1 e armazenado na
variaveI qtde). A eslrulura de seIeo ISCOLHA e usada ara desviar o fIuxo
de execuo ara o caso 002, que reresenla a lorrada comrada eIo cIienle.
Nesle momenlo, na Iinha 17 (Quadro 7.1), total total + (qtde*6.00),
ou se|a, a variaveI lolaI recebe o que eIa |a linha armazenado (zero), mais o vaIor
resuIlanle de (qtde*6.00) (ou se|a, 2 lorradas x 6,00 12,00), funcionando
como um acumuIador (as variaveis usadas com a funo de acumuIar vaIores
semre devem ser iniciaIizadas).
A execuo lera conlinuidade na Iinha 25 (Quadro 7.1), na inslruo imedialamenle
as a eslrulura ISCOLHA, quando o usuario sera queslionado se dese|a conlinuar
o regislro de rodulos. Considerando os dados de enlrada escoIhidos ara esla
simuIao, a resosla do usuario devera ser S ois ainda faIlam regislrar dois lios
de rodulos: xis e suco. Isla resosla e Iida na Iinha 26 (Quadro 7.1) e armazenada
na variaveI resp, como ode ser observado no rimeiro regislro da Iinha 26 na
labeIa do lesle de mesa (Quadro 7.2). Incerra-se, orlanlo, a rimeira ilerao
desla simuIao.
Ao enconlrar o finaI do bIoco de inslrues da eslrulura INQUANTO (Iinha
27 Quadro 7.1), o fIuxo de execuo relorna ara a Iinha 09, onde sua condio
de inlerruo e leslada novamenle. Como a variaveI resp esla armazenando S
nesle momenlo, a condio resuIlara verdadeiro e, consequenlemenle, o bIoco de
inslrues da eslrulura INQUANTO sera execulado novamenle nesla segunda
ilerao sera regislrada a comra do rodulo de cdigo 003 (xis). Uma lerceira
ilerao sera execulada ara regislrar a comra do rodulo de cdigo 005 (suco).
Deois de regislrar os sucos, o usuario devera resonder que no quer conlinuar
regislrando rodulos e a variaveI resp eslara armazenando N, como moslra
a uIlima Iinha da labeIa do lesle de mesa (Quadro 7.2). Logo, a condio de
inlerruo no sera salisfeila, ou se|a, resp no e mais iguaI a S. O lolaI a agar
(R 33,00) e exibido ao usuario alraves da inslruo da Iinha 28 (Quadro 7.1) e a
simuIao do aIgorilmo e encerrada (Iinha 29 Quadro 7.1).
Algoritmos e programao I.indd 85 7/8/2013 16:01:13
Process Black
_H
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Na sequncia, oulros exemIos da aIicao da eslrulura de conlroIe INQUANTO
so aresenlados. Sero enconlradas, a arlir da descrio dos robIemas, lrs
siluaes diferenles em reIao ao numero de ileraes a serem execuladas: siluao
01, quando o numero de ileraes e conhecido, siluao 02, quando o numero
de ileraes no e conhecido, mas a descrio do robIema define a condio de
inlerruo, siluao 03, quando nem o numero de ileraes, nem a condio de
inlerruo so conhecidos.
Na conslruo de aIgorilmos no exisle receila de boIo ara resoIver um
robIema. Um mesmo robIema ode ser resoIvido de n formas diferenles e lodas
as soIues eslarem iguaImenle correlas. Inlrelanlo, considerando as lrs siluaes
descrilas acima, referenles ao numero de ileraes e a condio de inlerruo
eslarem ou no reviamenle definidos no enunciado do robIema, aIgumas dicas
odem auxiIiar na resoIuo dos robIemas. Visando conlribuir nesle senlido, as
soIues aresenladas a seguir so cIassificadas conforme as siluaes descrilas e
as inslrues do aIgorilmo referenles a eIas aarecem em negrilo.
Excmp!n 7.2
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia 10 vaIores do lio inleiro,
caIcuIe e escreva a media dos vaIores Iidos.
Isle e um exemIo da rimeira siluao, ou se|a, o numero de ileraes esla
esecificado na descrio do robIema o bIoco de inslrues da eslrulura de
reelio devera ser execulado 10 vezes. Nesla siluao, cria-se uma variaveI
do lio conlador ara conlroIar o fIuxo da eslrulura de reelio. Isla variaveI,
denominada cont, devera: (a) ser iniciaIizada no inicio do aIgorilmo (cont 0),
(b) ser vaIidada na condio de inlerruo ara que se|am execuladas 10 ileraes
(cont <10), (c) ara cada vaIor Iido, conlar um (cont cont + 1). Islas
inslrues aarecem em negrilo na soIuo em orlugus eslrulurado aresenlada
no Quadro 7.3. Na sequncia, a Iigura 7.1 iIuslra esla mesma soIuo reresenlada
em fIuxograma.
Algoritmos e programao I.indd 86 7/8/2013 16:01:13
Process Black
_W
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
5ITUAO 01
N de ileraes delerminado.
\574A: WKQ ):C589: 4: FXFGRC: WKO
Excmp!n 7.1 - Ca!cu!a a mdia dc 10 va!nrcs !idns.
01 algoritmo exemplo72
02 variveis
03 valor, soma, cont: inteiro
04 media: real
05 incio
06 cont 0
07 soma 0
08 enquanto(cont<10)faa
09 incio
10 escrever(Digite um valor: )
11 ler(valor)
12 cont cont + 1
13 soma soma + valor
14 fim
15 media soma / 10
16 escrever(Mdia = , media)
17 fim
B<N5A7 WKJ ):C589: 4: FXFGRC: WKO AFRAF=F@>747 FG eC5X:NA7G7
Algoritmos e programao I.indd 87 7/8/2013 16:01:13
Process Black
__
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
A Siluao 02, em que o numero de ileraes no e conhecido mas a descrio do
robIema define a condio de inlerruo, ode ser observada no Quadro 7.4.
Nesle exemIo, a enlrada de dados devera ser encerrada quando o usuario digilar
0 (zero). Iorlanlo, a condio de inlerruo ira leslar a variaveI de enlrada. A
variaveI valor e Iida no inicio do aIgorilmo (Iinha 09 Quadro 7.4) e avaIiada na
condio da Iinha 10 Quadro 7.4. Se a condio resuIlar verdadeiro, o bIoco de
inslrues da eslrulura INQUANTO sera execulado. Isle bIoco ossui um conlador
e um acumuIador (Iinhas 12 e 13 Quadro 7.4), que sero usados ara caIcuIar a
media no finaI do aIgorilmo (Iinha 17 Quadro 7.4), aIem da inslruo rimiliva
de enlrada (Iinha 15 Quadro 7.4) que ira Ier um vaIor ara cada nova ilerao.
Excmp!n 7.3
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia varios vaIores do lio
inleiro (0 encerra a enlrada de dados), caIcuIe e escreva a media dos vaIores
Iidos.
\574A: WK0 ):C589: 4: FXFGRC: WKQ
Excmp!n 7.3 - Ca!cu!a a mdia dc vrins va!nrcs !idns.
01 algoritmo exemplo73
02 variveis
03 valor, soma, cont: inteiro
04 media: real
05 incio
06 cont 0
07 soma 0
08 escrever("Digite um valor: ")
09 ler(valor)
10 enquanto(valor<>0)faa
11 incio
12 cont cont + 1
13 soma soma + valor
14 escrever("Digite um valor: ")
15 ler(valor)
16 fim
17 media soma / cont
18 escrever("Mdia = ", media)
19 fim
5ITUAO 02
N de ileraes delerminado, com
condio de inlerruo definida.
Algoritmos e programao I.indd 88 7/8/2013 16:01:14
Process Black
_L
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
O Quadro 7.5 iIuslra a Siluao 03, quando nem o numero de ileraes, nem a
condio de inlerruo, so conhecidos. Como foi vislo no exemIo 7.1, nesles
casos, e necessario criar uma variaveI auxiIiar ara conlroIar o fIuxo de execuo
nos exemIos desle cailuIo usou-se a variaveI resp ara laI funo.
Excmp!n 7.4
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia varios vaIores do lio
inleiro, caIcuIe e escreva a media dos vaIores Iidos.
\574A: WKU ):C589: 4: FXFGRC: WK0
Excmp!n 7.4 - Ca!cu!a a mdia dc vrins va!nrcs !idns.
01 algoritmo exemplo74
02 variveis
03 valor, soma, cont: inteiro
04 media: real
05 resp: caractere
06 incio
07 cont 0
08 soma 0
09 resp "S"
10 enquanto(resp="S")faa
11 incio
12 escrever("Digite um valor: ")
13 ler(valor)
14 cont cont + 1
15 soma soma + valor
16 escrever("Continuar? S/N ")
17 ler(resp)
18 fim
19 media soma / cont
20 escrever("Mdia = ", media)
21 fim
5ITUAO 03
N de ileraes indelerminado, sem
condio de inlerruo definida.
Algoritmos e programao I.indd 89 7/8/2013 16:01:14
Process Black
LP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 7.5
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia 10 vaIores do lio inleiro
e verifique quanlos so muIliIos de lrs.
\574A: WKH ):C589: 4: FXFGRC: WKU
Excmp!n 7.5 - VcriIica quantns va!nrcs sn m!tip!ns dc trs.
01 algoritmo exemplo75
02 variveis
03 valor, cont, mult: inteiro
04 incio
05 cont 0
06 mult 0
07 enquanto(cont<10)faa
08 incio
09 cont cont + 1
10 escrever("Digite o ",cont," valor: ")
11 ler(valor)
12 Se(valor mod 3 = 0) ento
13 mult mult + 1
14 fim
15 escrever(mult, " valores so mltiplos de 3.")
16 fim
Excmp!n 7.6
Dcscrin dn prnb!cma: escreva um aIgorilmo que Ieia um numero no
delerminado de vaIores (quaIquer vaIor negalivo encerra a enlrada de dados),
enconlre e escreva o menor enlre eIes.
\574A: WKW ):C589: 4: FXFGRC: WKH
Excmp!n 7.6 - Encnntra n mcnnr cntrc ns va!nrcs digitadns pc!n usurin.
01 algoritmo exemplo76
02 variveis
03 valor, menor: real
04 incio
05 escrever("Digite um valor: ")
06 ler(valor)
07 menor valor
08 enquanto(valor>=0)faa
09 incio
10 se(valor<menor)ento
11 menor valor
12 escrever("Digite um valor: ")
13 ler(valor)
14 fim
15 escrever("Menor valor = ", menor)
16 fim
5ITUAO 01
N de ileraes delerminado.
5ITUAO 02
N de ileraes indelerminado, com
condio de inlerruo definida.
Algoritmos e programao I.indd 90 7/8/2013 16:01:14
Process Black
LJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 7.7
Dcscrin dn prnb!cma: uma emresa dese|a aumenlar o reo de seus rodulos
em 20. Iaa um aIgorilmo que Ieia o cdigo e o reo aluaI de cada rodulo
da emresa, caIcuIe e escreva o reo novo, caIcuIe e escreva a media dos reos
com o aumenlo.
\574A: WK_ ):C589: 4: FXFGRC: WKW
Excmp!n 7.7 - Ca!cu!a n prcn nnvn dns prndutns c a mdia dcstcs va!nrcs.
01 algoritmo exemplo77
02 variveis
03 cod, cont: inteiro
04 preco,preconovo,soma,media:real
05 resp: caractere
06 incio
07 cont 0
08 soma 0
09 resp "S"
10 enquanto(resp="S")faa
11 incio
12 escrever("Digite o cdigo e o preo atual: ")
13 ler(cod, preco)
14 preconovo preco * 1.2
15 escrever("Preo com 20% de aumento = R$ ",preconovo)
16 soma soma + preconovo
17 cont cont + 1
18 escrever("Continuar? S/N ")
19 ler(resp)
20 fim
21 media soma / cont
22 escrever("Mdia dos preos com aumento = ", media)
23 fim
Excmp!n 7.8
Dcscrin dn prnb!cma: escreva um aIgorilmo ara caIcuIar a media finaI de cada
um dos aIunos de uma lurma de AIgorilmos, considerando 03 nolas: lrabaIho A
com eso 3, lrabaIho com eso 2 e a rova com eso 5. AIem disso, e imorlanle
saber a media geraI da lurma.
5ITUAO 03
N de ileraes indelerminado, sem
condio de inlerruo definida.
Algoritmos e programao I.indd 91 7/8/2013 16:01:14
Process Black
LO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: WKL ):C589: 4: FXFGRC: WK_
Excmp!n 7.8 - Ca!cu!a a nnta Iina! dns a!unns dc uma turma c a mdia gcra! da turma.
01 algoritmo exemplo78
02 variveis
03 cont: inteiro
04 n1, n2, n3, soma, media: real
05 resp: caractere
06 incio
07 cont 0
08 soma 0
09 resp "S"
10 enquanto(resp="S")faa
11 incio
12 escrever("Digite as trs notas do aluno: ")
13 ler(n1, n2, n3)
14 media (n1*3 + n2*2 + n3*5)/10
15 escrever("Mdia do aluno = ",media)
16 soma soma + media
17 cont cont + 1
18 escrever("Continuar? S/N ")
19 ler(resp)
20 fim
21 media soma / cont
22 escrever("Mdia geral da turma = ", media)
23 fim
Excmp!n 7.9
Dcscrin dn prnb!cma: Chico lem 1,5m e cresce 2cm or ano, enquanlo Ze lem
1,1m e cresce 3cm ao ano. Conslrua um aIgorilmo que caIcuIe e moslre quanlos
anos sero necessarios ara que Ze se|a maior que Chico.
5ITUAO 03
N de ileraes indelerminado, sem
condio de inlerruo definida.
Algoritmos e programao I.indd 92 7/8/2013 16:01:14
Process Black
LQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: WKJP ):C589: 4: FXFGRC: WKL
Excmp!n 7.9 - Ca!cu!a quantns anns sn ncccssrins para quc Z sc|a mainr quc
Chicn.
01 algoritmo exemplo79
02 variveis
03 cont: inteiro
04 chico, ze: real
06 incio
07 cont 0
08 chico 1.5
08 ze 1.1
10 enquanto(ze<chico)faa
11 incio
12 chico chico + 0.02
13 ze ze + 0.03
14 cont cont + 1
20 fim
22 escrever("So necessrios", cont," anos para Z > Chico.")
23 fim
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
Algoritmos e programao I.indd 93 7/8/2013 16:01:15
Process Black
L0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
!><V<474F=
Partc I - Qucstcs nb|ctivas
1) O aIgorilmo a seguir imrime os numeros ares enlre 1 e 20.
( ) Cerlo
( ) Irrado
algoritmo exerc1
variveis
i,x,y: inteiro
incio
i 10 x 20 y 1
se(i>=y)ento
incio
i y
y x
fim
enquanto(i<y)faa
incio
i i + 1
escrever(i)
i i + 1
fim
fim
2) SimuIando a execuo do aIgorilmo a seguir,
algoritmo exerc2
variveis
a: inteiro
incio
ler(a)
enquanto(a<=100)faa
incio
se(a > -10)ento
escrever(a)
ler(a)
fim
fim
Algoritmos e programao I.indd 94 7/8/2013 16:01:15
Process Black
LU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
lendo como dados de enlrada 2, 9, 47, -7, -11, -49, 47, 30, 100, -100, -120, -47, 14,
114, 13, quanlos numeros sero imressos
(a) 8,
(b) 9,
(c) 7,
(d) 15,
(e) 6.
3) QuaI a saida do aIgorilmo a seguir, se as enlradas forem 1 e 9 e, deois, 5 e 3
algoritmo exerc3
variveis
i,v1,v2: inteiro
incio
ler(v1,v2)
se(v1>v2)ento
escrever(O primeiro valor deve ser menor que o
segundo.)
seno
incio
i v1
enquanto(i<=v2)faa
incio
se(i mod 2 <> 0)ento
escrever(i,, )
i i + 1
fim
fim
fim
Algoritmos e programao I.indd 95 7/8/2013 16:01:15
Process Black
LH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
(a) 1, 3, 5, 7, 9,
O rimeiro vaIor deve ser menor que o segundo.
(b) 1, 3, 5, 7, 9
O rimeiro vaIor deve ser menor que o segundo.
(c) 1, 3, 5, 7, 9,
3, 5
(d) 2, 4, 6, 8,
O rimeiro vaIor deve ser menor que o segundo.
(e) 1, 3, 5, 7, 9,
4,
4) Quanlos vaIores sero Iidos no aIgorilmo a seguir
algoritmo exerc4
variveis
valor: inteiro
incio
valor 0
enquanto(valor<>0)faa
incio
escrever(Digite um valor inteiro: )
ler(valor)
fim
fim
(a) Tanlos quanlos forem digilados.
(b) Tanlos quanlos forem digilados, ale ser digilado 0 (zero).
(c) Tanlos quanlos forem digilados, ale ser digilado um vaIor negalivo.
(d) Tanlos quanlos forem digilados, ale ser digilado um vaIor que no e
inleiro.
(e) Nenhum.
Algoritmos e programao I.indd 96 7/8/2013 16:01:15
Process Black
LW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
5) Considerando que e so numeros inleiros osilivos, assinaIe a aIlernaliva
CORRITA que descreve a larefa execulada eIo aIgorilmo abaixo.
algoritmo exerc5
variveis
x,y,z,w: inteiro
incio
escrever(Digite os valores de x e y: )
ler(x,y)
z 1
enquanto(z*y<=x)faa
z z+1
z z-1
w x-z*y
escrever(z,w)
fim
(a) Ixibe, reseclivamenle, o quocienle e o reslo da variaveI x eIa variaveI y.
(b) Ixibe, reseclivamenle, os dois rimeiros numeros rimos menores que x e y.
(c) Ixibe, reseclivamenle, o reslo e o quocienle da variaveI x eIa variaveI y.
(d) Ixibe, reseclivamenle, o vaIor corresondenle as variaveis y e x.
(e) Ixibe, reseclivamenle, o vaIor corresondenle as variaveis x e y.
Partc II - Rcsn!un dc prnb!cmas
Iara cada um dos exercicios a seguir, conslrua o aIgorilmo com a soIuo
ara o robIema e reaIize o lesle-de-mesa ara assegurar que a resosla esle|a
correla.
(1) Iscreva um aIgorilmo que Ieia varios vaIores, conle e informe quanlos
so osilivos e quanlos so negalivos. A enlrada de dados deve encerrar
quando o usuario digilar 0 (zero).
(2) Iscreva um aIgorilmo que Ieia 20 vaIores, enconlre e escreva o maior
enlre eIes.
Algoritmos e programao I.indd 97 7/8/2013 16:01:15
Process Black
L_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
(3) Iscreva um aIgorilmo que caIcuIe a media dos numeros ares digilados
eIo usuario. A enlrada de dados deve encerrar quando o usuario
digilar um vaIor menor ou iguaI a 0 (zero).
(4) Iaa um aIgorilmo que Iei um vaIor inleiro e osilivo, caIcuIe e escreva
o seu faloriaI.
IxemIos: !4 1 x 2 x 3 x 4 24
!5 1 x 2 x 3 x 4 x 5 120
Ior de!nio, !0 1
(5) Im uma eIeio residenciaI exislem 4 candidalos. Os volos so
informados alraves de cdigos, que obedecem a seguinle regra: 1, 2, 3,
4 volo ara os reseclivos candidalos, 5 volo nuIo, 6 volo branco.
IIabore um aIgorilmo que Ieia o volo de cada um dos eIeilores, caIcuIe
e escreva: lolaI de volos ara cada candidalo, lolaI de volos nuIos, lolaI
de volos em branco. Como !naIizador do con|unlo de dados lem-se o
vaIor 0 (zero).
Rcspnstas dns cxcrccins da Partc I
1 - Cerlo
2 - a
3 - a
4 - e
5 - a
Algoritmos e programao I.indd 98 7/8/2013 16:01:16
Process Black
_
+)'%1'1%! ;+ M$/'%$"+ ;+ %+,+'&-.$^
%+,&'!
E7@F==7 "<@4FG7@@
Ao conlrario da eslrulura INQUANTO, esludada no cailuIo anlerior, a condio
de inlerruo da eslrulura RIIITA e verificada no finaI de cada ilerao, como
ode ser observado na sua sinlaxe, aresenlada a seguir.
repita
<instruo ou bloco de instrues>
at(<condio>)
Uma ou mais inslrues sero execuladas reelidamenle ale que sua condio
resuIle verdadeiro. Como a condio s e avaIiada no finaI de cada ilerao, a
inslruo ou bIoco de inslrues a ser reelido sera execulado eIo menos uma vez,
indeendenle do vaIor iniciaI da condio de inlerruo. Deois de cada ilerao,
se o resuIlado da condio for faIso, o fIuxo de execuo relorna ara o inicio da
eslrulura RIIITA. Isle rocesso e reelido ale que a condio de inlerruo resuIle
verdadeiro. Nesle caso, o fIuxo de execuo do aIgorilmo conlinuara a arlir da
inslruo imedialamenle as a eslrulura RIIITA.
Como a eslrulura de reelio RIIITA e deIimilada eIa direliva ATI, as direlivas
de inicio e fim no so uliIizadas ara deIimilar seu bIoco de inslrues como nas
eslruluras esludadas nos cailuIos anleriores.
Iara exemIificar a aIicao da eslrulura RIIITA, so aresenlados na sequncia
seis exemIos. Os lrs rimeiros lm o mesmo ob|elivo, caIcuIar e escrever o
ercenluaI de vaIores negalivos digilados eIo usuario. Inlrelanlo, cada um
reresenla uma siluao diferenle em reIao ao numero de ileraes ou a condio
de inlerruo ser ou no reviamenle conhecido.
Algoritmos e programao I.indd 99 7/8/2013 16:01:16
Process Black
JPP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
No exemIo 8.1, a descrio do robIema indica que devero ser Iidos 25 vaIores,
ou se|a, o numero de ileraes e reviamenle conhecido cenario denominado
Siluao 01. No exemIo 8.2, no e ossiveI rever quanlos vaIores sero digilados,
mas a condio de inlerruo esla definida (o vaIor zero devera encerrar a enlrada
de dados) cenario denominado Siluao 02. Ior fim, a descrio do robIema do
exemIo 8.3 no conlemIa nenhuma deslas informaes, ou se|a, no e ossiveI
rever o numero de ileraes necessarias, nem a condio ara encerrar o Iao de
reelio cenario denominado Siluao 03.
Como no cailuIo anlerior, os robIemas so cIassificados em uma deslas siluaes
e as inslrues referenles a como rover o fIuxo de reelio em laI siluao
aarecem em negrilo.
Excmp!n 8.1
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia 25 vaIores, caIcuIe e escreva
o ercenluaI de vaIores negalivos.
\574A: _KJ ):C589: 4: FXFGRC: _KJ
Excmp!n 8.1 - Ca!cu!a n pcrccntua! dc va!nrcs ncgativns.
01 algoritmo exemplo81
02 variveis
03 cont, negativo: inteiro
04 valor, perc: real
05 incio
06 cont 0
07 negativo 0
08 repita
09 escrever("Digite um valor: ")
10 ler(valor)
11 cont cont + 1
12 se(valor < 0)ento
13 negativo negativo + 1
14 at(cont=25)
15 perc (negativo*100)/25
16 escrever("% de negativos = ",perc)
17 fim
5ITUAO 01
N de ileraes delerminado.
Algoritmos e programao I.indd 100 7/8/2013 16:01:16
Process Black
JPJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 8.2
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia varios vaIores do lio
inleiro (0 encerra a enlrada de dados), caIcuIe e escreva o ercenluaI de vaIores
negalivos.
\574A: _KO ):C589: 4: FXFGRC: _KO
Excmp!n 8.2 - Ca!cu!a n pcrccntua! dc va!nrcs ncgativns.
01 algoritmo exemplo82
02 variveis
03 cont, negativo: inteiro
04 valor, perc: real
05 incio
06 cont 0
07 negativo 0
08 repita
09 escrever("Digite um valor: ")
10 ler(valor)
11 cont cont + 1
12 se(valor < 0)ento
13 negativo negativo + 1
14 at(valor=0)
15 perc (negativo*100)/cont
16 escrever("% de negativos = ",perc)
17 fim
5ITUAO 02
N de ileraes indelerminado, com
condio de inlerruo definida.
Algoritmos e programao I.indd 101 7/8/2013 16:01:16
Process Black
JPO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 8.3
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia varios vaIores do lio
inleiro, caIcuIe e escreva o ercenluaI de vaIores negalivos.
\574A: _KQ ):C589: 4: FXFGRC: _KQ
Excmp!n 8.3 - Ca!cu!a n pcrccntua! dc va!nrcs ncgativns.
01 algoritmo exemplo83
02 variveis
03 cont, negativo: inteiro
04 valor, perc: real
05 resp: caractere
06 incio
07 cont 0
08 negativo 0
09 repita
10 escrever("Digite um valor: ")
11 ler(valor)
12 cont cont + 1
13 se(valor < 0)ento
14 negativo negativo + 1
15 escrever("Continuar? S/N ")
16 ler(resp)
17 at(resp="N")
18 perc (negativo*100)/cont
19 escrever("% de negativos = ",perc)
20 fim
5ITUAO 03
N de ileraes indelerminado, sem
condio de inlerruo definida.
Algoritmos e programao I.indd 102 7/8/2013 16:01:16
Process Black
JPQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 8.4
Dcscrin dn prnb!cma: uma esquisa reaIizada em um cIube coIelou informaes
sobre as caraclerislicas fisicas de 40 alIelas, quais se|am: gnero (I- feminino, M -
mascuIino), idade, eso e aIlura. Iscreva um aIgorilmo ara idenlificar: a maior
idade enlre os alIelas, a orcenlagem de muIheres e de homens, o n de homens
com menos de 1,70m, o eso medio das muIheres.
\574A: _K0 ):C589: 4: FXFGRC: _K0
Excmp!n 8.4 - Pcsquisa snbrc as caractcrsticas Isicas dc at!ctas.
01 algoritmo exemplo84
02 variveis
03 genero: caractere
04 peso, altura, soma, media: real
05 cont, idade, maior, fem, masc, alt: inteiro
06 incio
07 cont 0
08 maior 0 fem 0 masc 0 soma 0 alt 0
09 repita
10 escrever("Digite gnero, idade, peso e altura: ")
11 ler(genero, idade, peso, altura)
12 se(idade>maior)ento
13 maior idade
14 se(genero="F")ento
15 incio
16 fem fem + 1
17 soma soma + peso
18 fim
19 seno
20 se(genero="M")ento
21 incio
22 masc masc + 1
23 se(altura<1.70)ento
24 alt alt + 1
25 fim
26 cont cont + 1
27 at(cont=40)
28 fem (fem*100)/40
29 masc (masc*100)/40
30 media soma/fem
31 escrever("Maior idade = ", maior)
32 escrever(fem,"% so mulheres e ", masc, "% homens")
33 escrever("Peso mdio das mulheres = ", media)
34 escrever(alt, " homens medem menos que 1,70m")
35 fim
5ITUAO 01
N de ileraes delerminado.
Algoritmos e programao I.indd 103 7/8/2013 16:01:16
Process Black
JP0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 8.5
Dcscrin dn prnb!cma: conslrua um aIgorilmo que reila a Ieilura de uma senha
ale que eIa se|a vaIida. Iara cada senha incorrela escrever a mensagem SINHA
INVLIDA. Quando a senha for informada correlamenle deve ser imressa a
mensagem ACISSO IIRMITIDO e o aIgorilmo encerrado. Considere que a
senha correla e a76dk09.
\574A: _KU ):C589: 4: FXFGRC: _KU
Excmp!n 8.5 - Va!ida scnha.
01 algoritmo exemplo85
02 variveis
03 senha: cadeia
05 incio
08 repita
09 escrever("Digite a senha: ")
10 ler(senha)
12 se(senha<>"a76dk09")ento
13 escrever("Senha invlida")
14 at(senha="a76dk09")
16 escrever("Acesso permitido")
17 fim
5ITUAO 02
N de ileraes indelerminado, com
condio de inlerruo definida.
Algoritmos e programao I.indd 104 7/8/2013 16:01:17
Process Black
JPU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n 8.6
Dcscrin dn prnb!cma: reaIizou-se uma esquisa com rofessores de uma
universidade. Ioram coIelados os seguinles dados de cada rofessor: idade, lemo
de servio na universidade (em anos) e quanlidade de disciIinas que minislra.
Iaa um rograma que, a arlir desses dados, caIcuIe e informe: o ercenluaI de
rofessores com idade enlre 30 e 50 anos, a quanlidade de rofessores com mais
de 10 anos de servio e a media de disciIinas minislrada or rofessor.
\574A: _KH ):C589: 4: FXFGRC: _KH
Excmp!n 8.6 - Pcsquisa cnm prnIcssnrcs dc uma univcrsidadc.
01 algoritmo exemplo86
02 variveis
03 resp: caractere
04 perc, media: real
05 idade, ts, disc, qtde, cont, soma: inteiro
06 incio
07 perc 0 qtde 0 soma 0 cont 0
08 repita
09 escrever("Digite idade: ")
10 ler(idade)
11 escrever("Digite tempo de servio: ")
12 ler(ts)
13 escrever("Digite qtde de disciplinas que ministra: ")
14 ler(disc)
15 se(idade>=30)e(idade<=50)ento
16 perc perc + 1
17 se(ts>10)ento
18 qtde qtde + 1
19 soma soma + disc
20 cont cont + 1
21 escrever("Continuar? S/N ")
22 ler(resp)
23 at(resp="N")
24 perc (perc*100)/cont
25 media soma/cont
26 escrever(perc,"% dos professores tm entre 30 e 50 anos")
27 escrever(qtde," prof. com tempo de servio superior a 10")
28 escrever("Mdia de disciplinas por professor = , media")
29 fim
5ITUAO 03
N de ileraes indelerminado, sem
condio de inlerruo definida.
Algoritmos e programao I.indd 105 7/8/2013 16:01:17
Process Black
JPH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
!><V<474F=
Partc I - Qucstcs nb|ctivas
1) O aIgorilmo a seguir imrime a sequncia de ares enlre 1 e 100.
( ) Cerlo
( ) Irrado
algoritmo exerc1
variveis
n: inteiro
incio
n 1
repita
escrever(i)
i i + 2
at(i=100)
fim
2) SimuIando a execuo do aIgorilmo a seguir,
algoritmo exerc2
variveis
a: inteiro
incio
repita
ler(a)
se(a > -10)ento
escrever(a)
at(a>100)
fim
Algoritmos e programao I.indd 106 7/8/2013 16:01:17
Process Black
JPW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
lendo como dados de enlrada 2, 9, 47, -7, -11, -49, 47, 30, 100, -100, -120, -47, 14,
114, 13, quanlos numeros sero imressos
(a) 8
(b) 9
(c) 7
(d) 15
(e) 6
3) O aIgorilmo a seguir lem como ob|elivo caIcuIar a media dos vaIores Iidos.
Inlrelanlo, islo no aconlece correlamenle devido a um erro.
01 algoritmo exerc3
02 variveis
03 n,s,m: real
04 i: inteiro
05 incio
06 s 0
07 i 0
08 repita
09 ler(n)
10 s s + n
11 i i + 1
12 at(i=10)
13 m s/2
14 escrever(m)
15 fim
O erro esla na Iinha:
(a) 3
(b) 10
(c) 13
(d) 9
(e) 12
Algoritmos e programao I.indd 107 7/8/2013 16:01:17
Process Black
JP_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
4) Quanlos vaIores sero Iidos no aIgorilmo a seguir
algoritmo exerc4
variveis
valor: inteiro
incio
valor 0
repita
escrever(Digite um valor inteiro: )
ler(valor)
at(valor=0)
fim
(a) Tanlos quanlos forem digilados.
(b) Tanlos quanlos forem digilados, ale ser digilado 0 (zero).
(c) Tanlos quanlos forem digilados, ale ser digilado um vaIor negalivo.
(d) Tanlos quanlos forem digilados, ale ser digilado um vaIor que no e
inleiro.
(e) Nenhum.
5) AssinaIe a asserliva INCORRITA.
(a) Islruluras de reelio so necessarias ara reelir uma inslruo (ou
bIoco de inslrues), que reresenle um comorlamenlo adro, varias
vezes.
(b) UliIizando a eslrulura de reelio RIIITA, escreve-se uma inslruo
uma unica vez e eIa ode ser execulada varias vezes.
(c) Na eslrulura RIIITA o fIuxo de reelio e conlroIado or um
conlador.
(d) I imrescindiveI que ha|a uma inslruo denlro do bIoco de inslrues
da eslrulura RIIITA que ermila aIlerar o vaIor Igico da condio.
(e) A diferena enlre as eslruluras INQUANTO e RIIITA e que na segunda
as inslrues so execuladas no minimo uma vez orque sua condio
s e veri!cada ao !naI de cada ilerao.
Algoritmos e programao I.indd 108 7/8/2013 16:01:17
Process Black
JPL
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Partc II - Rcsn!un dc prnb!cmas
Iara cada um dos exercicios a seguir, conslrua o aIgorilmo com a soIuo
ara o robIema e reaIize o lesle de mesa ara assegurar que a resosla esle|a
correla.
(1) Iscreva um aIgorilmo que Ieia uma serie no delerminada de dois
vaIores. O rimeiro vaIor e um cdigo que signi!ca: (1) debilo, (2)
credilo e (0) !m. O segundo vaIor e uma quanlia numerica reaI. O
rograma deve caIcuIar o lolaI de debilo e credilo e, ao !naI, moslrar
o saIdo (credilo debilo).
(2) Duranle uma esquisa reaIizada enlre os habilanles de uma regio,
foram coIelados os seguinles dados: idade, gnero e saIario. Iaa um
aIgorilmo que caIcuIe e informe: a media saIariaI do gruo, a maior
idade do gruo, quanlidade de muIheres com saIario suerior a R
5.000,00.
(3) Um holeI cobra R 360,00 a diaria e mais uma laxa de servios. A laxa
e de: R 5,50 or diaria, se o numero de diarias for maior que 15, R
6,00 or diaria, se o numero de diarias for iguaI a 15, R 8,00 or diaria,
se o numero de diarias for menor que 15. Conslrua um aIgorilmo que
imrima o nome e a conla (lolaI das diarias, lolaI da laxa e lolaI a agar)
de cada um dos cIienles com reserva no holeI.
(4) Im um Iaboralrio, usam-se dois lios de cobaias: ralos e coeIhos. O
cdigo ara ralos e 1, e ara coeIhos e 2. Ioram feilas 30 exerincias
que usaram essas cobaias. Iaa um aIgorilmo que Ieia, ara cada uma
das exerincias, o cdigo e a quanlidade de cobaias uliIizadas. Dese|a-
se saber: o lolaI de cobaias uliIizadas e o ercenluaI de cada lio de
cobaia.
(5) IIabore um aIgorilmo que reila a Ieilura de uma dala ale que eIa
se|a vaIida. Iara cada dala incorrela escrever a mensagem DATA
INVLIDA. Quando a dala for informada correlamenle deve ser
imressa a mensagem ACISSO DATA VLIDA e o aIgorilmo
encerrado. Iara resoIver esle robIema, use lrs variaveis ara
reresenlar a dala: dia, ms e ano, no esquea de considerar ano
bissexlo, quando o ms de fevereiro lem 29 dias.

Algoritmos e programao I.indd 109 7/8/2013 16:01:18
Process Black
JJP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Rcspnstas dns cxcrccins da Partc I
1 - Irrado
2 - b
3 - c
4 - b
5 - c
Algoritmos e programao I.indd 110 7/8/2013 16:01:18
Process Black
L
+)'%1'1%! ;+ M$/'%$"+ ;+ %+,+'&-.$^
,!%!
E7@F==7 "<@4FG7@@
A eslrulura de reelio IARA, diferenle das oulras duas |a esludadas, e conlroIada
or uma variaveI de conlroIe, como ode ser observado na sinlaxe aresenlada
a seguir.
para <v> de <vi> at <vf> passo <p> faa
<instruo ou bloco de instrues>
Onde:
v reresenla a variaveI de conlroIe,
vi indica o vaIor iniciaI da variaveI de conlroIe,
vf indica o vaIor !naI da variaveI de conlroIe,
de!ne o incremenlo ou decremenlo da variaveI de conlroIe.
A variaveI de conlroIe assumira, a cada ilerao, um dos vaIores da faixa que inicia
com o vaIor vi e encerra no vaIor vf. O corresonde ao incremenlo ou decremenlo
dado a variaveI de conlroIe. O adro e incremenlar 1 a cada ilerao, caso em que
a direliva passo p ode ser omilida.
Nos cailuIos anleriores, foram idenlificados lrs cenarios onde so uliIizadas as
eslruluras de reelio: Siluao 01, quando o numero de ileraes e reviamenle
conhecido, Siluao 02, quando o numero de ileraes e indelerminado, mas lem-
se uma condio de inlerruo definida, Siluao 03, quando nem o numero de
ileraes, nem a condio de inlerruo so reviamenle conhecidos - caso em
que e necessario usar uma variaveI auxiIiar na condio de arada do Iao de
reelio. Im orlugus eslrulurado, a eslrulura IARA s ode ser usada ara
Algoritmos e programao I.indd 111 7/8/2013 16:01:18
Process Black
JJO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
resoIver robIemas em que o numero de ileraes e conhecido, ou se|a, na Siluao
01. AIgumas Iinguagens de rogramao, enlrelanlo, ossibiIilam a imIemenlao
das oulras siluaes.
Na Siluao 01, o rocesso de reelio e denominado Iao conlado e, como
foi vislo nos cailuIos anleriores, esle ode ser resoIvido uliIizando as eslruluras
INQUANTO e RIIITA. Iara isso, uliIiza-se uma variaveI do lio conlador, que
lem seu conleudo aIlerado a cada ilerao como iIuslram os lrechos de aIgorilmos
aresenlados no Quadro 9.1.
\574A: LKJ "78: 6:@>74: 5><C<c7@4: +/\1!/'$ F %+,&'!
ENQUANTO REPITA
01 cont 0
02 enquanto(cont<25)faa
03 incio
04 <demais instrues>
05 cont cont + 1
06 fim
01 cont 0
02 repita
03 <demais instrues>
04 cont cont + 1
05 at(cont=25)
Como ode ser observado, nos dois exemIos do Quadro 9.1 a variaveI cont
e iniciaIizada (Iinha 01), incremenlada (Iinha 05 no exemIo com a eslrulura
INQUANTO e Iinha 04 com a eslrulura RIIITA) e leslada ara conlroIar o finaI
do Iao de reelio (Iinha 02 na eslrulura INQUANTO, Iinha 05 na eslrulura
RIIITA). A eslrulura IARA e a mais adequada ara esla siluao, ois ha uma
economia de inslrues, a rria eslrulura se encarrega de iniciaIizar, incremenlar
e encerrar a variaveI de conlroIe, como iIuslra o Quadro 9.2. Isles lrs rocessos
ocorrem na Iinha 01.
\574A: LKO "78: 6:@>74: 5><C<c7@4: ,!%!
PARA
01 para cont de 1 at 25 faa
02 incio
03 <instrues>
04 fim
O vaIor iniciaI da variaveI de conlroIe e definido como 1, em seguida, verifica-
se se a condio de inlerruo foi alingida (ou se|a, se a variaveI de conlroIe |a
chegou ao seu Iimile finaI que, nesle caso, e 25): se a condio de inlerruo foi
Algoritmos e programao I.indd 112 7/8/2013 16:01:18
Process Black
JJQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
alingida, a reelio se encerra e o aIgorilmo conlinuara sua execuo na inslruo
imedialamenle seguinle a eslrulura IARA, se a condio de inlerruo no foi
alingida, o bIoco de inslrues da eslrulura sera execulado e a variaveI de conlroIe
e incremenlada. Isle rocesso sera reelido ale que a variaveI de conlroIe alin|a o
vaIor definido como Iimile finaI (25).
Iara exemIificar a aIicao da eslrulura de reelio IARA, os quadros a
seguir aresenlam a soIuo de cinco robIemas que uliIizam esla eslrulura na
sua soIuo.
Excmp!n 9.1
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia 10 vaIores, um de cada
vez, conle e escreva quanlos eslo no inlervaIo 10,20 e quanlos eslo fora desle
inlervaIo.
\574A: LKQ ):C589: 4: FXFGRC: LKJ
Excmp!n 9.1 - VcriIica quantns va!nrcs pcrtcnccm a um intcrva!n.
01 algoritmo exemplo91
02 variveis
03 valor, cont, dentro, fora: inteiro
04 incio
05 dentro 0 fora 0
06 para cont de 1 at 10 faa
07 incio
08 escrever("Digite um valor: ")
09 ler(valor)
10 se(valor>=10)e(valor<=20)ento
11 dentro dentro + 1
12 seno
13 fora fora + 1
14 fim
15 escrever(dentro, " nmeros dentro do intervalo")
16 escrever(fora, " nmeros fora do intervalo")
17 fim
Excmp!n 9.2
Dcscrin dn prnb!cma: conslrua um aIgorilmo que escreva os numeros ares
enlre 1 e 100.
5ITUAO 01
N de ileraes delerminado.
Algoritmos e programao I.indd 113 7/8/2013 16:01:18
Process Black
JJ0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: LK0 ):C589: 4: FXFGRC: LKO
Excmp!n 9.2 - 5nma ns nmcrn mparcs dc um intcrva!n.
01 algoritmo exemplo92
02 variveis
03 cont: inteiro
04 incio
05 para cont de 2 at 100 passo 2 faa
06 escrever(cont)
07 fim
Excmp!n 9.3
Dcscrin dn prnb!cma: conslrua um aIgorilmo que escreva a soma dos numeros
imares enlre dois vaIores quaisquer informados eIo usuario.
\574A: LKU ):C589: 4: FXFGRC: LKQ
Excmp!n 9.3 - 5nma ns nmcrn mparcs dc um intcrva!n.
01 algoritmo exemplo93
02 variveis
03 cont, vi, vf, soma: inteiro
04 incio
05 soma 0
06 escrever("Digite o valor inicial: ")
07 ler(vi)
08 escrever("Digite o valor final: ")
09 ler(vf)
10 para cont de vi at vf faa
11 incio
12 se(cont mod 2 = 1)ento
13 soma soma + cont
14 fim
15 escrever("Soma dos mpares do intervalo = ", soma)
16 fim
Excmp!n 9.4
Dcscrin dn prnb!cma: conslrua um aIgorilmo que Ieia um vaIor inleiro, enlre 1
e 10, e escreva a sua labuada.
5ITUAO 01
N de ileraes delerminado.
5ITUAO 01
N de ileraes delerminado.
Algoritmos e programao I.indd 114 7/8/2013 16:01:18
Process Black
JJU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Excmp!n: 5
1 x 5 5
2 x 5 10
3 x 5 15
4 x 5 20
5 x 5 25
6 x 5 30
...
10 x 5 50
\574A: LKH ):C589: 4: FXFGRC: LK0
Excmp!n 9.4 - Escrcvc a tabuada dc um va!nr.
01 algoritmo exemplo94
02 variveis
03 valor, cont: inteiro
04 incio
05 escrever("Digite um valor inteiro entre 1 e 10: ")
06 ler(valor)
07 se(valor>=1)e(valor<=10)ento
08 para cont de 1 at 10 faa
09 escrever(cont,"x",valor,"=",cont*valor)
10 seno
11 escrever("Valor invlido. Digite valore entre 1 e 10.")
12 fim
Excmp!n 9.5
Dcscrin dn prnb!cma: em uma esquisa reaIizada com 1000 habilanles de
uma regio, foram coIelados os seguinles dados: idade, gnero e saIario. Iaa
um aIgorilmo que caIcuIe e informe: a idade media do gruo, o ercenluaI de
muIheres e de homens e, lambem, a quanlidade de essoas com saIario suerior
a R 5.000,00.
5ITUAO 01
N de ileraes delerminado.
Algoritmos e programao I.indd 115 7/8/2013 16:01:19
Process Black
JJH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: LKW ):C589: 4: FXFGRC: LKU
Excmp!n 9.5 - 5nma ns nmcrn mparcs dc um intcrva!n.
01 algoritmo exemplo95
02 variveis
03 cont, idade, soma, pessoa: inteiro
04 salario, media, fem, masc: real
05 genero: caractere
06 incio
07 soma 0 fem 0 masc 0 pessoa 0
08 para cont de 1 at 1000 faa
09 incio
10 escrever("Digite idade, gnero (M ou F) e salrio: ")
11 ler(idade, genero, salario)
12 soma soma + idade
13 se(genero="F")ento
14 fem fem + 1
15 seno
16 se(genero="M")ento
17 masc masc + 1
18 se(salario>5000)ento
19 pessoa pessoa + 1
20 fim
21 media soma/1000
22 fem (fem *100)/1000
23 masc (masc *100)/1000
24 escrever("Idade mdia = ", media)
25 escrever("Feminino = ", fem,"%")
26 escrever("Masculo = ", masc,"%")
27 escrever(pessoa, " pessoas possuem salrio > 5.000,00")
28 fim
%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
5ITUAO 01
N de ileraes delerminado.
Algoritmos e programao I.indd 116 7/8/2013 16:01:19
Process Black
JJW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
!><V<474F=
Partc I - Qucstcs nb|ctivas
1) Considerando o aIgorilmo a seguir,
algoritmo exerc1
variveis
num, cont, aux, e: inteiro
incio
aux 1 e 1
repita
escrever("Digite um nmero inteiro positivo: ")
ler(num)
at(num>0)
para cont de 1 at num faa
incio
aux aux * cont
e e + aux
fim
escrever(e)
fim
quaI a saida se a enlrada for 3 e deois 5
(a) 3 e 5,
(b) 10 e 154,
(c) 9 e 153,
(d) 11 e 155,
(e) 4 e 34.
2) Considerando o aIgorilmo a seguir,
algoritmo exerc2
variveis
v1, v2, s, x: inteiro
incio
s 0
ler(v1, v2)
para x de v1 at v2 faa
s s + 2
escrever(s)
fim
Algoritmos e programao I.indd 117 7/8/2013 16:01:19
Process Black
JJ_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
quaI a saida, lendo como enlrada 3 e 8
(a) 7,
(b) 8,
(c) 6,
(d) 10,
(e) 12.
3) O aIgorilmo a seguir...
algoritmo exerc3
variveis
i: inteiro
incio
para i de 100 at 1 passo -2 faa
escrever(i)
fim
(a) imrime os numeros de 1 a 100 em ordem decrescenle,
(b) imrime os numeros ares enlre 100 e 1 em ordem crescenle,
(c) imrime os numeros imares enlre 1 e 100 em ordem crescenle,
(d) imrime os numeros enlre 1 e 100,
(e) imrime os numeros ares enlre 1 e 100 em ordem decrescenle.
4) Considerando o lrecho de aIgorilmo a seguir,
k 0
escrever(Digite o valor de n: )
ler(n)
para z de 1 at n faa
para i de 1 at n faa
para de i at n faa
k k + 1
ode-se a!rmar que o vaIor de k ara quaIquer vaIor de n, ao !naI da execuo sera:
(a) n
3
,
(b) n
2
,
Algoritmos e programao I.indd 118 7/8/2013 16:01:19
Process Black
JJL
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
(c) n
2
+ Iog n,
(d) n
2
(n+1)/2,
(e) (n
3
-n)/3.
5) No !naI da execuo do lrecho de aIgorilmo a seguir,
k 0
para i de 1 at n faa
para de i at n faa
k k + 1
quanlo vaIe k
(a) n
3 ,
(b) (n
2
n)/2,
(c) n(n+1)/2,
(d) n-1,
(e) n.
Partc II - Rcsn!un dc prnb!cmas
Iara cada um dos exercicios a seguir, conslrua o aIgorilmo com a soIuo
ara o robIema e reaIize o lesle-de-mesa ara assegurar que a resosla esle|a
correla.
1) Iscrever um aIgorilmo que gere numeros enlre 1000 e 1999 e escreva
aqueIes que divididos or 11 do reslo 5.
2) Ioi feila uma esquisa em 20 cidades brasiIeiras ara coIelar dados
sobre os acidenles de lrnsilo ocorridos no ano de 2012. Im cada
cidade, foram oblidos os seguinles dados referenles a 2012: cdigo da
cidade, numero de veicuIos de asseio, numero de acidenles de lrnsilo
com vilimas e numero de acidenles de lrnsilo sem vilimas. Dese|a-se
saber:
(a) o lolaI de acidenles de lrnsilo nas 20 cidades que arliciaram da
esquisa,
Algoritmos e programao I.indd 119 7/8/2013 16:01:19
Process Black
JOP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
(b) o maior e o menor numero de acidenles de lrnsilo com vilimas e
a que cidades erlencem,
(c) o ercenluaI de acidenles de lrnsilo sem vilimas em cada uma das
20 cidades que arliciaram da esquisa,
(d) a media de veicuIos nas 20 cidades |unlas.
3) Iaa um aIgorilmo que Ieia um vaIor inleiro e osilivo, caIcuIe e escreva
o seu faloriaI.
IxemIos: !4 1 x 2 x 3 x 4 24
!5 1 x 2 x 3 x 4 x 5 120
Ior de!nio, !0 1
4) IIabore um aIgorilmo que Ieia um vaIor inleiro, veri!que e informe se
eIe e rimo.
5) Iaa um aIgorilmo ara caIcuIar e escrever o vaIor de R.
R
5 x 6
10
+
6 x 5
9
+
5 x 6
8
+
6 x 5
7
+
...
...
+
5 x 6
2
+
6 x 5
1
Rcspnstas dns cxcrccins da Partc I
1 - b
2 - e
3 - e
4 - e
5 - b
Algoritmos e programao I.indd 120 7/8/2013 16:01:20
Process Black
JP
&/'%$;1-.$ a "&/#1!#+( M
E7@F==7 "<@4FG7@@
A Iinguagem C, criada or Dennis Rilchie na decada de 70, resuIlou de um rocesso
evoIulivo de Iinguagens e, duranle aIguns anos, leve seu adro baseado na verso
5 do sislema oeracionaI UNI. Com a ouIarizao dos microcomuladores,
varias verses de C foram criadas, gerando muilas discrencias enlre eIas. Iara
resoIver essa siluao, em 1983, o ANSI (I.&#,1(* X(3,$*(0 Y3(*-(#-' 4*'3,3C3&)
eslabeIeceu um comil ara definir um adro que guiasse lodas as imIemenlaes
da Iinguagem C.
A ouIarizao da Iinguagem C deve-se a varios falores, denlre os quais
deslacam-se: (a) o oderoso con|unlo de oeradores e lios de dados disoniveis,
(b) a orlabiIidade, odendo ser usada em maquinas de orles e de sislemas
oeracionais diferenles, (c) as caraclerislicas de Iinguagens de aIlo niveI
(comandos com sinlaxe rxima a Iinguagem humana e lios de dados inleiro,
reaI e caraclere) como, or exemIo, as Iinguagens IascaI, DeIhi e VisuaI asic,
aIiadas as caraclerislicas de Iinguagens de baixo niveI (lambem conhecidas como
Iinguagem de maquina, maniuIam bils, byles e endereos) como a Iinguagem
AssembIer, or exemIo.
C e uma Iinguagem de rosilos gerais, eslrulurada e comiIada (o comiIador
I o cdigo-fonle do rograma inleiro e converle-o em um cdigo execulaveI).
IIa e uliIizada ara a conslruo de sislemas oeracionais (UNI e LINU, or
exemIo), comiIadores, inlerreladores, edilores de lexlos, IaniIhas eIelrnicas,
aIicalivos ara disosilivos mveis, elc.
Algoritmos e programao I.indd 121 7/8/2013 16:01:20
Process Black
JOO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Um rograma em Iinguagem C consisle em uma ou mais funes. A funo
rinciaI, denominada main, indica onde o rograma inicia. A eslrulura basica
de um rograma em C e aresenlada a seguir.
inlcude <nome da biblioteca>
void main( )
// bloco de comandos

ibIiolecas so arquivos conlendo varias funes que odem ser incororadas aos
rogramas escrilos em C. A direliva include faz com que as funes inseridas na
bibIioleca esecificada ossam ser uliIizadas no rograma. As bibIiolecas stdio.h
e conio.h ermilem a uliIizao de diversos comandos de enlrada e saida e de
funes de leIa, reseclivamenle. So exemIos de funes de leIa, os comandos
usados ara Iimar a leIa, osicionar o cursor em uma delerminada osio na
leIa, lrocar a cor da fonle e/ou do fundo.
Os arnleses ao Iado da aIavra main indicam que eIa e uma funo, o lio void
indica que eIa no relornara nenhum vaIor, enquanlo as chaves deIimilam o seu
inicio e o seu fim. O bIoco de comandos que esliver enlre as chaves e execulado
sequenciaImenle quando a funo for chamada.
I imorlanle saIienlar que a Iinguagem C e 1('& '&*',3,9&, ou se|a, e sensiveI a Ielras
maiuscuIas e minuscuIas (or exemIo, a e diferenle de A) e lodos os rogramas
devem, obrigaloriamenle, ser escrilos em Ielras minuscuIas. Oulro delaIhe
imorlanle e que cada comando e finaIizado com um onlo-e-virguIa.
As sees a seguir so dedicadas a aresenlao de conceilos e definies
imorlanles e necessarias ara o inicio da rogramao em Iinguagem C.
JPKJ &4F@><e<674:AF=
Im Iinguagem C, os nomes uliIizados ara referenciar variaveis, conslanles e
funes definidas eIo usuario so chamados de idenlificadores.
A criao de um idenlificador deve seguir as seguinles regras: odem ser formados
or Ielras, numeros e subIinhado, devem iniciar com uma Ielra, Ielras minuscuIas
e maiuscuIas so consideradas caracleres dislinlos, no odem ser aIavras
reservadas, odem conler quaIquer lamanho, orem aenas os 32 rimeiros
caracleres so significalivos.
AIem disso, e imorlanle criar idenlificadores considerando a sua aIicao
ara faciIilar a Ieilura do cdigo-fonle e, consequenlemenle, o lrabaIho do
rogramador. A quanlidade de horas lrabaIhadas or uma essoa duranle uma
Algoritmos e programao I.indd 122 7/8/2013 16:01:20
Process Black
JOQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
semana de lrabaIho ode ser armazenada em uma variaveI chamada qtde_horas,
enquanlo uma funo que ira verificar se uma dala e vaIida ou no ode ler como
indenlificador valida_data.
JPKO '<R:= 4F 474:=
Os lios de dados mais uliIizados em Iinguagem C so: int (numero inleiro),
float (numero reaI) e char (caraclere). A Iinguagem C no ossui lio de dado
Igico (que ode assumir verdadeiro ou faIso), ois considera quaIquer vaIor
diferenle de 0 (zero) como verdadeiro, e lambem no ossui um lio eseciaI ara
armazenar cadeias de caracleres (string), eslas so armazenadas em um velor de
caracleres. A TabeIa 10.1 aresenla a Iisla de lios basicos uliIizados em C.
'7SFC7 JPKJ '<R:= 4F 474:= G7<= 5><C<c74:= FG "<@N57NFG M
Tio Iaixa de vaIores Tamanho (aroximado)
char -127 a 127 8 bils
int -32.767 a 32.767 16 bils
float 3.4 I-38 a 3.4 I+38 32 bils
double 1.7 I-308 a 1.7 I+308 64 bils
void sem vaIor 0
A faixa de vaIores aresenlada esla de acordo com o adro ANSI e e considerada
a faixa minima. Deendendo do rocessador e do comiIador C que esliver sendo
uliIizado, o lamanho e a faixa de vaIores odem variar.
JPKQ (:4FC74:AF=
I ossiveI forar que o resuIlado de uma exresso se|a de um lio esecifico
usando o conceilo de modeIador. A forma geraI de um modeIador e
(tipo)expresso
onde lio e um dos lios adro da Iinguagem C.
Sendo r uma variaveI decIarada do lio float, as exresses a seguir resuIlam
em vaIores diferenles.
r=9/2 // essa expresso resulta 4
r=(float)9/2 // com o uso do modelador, resulta 4.5
Algoritmos e programao I.indd 123 7/8/2013 16:01:20
Process Black
JO0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
JPK0 ;F6C7A789:b <@<6<7C<c789: F F=6:R: 4F V7A<TVF<=
VariaveI e uma osio de memria, idenlificada or um nome (idenlificador),
usada ara armazenar um dado de um delerminado lio or vez. As variaveis
so decIaradas as a esecificao de seus lios, como ode ser observado nos
exemIos a seguir.
float total
int idade, cont
char resposta
A rimeira Iinha da decIarao de variaveis do exemIo cria uma variaveI chamada
total, que ode armazenar vaIores do lio reaI, na segunda Iinha, so criadas
duas variaveis ara armazenar vaIores do lio inleiro, idade e cont, or uIlimo,
resposta e criada ara armazenar caracleres (um or vez). Cada variaveI
armazenara um unico vaIor or vez.
As variaveis odem ser iniciaIizadas no momenlo da sua decIarao, coIocando o
sinaI de alribuio seguido da informao dese|ada, como no exemIo aresenlado
a seguir, em que cont e iniciaIizada com 0 e resposta com S. I imorlanle
deslacar que os dados alribuidos a variaveis do lio caraclere so envoIvidos or
aslrofes.
int cont=0
char resposta=S
O IocaI em que as variaveis so decIaradas definem o seu escoo, que ode ser
gIobaI ou IocaI. As variaveis de escoo gIobaI, denominadas variaveis gIobais, so
decIaradas fora de quaIquer funo, iniciaIizadas aulomalicamenle com 0 (zero)
e odem ser usadas em quaIquer onlo do rograma. As variaveis Iocais so
decIaradas denlro de uma funo, no so iniciaIizadas aulomalicamenle e vaIem
enquanlo esla funo esliver aliva. As variaveis de escoo IocaI lm referncia
em reIao as de escoo gIobaI.
JPKU ;Fe<@<89: 4F 6:@=>7@>F=
Uma conslanle ira reresenlar um vaIor fixo, reviamenle definido eIo
rogramador e inaIleraveI no rograma. Uma das formas de definir conslanles
em C e alraves da direliva define, seguida do nome da conslanle e do vaIor que
esla reresenlara no rograma. No exemIo a seguir, aresenla-se a decIarao
da conslanle pi cu|o vaIor e definido como 3.141516. Observe que na definio de
uma conslanle no se usa o onlo-e-virguIa no finaI.
define pi 3.141516
Desla forma, o rogramador usara i no rograma ao inves de usar 3.141516.
Algoritmos e programao I.indd 124 7/8/2013 16:01:20
Process Black
JOU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
JPKH Md4<N:= 4F e:AG7>:
Os cdigos de formalo, aresenlados na TabeIa 10.2, so conslanles que definem
o formalo dos dados a serem Iidos e exibidos na leIa.
'7SFC7 JPKO Md4<N:= 4F e:AG7>789:
Cdigo Iormalo
c Caraclere
i Inleiro
I Inleiro Iongo
d Inleiro em formalo decimaI
Id DecimaI Iongo
u DecimaI sem sinaI
f Ionlo fIuluanle em formalo decimaI
If Ionlo fIuluanle Iongo (-$CW0&)
s Cadeia de caracleres ('3#,*5)
e VaIor em nolao cienlifica
o VaIor em nolao oclaIdecimaI
x VaIor em nolao hexadecimaI
Ionleiro
SimboIo
IIes so usados em funes de enlrada e de saida de dados (descrilas na seo 10.11).
A funo de enlrada scanf, or exemIo, ossui dois armelros: o cdigo de
formalo e uma variaveI. Nesle caso, o vaIor digilado eIo usuario sera armazenado
na variaveI denominada peso, decIarada e formalada como float.
scanf(%f,peso)
A funo printf, exemIificada a seguir, lambem conlem dois armelros: o
rimeiro e uma conslanle, aresenlada enlre asas, o segundo e uma variaveI,
denominada dias. O vaIor armazenado na variaveI dias sera exibido na osio
em que aarece o cdigo de formalo usado na mensagem, nesle caso o %i.
printf(Sua idade em dias e: %i, dias)
Algoritmos e programao I.indd 125 7/8/2013 16:01:20
Process Black
JOH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Os cdigos de formalo odem ler modificadores que esecifiquem o lamanho do
camo, o numero de casas decimais e um indicador de |uslificao a esquerda.
EspcciIicadnr dc !argura mnima dn campn: um vaIor enlre o simboIo e o
caraclere de formalo indica a Iargura minima do camo, reenchendo a saida com
brancos (adro) ou com zeros (coIoca-se um 0 anles do esecificador de lamanho).
Quando um vaIor e maior que o minimo definido, esle sera imresso or comIelo.
IxemIos: %05d reenchera um numero com menos de cinco digilos com zeros a
esquerda, de maneira que seu lamanho lolaI se|a cinco.
EspcciIicadnr dn nmcrn dc casas dccimais: ara definir o numero de casas
decimais a serem exibidas em um onlo fIuluanle, usa-se um onlo enlre o
esecificador de lamanho e o numero de casas decimais dese|adas. Ior exemIo:
%6.2f exibira um vaIor com, no minimo, seis digilos de comrimenlo e duas
casas decimais.
EspcciIicadnr para |ustiIicar inInrman a csqucrda: or definio, loda saida e
|uslificada a direila. O uso do sinaI deois do faz com que a saida se|a |uslificada
a esquerda. IxemIo: %-6.2f |uslificara a esquerda um vaIor de onlo fIuluanle,
com no minimo seis digilos e duas casas decimais.
A TabeIa 10.3 aresenla exemIos da uliIizao dos esecificadores de lios. O
caraclere eseciaI n, usado nos exemIos, e exIicado na rxima seo.
'7SFC7 JPKQ +XFGRC: 47 5><C<c789: 4:= F=RF6<e<674:AF= 4F ><R:=
Cdign Rcsu!tadn
float valor=136.472
printf(n %f,valor)
printf(n %8.1f,valor)
printf(n %08.1f,valor)
printf(n %-8.1f,valor)
136.472000
136.5
000136.5
136.5
int valor=790
printf(n %i,valor)
printf(n %5i,valor)
printf(n %05i,valor)
printf(n %-5i,valor)
790
790
00790
790
printf(n O valor total %2d.,350)
printf(n O valor total %4d.,350)
printf(n O valor total %5d.,350)
O valor total 350.
O valor total 350.
O valor total 350.
Algoritmos e programao I.indd 126 7/8/2013 16:01:20
Process Black
JOW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
JPKW M7A76>FAF= F=RF6<7<=
Os caracleres eseciais so usados ara reresenlar aIguma formalao em
arlicuIar e caracleres eseciais que seriam imossiveis de usar direlamenle no
cdigo-fonle. Isses caracleres devem ser recedidos da barra inverlida, como
o n que reresenla nova Iinha. A TabeIa 10.4 aresenla os caracleres e seus
significados.
'7SFC7 JPK0 Md4<N:= 4F 67A76>FAF= 4F F=67RF
Cdign 5igniIicadn Cdign 5igniIicadn
a aIerla (bee) v lab verlicaI
b relrocesso (backsace) exibe barra inverlida
f avano de agina exibe asa unica
n nova Iinha exibe asas duIas
r relorna ao inicio da Iinha ? exibe onlo de inlerrogao
t lab horizonlaI 0 nuIo
JPK_ M:G7@4: 4F 7>A<S5<89:
O comando de alribuio, reresenlado or (sinaI de iguaIdade), e uliIizado ara
alribuir vaIores a variaveis. I imorlanle Iembrar que os vaIores alribuidos a uma
variaveI devem ser comaliveis com o seu lio. AIguns exemIos de alribuio
odem ser observados a seguir.
total=345.60
idade=20
resp=s
cont=cont+1
Os caracleres so reresenlados enlre aslrofos ( ) e as cadeias de caracleres
enlre asas ( ).
I ossiveI alribuir um vaIor a duas ou mais variaveis alraves de um unico comando,
como no exemIo a seguir, em que as variaveis x e y recebem 10.
x=y=10
Caso se|a necessario alribuir uma cadeia de caracleres a uma variaveI, uliIiza-se
a funo strcpy.
strcpy(nome,Ana Paula Rocha)
Algoritmos e programao I.indd 127 7/8/2013 16:01:21
Process Black
JO_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Iara uliIizar strcpy (abreviao de '3#,*5 1$AZ) e reciso inserir no rograma,
alraves da direliva include, a bibIioleca string.h.
JPKL $RFA74:AF= F e5@8YF=
A Iinguagem C ossui oeradores e funes redefinidas deslinadas a caIcuIos
malemalicos e a maniuIao de caracleres. AIguns deIes so aresenlados nas
TabeIas 10.5 e 10.6. Iara uliIizar as funes malemalicas, a bibIioleca malh.h deve
ser incIuida no rograma alraves da direliva incIude. Os oeradores Igicos so
aresenlados na TabeIa 10.7.
'7SFC7 JPKU $RFA74:AF= 7A<>Gg><6:=
Opcradnrcs Matcmticns
Opcradnr Excmp!n Cnmcntrin
+ a + b Soma o conleudo de a e de b.
- a - b Sublrai o conleudo de b do conleudo de a.
* a * b MuIliIica o conleudo de a eIo conleudo de b.
/ a / b Divide o conleudo de a eIo conleudo de b.
% a % b Oblem o reslo da diviso de a or b.
O oerador s ode ser uliIizado com oerandos do lio inleiro.
'7SFC7 JPKH $RFA74:AF= AFC76<:@7<=
Opcradnrcs Rc!acinnais
Opcradnr Excmp!n Cnmcntrin
== a == b Tesla se o conleudo de a e iguaI ao conleudo de b.
!= a != b Tesla se o conleudo de a e diferenle do conleudo de b.
<= a <= b Tesla se o conleudo de a e menor ou iguaI que o conleudo de b.
>= a >= b Tesla se o conleudo de a e maior ou iguaI que o conleudo de b.
< a < b Tesla se o conleudo de a e menor que o conleudo de b.
> a > b Tesla se o conleudo de a e maior que o conleudo de b.
Algoritmos e programao I.indd 128 7/8/2013 16:01:21
Process Black
JOL
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
'7SFC7 JPKW $RFA74:AF= CdN<6:=
Opcradnr 5mbn!n Dcscrin
e Con|uno
ou Dis|uno
no ! Negao
Im C, lambem ode-se uliIizar oeradores reduzidos, exemIificados na TabeIa 10.8.
'7SFC7 JPK_ $RFA74:AF= AF45c<4:=
Exprcssn Equiva!cntc cnm npcradnrcs rcduzidns
total=total+valor total+=valor
num=num*5 num*=5
d=d-valor d-=valor
x=x/5 x/=5
AIem dos oeradores aresenlados anleriormenle, a Iinguagem C disonibiIiza
oeradores de re e s incremenlo e decremenlo, descrilos na TabeIa 10.9. O
oerador ++ incremenla 1 ao vaIor do seu oerando, enquanlo -- decremenla 1.
Isles oeradores odem ser usados anles (re-fixados) ou deois (s-fixados) do
nome da variaveI. Im ambos os casos a variaveI e incremenlada ou decremenlada.
Inlrelanlo, ++n incremenla o vaIor da variaveI n anles que n se|a usada e n++
usa o vaIor de n e deois o incremenla.
'7SFC7 JPKL $RFA74:AF= RAg F Rd=he<X74:=
Opcradnr Dcscrin Pr-Iixadn Ps-Iixadn
++ Incrementa ++n n++
-- Decrementa --n n--
Algoritmos e programao I.indd 129 7/8/2013 16:01:21
Process Black
JQP
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Resumindo:
++i incremenla o vaIor de i em 1 e deois o uliIiza,
i++ uliIiza o vaIor de i e deois incremenla-o em 1.
Logo, concIui-se que:
z=a a=a+1 e equivaIenle a z=a++
z=a a=a-1 e equivaIenle a z=a--
a=a+1 z=a e equivaIenle a z=++a
a=a-1 z=a e equivaIenle a z=--a
JPKJP M:GF@>TA<:=
Os comenlarios so lexlos que odem ser inseridos no rograma com o ob|elivo de
documenla-Io e no so anaIisados eIo comiIador. Os comenlarios de uma Iinha
so recedidos do simboIo //, enquanlo o comenlario de varias Iinhas e envoIvido
or /* e */, conforme ode ser observado nos exemIos a seguir.
// Este um comentrio de uma linha.
/* Este um comentrio
de mais de uma linha. */
JPKJJ B5@8YF= 4F F@>A747 F =7[47
As funes de enlrada de dados so uliIizadas ara receber dados digilados eIo
usuario. Os dados recebidos so armazenados em variaveis |a decIaradas no inicio
do rograma. As funes de enlrada mais uliIizados em C so scanf, fgets
e getche.
A funo scanf e uliIizada ara Ier dados dos lios numerico e caraclere, enquanlo
a funo fgets e uliIizada ara Ier uma cadeia de caracleres e a funo getche
ode ser uliIizada ara Ier um caraclere or vez.
O lrecho de cdigo a seguir aresenla um exemIo da uliIizao das funes scanf
e getche. Os dois vaIores do lio float so Iidos com a funo scanf (Iinhas 2
e 6) e o dado do lio caraclere e Iido com getche (Iinha 4).
1 printf(Digite o primeiro valor: )
2 scanf(%f,valor1)
3 printf(Digite o operador: )
4 operador = getche()
5 printf(Digite o segundo valor: )
6 scanf(%f,valor2)
Algoritmos e programao I.indd 130 7/8/2013 16:01:21
Process Black
JQJ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
A sinlaxe das duas funes e diferenle. A funo scanf lem dois armelros: o
rimeiro indica o lio do dado a ser Iido (TabeIa 10.2 cdigos de formalao),
esecificado or uma Ielra deois do simboIo % enlre as asas, e o nome da
variaveI, anlecedido do simboIo (sem esao) que referencia um endereo de
memria. A funo getche I um caraclere ressionado no lecIado eIo usuario
e o escreve na leIa. Na Iinha 4, a variaveI oerador recebe o vaIor Iido alraves da
funo getche.
Um exemIo da uliIizao da funo fgets ode ser observado nas Iinhas de
cdigo aresenladas a seguir. A funo fgels ossui lrs armelros o nome
da variaveI, o lamanho maximo da variaveI e a enlrada de dados adro ('3-,*
T '3(*-(#- ,*AC3) e anles de uliIiza-Ia e reciso Iiberar o WC%%&# do disosilivo de
enlrada de dados, o que e feilo alraves da funo fflush.
1 printf(Nome do aluno...: )
2 fflush(stdin)
3 fgets(nome,60,stdin)
A funo de saida e uliIizada ara aresenlar dados na leIa, se|a uma mensagem, o
resuIlado de uma exresso ou o conleudo armazenado em uma variaveI. A funo
de saida mais uliIizada em C e o printf, que ode ser observado nos dois lrechos
de cdigos aresenlados anleriormenle e na Iinha de cdigo a seguir.
printf(Sua idade em dias e: %i, dias)
Nesse exemIo, o comando printf lem dois armelros: a mensagem e a variaveI.
O vaIor armazenado na variaveI dias sera aresenlado na leIa no Iugar em que
esla o %i na mensagem (o %i e a formalao do dado a ser exibido, que nesle caso
e um inleiro).
JPKJO +=>A5>5A7= 4F 6:@>A:CF 6:@4<6<:@7C
A seguir, so aresenlados dois exemIos que uliIizam eslruluras de conlroIe
condicionaI - o exemIo 10.1 exemIifica a aIicao da eslrulura SI (em C, if) e
o exemIo 10.2 da eslrulura ISCOLHA (em C, switch). Na coIuna da esquerda
dos Quadros 10.1 e 10.2, aarece a soIuo em orlugus eslrulurado, enquanlo a
coIuna da direila aresenla a mesma soIuo em Iinguagem C.
Algoritmos e programao I.indd 131 7/8/2013 16:01:21
Process Black
JQO
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7

\
5
7
4
A
:

J
P
K
J


+
X
F
G
R
C
:

4
7

F
=
>
A
5
>
5
A
7

4
F

6
:
@
>
A
:
C
F

6
:
@
4
<
6
<
:
@
7
C

)
+
E
x
c
m
p
!
n

1
0
.
1

-

L
c
r

u
m

v
a
!
n
r

d
n

t
i
p
n

i
n
t
c
i
r
n

c

v
c
r
i
I
i
c
a
r

s
c

c
!
c


p
a
r

n
u

m
p
a
r
.
P
n
r
t
u
g
u

s

c
s
t
r
u
t
u
r
a
d
n


5
E

L
i
n
g
u
a
g
c
m

C

-

i
I
a
l
g
o
r
i
t
m
o

e
x
e
m
p
l
o
1
0
1
v
a
r
i

v
e
i
s




v
a
l
o
r
:

i
n
t
e
i
r
o
i
n

c
i
o



e
s
c
r
e
v
e
r
(
"
D
i
g
i
t
e

u
m

v
a
l
o
r
:

"
)


l
e
r
(
v
a
l
o
r
)


s
e
(
v
a
l
o
r

m
o
d

2

=

0
)
e
n
t

o




e
s
c
r
e
v
e
r
(
v
a
l
o
r
,
"


p
a
r
.
"
)


s
e
n

o




e
s
c
r
e
v
e
r
(
v
a
l
o
r
,
"

m
p
a
r
.
"
)
f
i
m

i
n
c
l
u
d
e

<
s
t
d
i
o
.
h
>








/
/
b
i
b
l
i
o
t
e
c
a
s

i
n
c
l
u
d
e

<
c
o
n
i
o
.
h
>
v
o
i
d

m
a
i
n
(
)






















i
n
t

v
a
l
o
r

c
l
r
s
c
r
(
)











/
/
l
i
m
p
a

a

t
e
l
a
g
o
t
o
x
y
(
1
0
,
1
0
)






/
/
p
o
s
i
c
i
o
n
a

o

c
u
r
s
o
r

p
r
i
n
t
f
(
"
D
i
g
i
t
e

u
m

v
a
l
o
r
:

"
)




s
c
a
n
f
(
"
%
i
"
,

v
a
l
o
r
)

g
o
t
o
x
y
(
1
0
,
1
4
)







i
f
(
v
a
l
o
r
%
2
=
=
0
)




p
r
i
n
t
f
(
"
%
i


p
a
r
.
"
,

v
a
l
o
r
)



e
l
s
e










p
r
i
n
t
f
(
"
%
i

m
p
a
r
.
"
,

v
a
l
o
r
)



g
e
t
c
h
(
)













/
/
p
a
u
s
a





















Algoritmos e programao I.indd 132 7/8/2013 16:01:22


Process Black
JQQ
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: JPKO +XFGRC: 47 F=>A5>5A7 4F 6:@>A:CF 6:@4<6<:@7C +)M$"`!
Excmp!n 10.2 - Cnnstruir uma ca!cu!adnra quc cnntcnha as npcracs: +, - , c /.
Pnrtugus cstruturadn - E5COLHA Linguagcm C - switch
algoritmo exemplo102
variveis
valor1,valor2,r: real
operador: caractere
incio
escrever("Digite o 1 valor: ")
ler(valor1)
escrever("Digite o operador: ")
ler(operador)
escrever("Digite o 2 valor: ")
ler(valor2)
escolha(operador)
caso "+": r valor1 + valor2
caso "-": r valor1 - valor2
caso "*": r valor1 * valor2
caso "/": se(valor2<>0)ento
r valor1/valor2
seno
r 0
seno

escrever("Operador invlido!")

fim
escrever ("Resultado = ", r)
fim
include <stdio.h> //bibliotecas
include <conio.h>
void main()
float valor1,valor2, r
char operador
clrscr() //limpa a tela
gotoxy(10,5) //posiciona o cursor
printf("Digite o primeiro valor: ")
scanf("%f",valor1)
gotoxy(10,8)
printf("Digite o operador: ")
operador = getche()
gotoxy(10,11)
printf("Digite o segundo valor: ")
scanf("%f",valor2)
switch(operador)
case+: r = valor1 + valor2 break
case-: r = valor1 - valor2 break
case*: r = valor1 * valor2 break
case/: if(valor2!=0)
r = valor1 / valor2
else
r = 0
break
else
gotoxy(10,20)
printf("Operador invlido!")


gotoxy(10,24)
printf("Resultado = %3.2f", r)
getch() //pausa

JPKJQ +=>A5>5A7= 4F 6:@>A:CF 4F AFRF><89:


As eslruluras de conlroIe de reelio so exemIificadas nos quadros a seguir.
Iara faciIilar o enlendimenlo, a coIuna da esquerda dos Quadros 10.3, 10.4 e 10.5
aresenla a soIuo em orlugus eslrulurado e a da direila em Iinguagem C.
Algoritmos e programao I.indd 133 7/8/2013 16:01:22
Process Black
JQ0
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: JPKQ +XFGRC: 47 F=>A5>5A7 4F 6:@>A:CF 4F AFRF><89: +/\1!/'$
Excmp!n 10.3 - Lcr 10 va!nrcs dn tipn intcirn, ca!cu!ar c cscrcvcr a mdia dns va!nrcs
!idns.
Pnrtugus cstruturadn ENQUANTO Linguagcm C whi!c
algoritmo exemplo103
variveis
valor,soma,cont: inteiro
media: real
incio
cont 0
soma 0
enquanto(cont<10)faa
incio

escrever("Digite um
valor: ")
ler(valor)
cont cont + 1
soma soma + valor
fim
media soma / 10
escrever("Mdia = ", media)
fim
include <stdio.h> //bibliotecas
include <conio.h>
void main()
int valor, soma, cont
float media
cont = 0
soma = 0
while(cont<10)

clrscr() //limpa a tela
gotoxy(10,10) //posiciona cursor
printf("Digite um valor: ")
scanf("%i",valor)
cont = cont + 1
soma = soma + valor

media = soma / 10
gotoxy(10,14)
printf("Media = %.2f", media)
getch() //pausa

Algoritmos e programao I.indd 134 7/8/2013 16:01:22


Process Black
JQU
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: JPK0 +XFGRC: 47 F=>A5>5A7 4F 6:@>A:CF 4F AFRF><89: %+,&'!
Excmp!n 10.4 - Lcr 25 va!nrcs, ca!cu!ar c cscrcvcr n pcrccntua! dc va!nrcs ncgativns.
Pnrtugus cstruturadn REPITA Linguagcm C dn whi!c
algoritmo exemplo104
variveis
cont: inteiro
valor, negativo, perc: real
incio
cont 0
negativo 0
repita


escrever("Digite um valor: ")
ler(valor)
cont cont + 1
se (valor < 0) ento
negativo negativo + 1
at(cont=25)
perc (negativo*100)/25
escrever("% negativos = ",perc)
fim
include <stdio.h> //bibliotecas
include <conio.h>
void main()
int cont
float valor, negativo, perc
cont = 0
negativo = 0
do
clrscr()
gotoxy(10,10)
printf("Digite um valor: ")
scanf("%f",valor)
cont = cont + 1
if(valor < 0)
negativo = negativo + 1
while(cont<25)
perc = (negativo*100)/25
gotoxy(10,14)
printf("%% de negativos = %.2f", perc)
getch() //pausa

Algoritmos e programao I.indd 135 7/8/2013 16:01:22


Process Black
JQH
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
\574A: JPKU +XFGRC: 47 F=>A5>5A7 4F 6:@>A:CF 4F AFRF><89: ,!%!
Excmp!n 10.5 - Lcr 10 va!nrcs dn tipn intcirn, ca!cu!ar c cscrcvcr a mdia dns va!nrcs !idns.
Pnrtugus cstruturadn PARA Linguagcm C Inr
algoritmo exemplo105
variveis
valor,soma,cont: inteiro
media: real
incio
soma 0
para cont de 1 at 10 faa
incio

escrever("Digite um valor: ")
ler(valor)
soma soma + valor
fim
media soma / 10
escrever("Mdia = ", media)
fim
include <stdio.h> //bibliotecas
include <conio.h>
void main()
int valor, soma, cont
float media
soma = 0
for(cont=1cont<=10cont++)

clrscr() //limpa a tela
gotoxy(10,10)//posiciona cursor
printf("Digite o %i valor: ",cont)
scanf("%i",valor)
soma = soma + valor

media = soma / 10
gotoxy(10,14)
printf("Media = %.2f", media)
getch() //pausa

%FeFAf@6<7=
ASCINCIO, A. I. G., CAMIOS, I. A. V.. PC*-(.&*3$' -( "#$5#(.(?N$ -& O$.AC3(-$#&':
aIgorilmos, IascaI, C/C++ (adro ANSI) e }ava. 3.ed. So IauIo: Iearson Iducalion do
rasiI, 2012.
IRG, A. C., IIGUIIR, }. I.. +B5,1( -& "#$5#(.(?N$. 2.ed. Canoas: Id. ULRA, 2001.
IORILLONI, A. L. V., IIRSIACHIR, H. I.. +B5,1( -& "#$5#(.(?N$: a conslruo de
aIgorilmos e eslruluras de dados. 3.ed. So IauIo: Iearson/Irenlice HaII, 2005.
GOODRICH, M. T., TAMASSIA, R.. "#$Q&3$ -& I05$#,3.$'. Iorlo AIegre: ookman, 2004.
MATTOS, Ialricia NoII de. +,*5C(5&. -& "#$5#(.(?N$ 44 (Caderno Universilario 027). 2.ed.
Canoas: Id. ULRA, 2001.
MIZRAHI, V. V.. R#&,*(.&*3$ &. +,*5C(5&. O. 2.ed. So IauIo: Iearson/Irenlice HaII, 2008.
IUGA, S., RISSITTI, G.. +B5,1( -& "#$5#(.(?N$ & S'3#C3C#(' -& M(-$'. So IauIo: Iearson/
Irenlice HaII, 2003.
SCHILDT, Herberl. O O$.A0&3$ & R$3(0. 3. ed. So IauIo: Makron ooks, 1997.
Algoritmos e programao I.indd 136 7/8/2013 16:01:22
Process Black
JQW
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
!><V<474F=
Iarle I - Quesles ob|elivas
1) A sinlaxe das decIaraes de variaveis em C incIui o nome da variaveI seguido
de um lio.
( ) Cerlo
( ) Irrado
2) So nomes vaIidos ara variaveis na Iinguagem C:
(a) if, ab_2, H789, ya,
(b) A, b, , counl,
(c) 9xy, a36, xy, --|,
(d) 2_ou_1, !m, h, |,
(e) i, |, inl, obs.
3) Im C, os nomes conl e Conl no odem ser emregados ara reresenlar a
mesma variaveI ao Iongo de um rograma.
( ) Cerlo
( ) Irrado
4) Uma slring e uma sequncia de caracleres armazenada em um velor de
caracleres.
( ) Cerlo
( ) Irrado
Algoritmos e programao I.indd 137 7/8/2013 16:01:22
Process Black
JQ_
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
5) O que faz o seguinle rograma em C
include <stdio.h>
void main( )
int i =2
printf (O valor de i = %i n, i)

(a) Imrime: O vaIor de i 2 e uIa ara a rxima Iinha,


(b) Imrime: O vaIor de i 2 n,
(c) IuIa ara a rxima Iinha e imrime: O vaIor de i 2 ,
(d) Imrime: O vaIor de i 2 ,
(e) Nenhuma das aIlernalivas anleriores.
6) QuaI o resuIlado das variaveis , k e l deois da seguinle sequncia de
oeraes
int ,k,l =k=10 l=++ =- k++ =+k-l--
(a) | -10, k 10, I 10,
(b) | -11, k 11, I 10,
(c) | -10, k 11, I 10,
(d) | 11, k 11, I 11,
(e) Nenhuma das aIlernalivas anleriores.
7) if(var) e equivaIenle a if(var!=0).
( ) Cerlo
( ) Irrado
Algoritmos e programao I.indd 138 7/8/2013 16:01:23
Process Black
JQL
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
8) Considerando o conceilo de variaveis em Linguagem C, Ieia as a!rmaes a
seguir e indique a a!rmaliva correla.
I. As variaveis de um rograma em C eslo associadas a osies de
memria, reviamenle idenli!cadas, que armazenam informaes
II. O rimeiro caraclere de um idenli!cador deve ser uma Ielra e o
reslanle do nome ode conler Ielras, numeros e subIinhado. AIem
dislo, aIavras-chaves no odem ser usadas como idenli!cadores.
III. As variaveis so cIassi!cadas, quanlo ao seu escoo, como gIobais
ou Iocais. As gIobais so decIaradas fora de quaIquer funo e so
reconhecidas em lodo o rograma, as Iocais so decIaradas denlro da
funo em que sero uliIizadas e vaIem enquanlo esla esliver aliva.
IV. O lio de uma variaveI de!ne os vaIores que eIa ode assumir e as
oeraes que odem ser reaIizadas com eIa.
V. A Iinguagem C no faz dislino enlre as variaveis Conl, conl e
CONT.
(a) II e III eslo incorrelas.
(b) I, II e IV eslo correlas.
(c) V esla incorrela.
(d) I, II e III eslo correlas.
(e) Todas eslo correlas.
9) Na Linguagem C, os cdigos de formao de lio de dados NO eslo
correlamenle associados na aIlernaliva:
(a) inl - i,
(b) doubIe - d,
(c) "oal - f,
(d) char - c,
(e) Nenhuma das resoslas anleriores.
Algoritmos e programao I.indd 139 7/8/2013 16:01:23
Process Black
J0P
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
10) Na exresso condicionaI A>=PP>A , esla correlo a!rmar que a mesma
(a) nunca sera verdadeira.
(b) somenle sera verdadeira quando I for menor ou iguaI a A.
(c) somenle sera verdadeira quando I for maior que A.
(d) nunca sera faIsa.
(e) Nenhuma das resoslas anleriores.
11) Considerando os eseci!cadores de lio usados nos comandos de saida
aresenlados a seguir, assinaIe a aIlernaliva INCORRITA.
(a) printf(Total = %05i,794)
T o l a I 0 0 7 9 4
(b) printf(Total = %-5i,469)
T o l a I 4 6 9
(c) printf(Total = %.2f,280.338)
T o l a I 2 8 0 . 3 4
(d) printf(Total = %4i,258)
T o l a I 2 5 8
(e) printf(Total = %4.2f,587.222)
T o l a I 5 8 7 . 2 2
12) Iara que faixa de vaIores da variaveI x o seguinle segmenlo de cdigo imrime
a Ielra C (Queslo da rova do IOSCOMI 2003)
if(x<=200)
if(x<100)
if(x<0) printf(A)
else printf(B)
else printf(C)
else printf(D)
(a) 0x100,
(b) x100,
(c) 100x200,
(d) x>200,
(e) 100x200.
Algoritmos e programao I.indd 140 7/8/2013 16:01:23
Process Black
J0J
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Partc II - Rcsn!un dc prnb!cmas
IscoIha um exercicio de cada um dos cailuIos anleriores e reescreva sua soIuo
em Linguagem C (uliIize um comiIador de Linguagem C ara execular os
rogramas resoIvidos).
Rcspnstas dns cxcrccins da Partc I
1 - Irrado
2 - b
3 - Cerlo
4 - Cerlo
5 - a
6 - b
7 - Cerlo
8 - c
9 - b
10 - d
11 - d
12 - e
Algoritmos e programao I.indd 141 7/8/2013 16:01:23
Process Black
J0O
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Algoritmos e programao I.indd 142 7/8/2013 16:01:23
Process Black
J0Q
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Algoritmos e programao I.indd 143 7/8/2013 16:01:23
Process Black
J00
1
"
2
%
!

3

+
4
5
6
7
8
9
:

7

;
<
=
>
?
@
6
<
7
Algoritmos e programao I.indd 144 7/8/2013 16:01:23
Process Black

Das könnte Ihnen auch gefallen