Anda di halaman 1dari 122

Lgica de Programao

Liluyoud Cury de Lacerda


Jos Marcio Benite Ramos
Sara Luize Oliveira Duarte

Cuiab-MT
2014

Presidncia da Repblica Federativa do Brasil


Ministrio da Educao
4FDSFUBSJBEF&EVDBP1SPmTTJPOBMF5FDOPMHJDB
%JSFUPSJBEF*OUFHSBPEBT3FEFTEF&EVDBP1SPmTTJPOBMF5FDOPMHJDB
Este caderno foi elaborado pelo Instituto Federal de Educao, Cincia e Tecnologia
de Rondnia-RO, para a Rede e-Tec Brasil, do Ministrio da Educao em parceria
com a Universidade Federal de Mato Grosso.
Instituto Federal de Educao, Cincia e
Tecnologia de Rondnia - IFRO

Equipe de Reviso
Universidade Federal de Mato Grosso
UFMT

Campus Porto Velho Zona Norte

Coordenao Institucional
Carlos Rinaldi

Direo-Geral
Miguel Fabrcio Zamberlan

Coordenao de Produo de Material


Didtico Impresso
Pedro Roberto Piloni

Direo de Administrao e Planejamento


Gilberto Laske
Departamento de Produo de EaD
Aridne Joseane Felix Quintela

Designer Educacional
Neusa Blasques
Ilustrao
Tatiane Hirata

Coordenao de Design Visual e Ambientes


de Aprendizagem
Rafael Nink de Carvalho

Diagramao
Tatiane Hirata

Coordenao da Rede e-Tec


Ruth Aparecida Viana da Silva

Reviso de Lngua Portuguesa


Vernica Hirata
Reviso Final
Neusa Blasques

1SPKFUP(SmDP
Rede e-Tec Brasil / UFMT
Lgica de Programao - Informtica para Internet

L131l

Lacerda, Liluyoud Cury de.


Lgica de programao /Liluyoud Cury de Lacerda, Jos Marcio Benite Ramos, Sara Luise
Oliveira Duarte. Cuiab: Ed.UFMT, 2013.
117 p.
Curso Tcnico Rede E- Tec. (IFRO)
1. Lgica - Informtica. 2. Algoritmos Informtica. I. Ttulo.
CDU 004.42

Ficha Catalogrfica Elaborada por Almira de Arajo Medeiros CRB1 2.327)

Apresentao Rede e-Tec Brasil


Prezado(a) estudante,
Bem-vindo(a) Rede e-Tec Brasil!
Voc faz parte de uma rede nacional de ensino que, por sua vez, constitui uma das aes do
Pronatec - Programa Nacional de Acesso ao Ensino Tcnico e Emprego. O Pronatec, institudo
pela Lei n 12.513/2011, tem como objetivo principal expandir, interiorizar e democratizar
BPGFSUBEFDVSTPTEF&EVDBP1SPmTTJPOBMF5FDOPMHJDB &15
QBSBBQPQVMBPCSBTJMFJSB
propiciando caminho de acesso mais rpido ao emprego.
neste mbito que as aes da Rede e-Tec Brasil promovem a parceria entre a Secretaria de
&EVDBP 1SPmTTJPOBM F 5FDOPMHJDB 4FUFD
 F BT JOTUODJBT QSPNPUPSBT EF FOTJOP UDOJDP 
como os institutos federais, as secretarias de educao dos estados, as universidades, as esDPMBTFDPMHJPTUFDOPMHJDPTFP4JTUFNB4
A educao a distncia no nosso pas, de dimenses continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao garantir acesso educao
de qualidade e ao promover o fortalecimento da formao de jovens moradores de regies
EJTUBOUFT HFPHSmDBPVFDPOPNJDBNFOUF EPTHSBOEFTDFOUSPT
A Rede e-Tec Brasil leva diversos cursos tcnicos a todas as regies do pas, incentivando os
estudantes a concluir o ensino mdio e a realizar uma formao e atualizao contnuas. Os
DVSTPTTPPGFSUBEPTQFMBTJOTUJUVJFTEFFEVDBPQSPmTTJPOBMFPBUFOEJNFOUPBPFTUVEBOte realizado tanto nas sedes das instituies quanto em suas unidades remotas, os polos.
0TQBSDFJSPTEB3FEFF5FD#SBTJMBDSFEJUBNFNVNBFEVDBPQSPmTTJPOBMRVBMJmDBEBoJOUFHSBEPSBEPFOTJOPNEJPFEBFEVDBPUDOJDBoDBQB[EFQSPNPWFSPDJEBEPDPNDBpacidades para produzir, mas tambm com autonomia diante das diferentes dimenses da
realidade: cultural, social, familiar, esportiva, poltica e tica.
/TBDSFEJUBNPTFNWPD
%FTFKBNPTTVDFTTPOBTVBGPSNBPQSPmTTJPOBM
Ministrio da Educao
Abril de 2014
Nosso contato
etecbrasil@mec.gov.br

Rede e-Tec Brasil

Indicao de cones
0T DPOFT TP FMFNFOUPT HSmDPT VUJMJ[BEPT QBSB BNQMJBS BT GPSNBT EF
linguagem e facilitar a organizao e a leitura hipertextual.
Ateno: indica pontos de maior relevncia no texto.

Saiba mais: oferece novas informaes que enriquecem o


assunto ou curiosidades e notcias recentes relacionadas ao
tema estudado.
Glossrio: JOEJDBBEFmOJPEFVNUFSNP QBMBWSBPVFYQSFTTP
utilizada no texto.
Mdias integradas: remete o tema para outras fontes: livros,
mMNFT NTJDBT sites, programas de TV.
Atividades de aprendizagem: apresenta atividades em
diferentes nveis de aprendizagem para que o estudante possa
realiz-las e conferir o seu domnio do tema estudado.
3FnJUBNPNFOUPEFVNBQBVTBOBMFJUVSBQBSBSFnFUJSFTDSFWFS
sobre pontos importantes e/ou questionamentos.

Rede e-Tec Brasil

Contents

Apresentao Rede e-Tec Brasil

Indicao de cones

Apresentao da Disciplina

11

Sumrio

13

Aula 1. Lgica

15

1.1 O que lgica?

15

1.2 Lgica no dia a dia

16

1.3 Lgica na Informtica

17

Aula 2. Algoritmos

21

2.1 O que um algoritmo?

21

2.2 Tipos de algoritmos

22

Aula 3. Ferramentas de criao de


algoritmos

27

3.1 Introduo

27

3.2 Plataforma de estudo

28

Aula 4. Estrutura bsica de um


algoritmo

33

4.1 Introduo

33

$PNPEFmOJSVNBMHPSJUNP



Aula 5. Variveis e tipos de dado

43

5.1 Introduo

43

5.2 Variveis

43

5.3 Tipos de dado

45

5.4 Sintaxe e exemplos de declarao

46

Palavra da Professora-autora
Caro(a) estudante,
Voc est prestes a entrar em um mundo fantstico onde homens e mquinas interagem para resolver problemas que antes eram difceis e at mesmo
impossveis. Ele tem evoludo de maneira alucinante e alguns o consideram
NHJDPPNVOEPEBT5FDOPMPHJBTEF*OGPSNBPF$PNVOJDBPo5*$T 
ou, simplesmente, TI.
Tecnologias de Informao um termo abrangente que engloba vrias reas, e neste caderno vamos abordar uma das mais importantes, que a Programao.
"JNQPSUODJBEFTTBSFBKVTUJmDBEBQFMPGBUPEFBMHJDBEFQSPHSBNBP
TFSBCBTFEFUPEBBJOGPSNUJDB1PSNFJPEFMBPTDJSDVJUPTMHJDPTTPQSPgramados, so criados os sistemas operacionais e todos os aplicativos que
usamos quando estamos em frente a qualquer dispositivo eletrnico, sejam
celulares, tablets, computadores e muitos outros.
/FTUF DBEFSOP TFSP BCPSEBEPT PT DPODFJUPT CTJDPT EB -HJDB F EB -JOguagem de Programao, como fazer com que o computador execute os
DPNBOEPTRVFEFTFKBNPTQBSBFYFDVUBSVNBUBSFGBFTQFDmDBF QSJODJQBMmente, entender como todo esse processo.
" -HJDB EF 1SPHSBNBP QPEF TFS DPOTJEFSBEB DPNP B QPSUB EF FOUSBEB
para esse mundo fantstico que permite uma profunda interao entre o hoNFNFBNRVJOB OPDBTP PDPNQVUBEPS4FOEPBTTJN mDBGDJMFOUFOEFS
QPSRVFNVJUPTmDBNBQBJYPOBEPTFNBSBWJMIBEPTDPNFTTBSFBFTQFDmDB
da informtica.
Bons estudos.
Professores-autores.

Rede e-Tec Brasil

Apresentao da Disciplina

"EJTDJQMJOBEF-HJDBEF1SPHSBNBPDPNQSFFOEFPGVOEBNFOUPUFSJDPF
prtico necessrio para desenvolver programas, apresentando as principais
estruturas de dados e de linguagem necessrias para a resoluo de problemas computacionais.
As aulas esto estruturadas de forma a capacit-lo(a) na construo de alHPSJUNPTFQSPHSBNBTBQBSUJSEPFOUFOEJNFOUPEBMHJDBQBSBSFTPMVPEF
problemas de complexidade limitada.
0PCKFUJWPEBEJTDJQMJOBGB[MP B
DPNQSFFOEFSPTNFDBOJTNPTMHJDPTF
matemticos da programao, relacionando problemas e elaborando solues atravs do uso de metodologias e ferramentas que envolvam os elementos bsicos da construo de algoritmos e programas de computador.
Para alcanar esse objetivo, a disciplina foi estrutura em dez aulas. A primeiSBBCPSEBBMHJDBOPEJBBEJBFOBJOGPSNUJDB/BTFHVOEB USBUBSFNPTEPT
algoritmos e as formas de represent-lo. Na terceira aula, mostraremos as
ferramentas usadas para a criao dos algoritmos. J na quarta aula, discorSFSFNPTTPCSFBFTUSVUVSBCTJDBEFVNBMHPSJUNP FNQTFVEPDEJHPDPN
VisualG, e em Java com Eclipse. Na sequncia, veremos o conceito de variveis, sua nomenclatura e os tipos primitivos de dados. Na sexta aula, estudaremos os conceitos de operadores e expresses, como empregar operadores
BSJUNUJDPT  SFMBDJPOBJT F MHJDPT QBSB DSJBS FYQSFTTFT DPNQMFYBT F  mOBMNFOUF  OBT RVBUSP MUJNBT BVMBT  USBUBSFNPT EBT FTUSVUVSBT EF TFRVODJB 
deciso, seleo e repetio.
1PSmN QPEFNPTEJ[FSRVFVNQSPHSBNBOBEBNBJTEPRVFJOTUSVFTQBSB
armazenar, processar e recuperar dados em computador, e as tcnicas usadas
QBSBFTDSFWFSFTTBTJOTUSVFTJOnVJEJSFUBNFOUFOBRVBMJEBEFEPQSPHSBNB
FTTFODJBMRVFWPDEFEJRVFVNBQBSDFMBTJHOJmDBUJWBEFTFVUFNQPQBSB
BTTJNJMBS UPEP P DPOUFEP BCPSEBEP  QPJT FTUB EJTDJQMJOB  B CBTF QBSB BT
QSYJNBTEJTDJQMJOBTSFMBDJPOBEBTBQSPHSBNBP FNBJTBJOEB BQPSUBEF
entrada do mundo das Tecnologias de Informao e Comunicao.
Bons estudos!

11

Rede e-Tec Brasil

Rede e-Tec Brasil

12

Lgica de Programao

Sumrio
Aula 1. Lgica

15

0RVFMHJDB

15

-HJDBOPEJBBEJB

16

-HJDBOB*OGPSNUJDB

17

Aula 2. Algoritmos

21

0RVFVNBMHPSJUNP

21

2.2 Tipos de algoritmos

22

Aula 3. Ferramentas de criao de algoritmos

27

3.1 Introduo

27

3.2 Plataforma de estudo

28

Aula 4. Estrutura bsica de um algoritmo

33

4.1 Introduo

33

$PNPEFmOJSVNBMHPSJUNP

34

Aula 5. Variveis e tipos de dado

43

5.1 Introduo

43

5.2 Variveis

43

5.3 Tipos de dado

45

5.4 Sintaxe e exemplos de declarao

46

Aula 6. Operadores e expresses

51

6.1 Introduo

51

6.2 Operadores e expresses

52

6.3 Ordem de precedncia

55

Aula 7. Estruturas sequenciais

61

7.1 Introduo

61

7.2 Estrutura sequencial

62

7.3 Finalmente um algoritmo completo

67

13

Rede e-Tec Brasil

Aula 8. Estruturas de deciso


8.1 Introduo

71

8.2 Tipos de estruturas de deciso

71

Aula 9. Estruturas de seleo

Rede e-Tec Brasil

71

83

9.1 Introduo

83

9.2 Sintaxe do comando escolha

83

Aula 10. Estruturas de repetio

89

10.1 Introduo

89

10.2 Tipos de estrutura de repetio

90

10.3 Comparao entre as estruturas de repetio

99

Palavras Finais

101

Guia de Solues

102

Referncias

120

Obras Consultadas

120

#JCMJPHSBmB#TJDB

121

Currculo dos Professores-autores

122

14

Aula 1. Lgica

Objetivos:
t DPODFJUVBSSBDJPDOJPMHJDP
t EJGFSFODJBSBSHVNFOUPTJOEVUJWPTEFBSHVNFOUPTEFEVUJWPTF
t VUJMJ[BSMHJDBOPEFTFOWPMWJNFOUPEFQSPHSBNBT

Caro(a)estudante,
Usamos a razo e o senso comum, mesmo que intuitivamente, na execuo
das tarefas do dia a dia, seja nas tomadas de deciso ou na resoluo de problemas. No decorrer da aula, iremos apresentar os conceitos fundamentais
QPSUSTEFTTBSB[P RVFBQBSUJSEFBHPSBDIBNBSFNPTEFMHJDB7FSFNPT
tambm como aplic-la na resoluo de problemas computacionais.

1.1 O que lgica?


Segundo o dicionrio da Porto Editora, a palavra lgica originria da palavra grega logik RVFTJHOJmDBiBBSUFEFSBDJPDJOBSw%JTQPOWFMFNIUUQ
www.infopedia.pt/lingua-portuguesa/> Acesso em: 03 set. 2013.
"MHJDBQPEFTFSPCUJEBBQBSUJSEPFODBEFBNFOUPSFHVMBSPVDPFSFOUFEBT
ideias e das coisas.
&NPVUSBTQBMBWSBT BMHJDBTFQSFPDVQBDPNBNBOFJSBRVFPTQFOTBNFOtos e as ideias so organizados e apresentados, possibilitando-se concluir
algo por meio do encadeamento de argumentos.
Segundo Puga e Rissetti (2009), os argumentos podem ser dedutivos ou
indutivos. Os argumentos indutivos so aqueles que, a partir dos dados,
conduzem a uma resposta ou concluso por meio da analogia. Por exemplo:

Aula 1 - Lgica

15

Rede e-Tec Brasil

Na ltima prova estudei apenas duas horas e me dei bem.


Logo, se estudar duas horas para a prova de hoje, certamente me darei bem tambm.
Observe que esse tipo de raciocnio no d certeza de que o resultado ser
de fato o esperado.
Os argumentos dedutivos so aqueles cuja resposta obtida a partir de uma
sequncia de premissas, dadas pela anlise de situaes e fatos. Por exemplo:
O autor do livro um professor. O professor trabalha muito.
Logo, o autor do livro trabalha muito..
Podemos perceber, agora, que, a partir de uma srie de premissas (anlise de
fatos), podemos concluir algo verdadeiro.
0FYFNQMPBOUFSJPSJEFOUJmDBVNTJMPHJTNPRVFSFQSFTFOUBVNBSHVNFOUP
composto por duas premissas e uma concluso. Estabelece uma relao em
RVF  NFTNP RVF IBKB VNB BQBSFOUF DPFSODJB OP FODBEFBNFOUP MHJDP 
pode ou no ser vlida.

O filsofo grego Aristteles (384


a 322 a. C.), aluno de Plato,
considerado o criador da lgica,
mas ele no a chamava assim
-- chamava-a de razo. O termo
lgica s passou a ser utilizado
bem depois.

&OUP QPEFNPTEJ[FSRVFPPCKFUJWPEBMHJDBEFEV[JS BOBMJTBS GPSNBMJ[BS


BSHVNFOUPTFWFSJmDBSTVBWBMJEBEFDPNCBTFOBSB[P

1.2 Lgica no dia a dia


Faz parte da natureza humana analisar e executar aes passo a passo para
BSFBMJ[BPEFTVBTBUJWJEBEFToOBNBJPSJBEBTWF[FTOFNQFSDFCFNPTRVF
estamos pensando logicamente.
O ordenamento natural do pensamento para a execuo de uma tarefa
DIBNBEPEFSBDJPDOJPMHJDP$PNPFYFNQMP QPEFNPTDJUBS
Tarefa: vestir-se.
O armrio est fechado.
A roupa est dentro do armrio.
Primeiro preciso abrir o armrio para pegar a roupa.
Depois de pegar a roupa, posso me vestir.

Fonte: www.ahistoria.com.br

Rede e-Tec Brasil

16

Lgica de Programao

Perceba, que mesmo inconscientemente, tomamos decises e realizamos


BFTTFHVJOEPVNBPSEFNMHJDBQBSBDPOTFHVJSPRVFRVFSFNPT"DBQBDJdade humana de raciocinar logicamente que o tornou capaz de criar tantas
maravilhas com as quais convivemos hoje, inclusive o computador. Agora,
WBNPTOPTBUFSBPFTUVEPEBMHJDBBQMJDBEBOBJOGPSNUJDB

1.3 Lgica na Informtica


"MHJDBQPEFTFSBQMJDBEBFNRVBMRVFSDJODJB UBMDPNP'JMPTPmB 1TJDPMPgia, Sociologia, Matemtica, Fsica etc., mas o nosso foco como aplic-la
OB*OGPSNUJDB NBTFTQFDJmDBNFOUFOBDPOTUSVPEFQSPHSBNBT
0TTFSFTIVNBOPTUNBDBQBDJEBEFEFFYQSFTTBSBMHJDBBUSBWTEBQBMBWSB
GBMBEBPVFTDSJUB PCFEFDFOEPTSFHSBTHSBNBUJDBJTEBMJOHVBHFNVTBEBo
no nosso caso, o portugus.
Entretanto, a linguagem natural pode ser um tanto cansativa, repetitiva, ambgua e suscetvel a diversas interpretaes e argumentaes informais e, por
esse motivo, faz-se necessria a criao de uma representao mais formal
EBMHJDB
/B GPSNBMJ[BP EB MHJDB   QPTTWFM USBCBMIBSNPT DPN WBSJWFJT  P RVF
QPTTJCJMJUB BQMJDBS P NFTNP SBDJPDOJP MHJDP B QSPCMFNBT EJGFSFOUFT 1PS
exemplo:
Joo passou no vestibular.
Todos que passam no vestibular so estudiosos.
Logo, Joo estudioso.
Substituindo Joo e estudioso, pelas variveis X e Y, temos que:
X passou no vestibular.
Todos que passam no vestibular so Y.
Logo, X Y.
Perceba que X e Y, por serem termos genricos, podem ser aplicados em
outros contextos:
Para X = Jos e Y = inteligente, temos:
Jos passou no vestibular.
Todos que passam no vestibular so inteligentes.
Logo, Jos inteligente.

Aula 1 -Lgica

17

Rede e-Tec Brasil

Ou,
Para X = Pedro e Y = sortudo, temos:
Pedro passou no vestibular.
Todos que passam no vestibular so sortudos.
Logo, Pedro sortudo.

O conceito de variveis ser amplamente discutido na Aula 5.


Para a resoluo de problemas computacionais, usamos esse tipo de raciocnio, em que informaes a serem analisadas so representadas por termos
genricos (variveis), os quais posteriormente sero substitudos por valores
FTQFDmDPT QPTTJCJMJUBOEPBSFTPMVPEFEJWFSTPTQSPCMFNBTDPNBNFTNB
MHJDB

Resumo
7PDUFWFPQSJNFJSPDPOUBUPDPNPTDPODFJUPTEFMHJDBFDPOTUBUPVRVFFMB
a base para a resoluo de problemas computacionais. Vimos, tambm,
que, para realizarmos uma atividade com sucesso (resoluo de um problema), executamos vrios passos de acordo com uma ordem, seguindo um
SBDJPDOJP MHJDP  SBDJPDOJP FTTF RVF QPEF TFS SFQSFTFOUBEP GPSNBMNFOUF
para resolver outros problemas semelhantes.

Atividades de aprendizagem
1. A partir do que leu nesta aula, explique com suas palavras a importncia
EBMHJDBQBSBB*OGPSNUJDB
2. D um exemplo de um argumento indutivo cujo resultado verdadeiro e
de outro que seja falso.
3. D um exemplo de um argumento dedutivo diferente do que foi mostrado nesta aula.
4. %FBDPSEPDPNPTTJMPHJTNPTBTFHVJS BTTJOBMFBBmSNBPRVFBQSFTFOUF
uma concluso vlida:
*o(BUPTTPNBNGFSPT.BNGFSPTOPCPUBNPWP-PHP
a) Todos os mamferos so gatos.

Rede e-Tec Brasil

18

Lgica de Programao

b) Todos os gatos no botam ovo.


c) 0THBUPTUNNBJTEFVNmMIPUF
**o)FYHPOPTTPmHVSBTRVFQPTTVFNOHVMPT5FNPTVNBmHVSBRVF
no tem ngulo. Logo:
a)&TTBmHVSBQPEFTFSVNBMJOIB
b)&TTBmHVSBOPVNIFYHPOP
c) No possvel tirar concluses.
***o7PDFTUEJSJHJOEPTVBNPUP4FGSFBSSBQJEBNFOUF VNDBSSPCBUFS
em sua traseira. Se no frear rapidamente, voc atropelar uma senhora
que est atravessando a rua. Logo:
a) As senhoras no devem andar na rua.
b) O carro ou voc esto em alta velocidade.
c) O carro bater em sua traseira ou voc atropelar a senhora.
5. Trs senhoras: Dona Branca, Dona Rosa e Dona Violeta, passeavam pelo
parque, quando Dona Rosa disse:
o/PDVSJPTPRVFFTUFKBNPTVTBOEPWFTUJEPTEFDPSFTCSBODB SPTBFWJPMFUB FNCPSBOFOIVNBEFOTFTUFKBVTBOEPVNWFTUJEPEFDPSJHVBMBPTFV
QSQSJPOPNF
o6NBTJNQMFTDPJODJEODJBoSFTQPOEFVBTFOIPSBDPNWFTUJEPWJPMFUB
2VBMBDPSEPWFTUJEPEFDBEBTFOIPSB
6. Analise e descreva uma maneira de mover os discos do estado inicial para
PFTUBEPmOBM DPOTJEFSBOEPRVFTQPTTWFMNPWJNFOUBSVNEJTDPQPSWF[ 
FFNIJQUFTFBMHVNBVNEJTDPNBJPSQPEFSmDBSTPCSFVNNFOPS

Aula 1 -Lgica

19

Rede e-Tec Brasil

Estado inicial

Estado final

Fonte: autores

Caro(a) estudante,
Finalizamos a nossa primeira aula. Nela, trabalhamos conceitos importantes
QBSBPFOUFOEJNFOUPEBTQSYJNBT&TQFSBNPTRVFFTUFKBNPUJWBEP B
QBSB
TFHVJSFNGSFOUF%BOEPDPOUJOVJEBEFBPTFTUVEPT OBQSYJNBBVMBUSBUBSFNPTEFVNBTTVOUPNVJUPJNQPSUBOUFQBSBBMHJDBEFQSPHSBNBPPT
algoritmos. Vamos l!

Rede e-Tec Brasil

20

Lgica de Programao

Aula 2. Algoritmos
Objetivos:
t DPODFJUVBSBMHPSJUNPT
t JEFOUJmDBS PT UST UJQPT EF BMHPSJUNPT FTUVEBEPT  TVBT WBOUBHFOTFEFTWBOUBHFOTF
t FTDSFWFSBMHPSJUNPOBTGPSNBTEFEFTDSJPOBSSBUJWB nVYPHSBNBFQTFVEPDEJHP

Caro(a) estudante,
A base do desenvolvimento dos programas modernos o algoritmo. Nesta
aula, voc ir conhecer os principais conceitos relacionados a ele e ter a
oportunidade de aprender a resolver os mais diversos problemas computacionais. Para tanto, dever aprender a pensar de forma algortmica, isto ,
pensar em ordem, da maneira que vimos na aula anterior.

2.1 O que um algoritmo?


De acordo com Forbellone (2005), um algoritmoQPEFTFSEFmOJEPDPNP
VNBTFRVODJBEFQBTTPTRVFWJTBNBUJOHJSVNPCKFUJWPCFNEFmOJEP4FHVOEPPEJDJPOSJP1PSUP&EJUPSB PTFOUJEPNBUFNUJDPFMHJDPEBQBMBWSB
algoritmoVNDPOKVOUPEFSFHSBTCFNEFmOJEBTQBSBSFTPMWFSVNQSPCMFNBDPNVNONFSPmOJUPEFQBTTPT
Os algoritmos so amplamente utilizados em disciplinas ligadas rea de
cincias exatas, por exemplo:
possvel descrever a resoluo de uma equao de 2 grau
(Bhaskara) em uma sequncia de passos que levam ao resultado esperado.
A descrio dessa resoluo de forma genrica o que chamamos de algoritmo.

Aula 2 - Algoritmos

21

Rede e-Tec Brasil

Geralmente, utilizamos o pensamento algortmico de maneira intuitiva. Por


exemplo, quando vamos trocar uma lmpada, que uma tarefa corriqueira
FTFNNVJUBEJmDVMEBEF OFDFTTSJPRVFTJHBNPTVNBTSJFEFQBTTPTQBSB
atingir o objetivo, que poderia ser:
Passo 1: pegar uma escada.
Passo 2: colocar a escada perto da lmpada.
Passo 3: buscar uma lmpada nova.
Passo 4: subir a escada.
Passo 5: retirar a lmpada velha.
Passo 6: colocar a lmpada nova.
Passo 7: descer a escada.
Passo 8: jogar a lmpada velha no lixo.
Passo 9: guardar a escada.

Voc pode estar pensando agora: eu troco a lmpada de maneira diferente,


primeiro pego a lmpada nova para depois buscar a escada. Na maioria das
vezes, existem vrias maneiras de se chegar a um mesmo objetivo, isto ,
podem existir vrios algoritmos para solucionar o mesmo problema. O importante, nesse caso, que o algoritmo descreva os passos a serem seguidos
em cada uma das maneiras possveis.
Pea para um(a) amigo(a) descrever os passos que faz para trocar o pneu do
DBSSP$PNQBSFDPNPTQBTTPTRVFWPDGBSJBFWFSJmRVFTFTPJHVBJTCFN
possvel que os algoritmos sejam diferentes.

2.2 Tipos de algoritmos


6NBMHPSJUNPOBEBNBJTEPRVFVNBMJOIBEFSBDJPDOJPMHJDPRVFQPEF
TFSEFTDSJUBEFWSJBTNBOFJSBT TFKBEFGPSNBUFYUVBM HSmDBFBUNFTNP
oralmente.
Apesar das diversas maneiras de se representar um algoritmo, segundo Ascencio e Campos (2005), os trs tipos mais utilizados so:
t EFTDSJPOBSSBUJWB
t nVYPHSBNB
t QTFVEPDEJHP

Rede e-Tec Brasil

22

Lgica de Programao

2.2.1 Descrio narrativa


A descrio narrativa consiste em descrever a soluo do problema utilizando uma linguagem natural, como, por exemplo, a lngua portuguesa. Esse
foi o meio que usamos at agora para descrever nossos algoritmos.
Vantagens:
Muito simples de usar j que bem conhecida pela pessoa que analisa o
problema.
Desvantagens:
A linguagem natural abre espao para vrias interpretaes e tende a se
tornar prolixa.
Exemplo:
7BNPTEFTDSFWFSPBMHPSJUNPRVFTPNFEPJTONFSPT
1BTTPSFDFCFSPQSJNFJSPFTFHVOEPONFSP
1BTTPTPNBSPTEPJTONFSPT
Passo 3: mostrar o resultado obtido na soma.

2.2.2 Fluxograma
0nVYPHSBNBVNBSFQSFTFOUBPHSmDBEFVNBMHPSJUNP6UJMJ[BBMHVOT
TNCPMPTQSEFmOJEPT NPTUSBEPTOB5BCFMB QBSBJEFOUJmDBSPTQBTTPTB
serem seguidos para chegar ao resultado.
5"#&-"$POKVOUPEFTNCPMPTVUJMJ[BEPTOPnVYPHSBNB
Indica o incio e o fim do algoritmo.

Conecta os smbolos e indica o sentido do fluxo de dados.

Indica clculos e atribuies de valores.

Aula 2 - Algoritmos

23

Rede e-Tec Brasil

Representa entrada de dados.

Representa sada de dados.

Representa uma tomada de uma deciso.

Fonte: ASCENCIO; CAMPOS, 2005

Vantagens:
"MHJDBVTBEBNBJTQSFDJTBOPEBOEPNBSHFNBNMUJQMBTJOUFSQSFUBFT 
FDPOTFRVFOUFNFOUF mDBNBJTGDJMBNJHSBPEPBMHPSJUNPQBSBVNBMJOguagem de programao real.
Desvantagens:
muito mais trabalhoso fazer um desenho do que simplesmente escrever,
mesmo considerando o auxlio de programas especializados. Alm disso, a
SFQSFTFOUBP HSmDB EPT BMHPSJUNPT UFOEF B mDBS NVJUP FYUFOTB F  DPOTFRVFOUFNFOUF NBJTEJGDJMEFTFSBOBMJTBEBFNPEJmDBEB JNBHJOFSFGB[FS
UPEPPEFTFOIPQPSDBVTBEFVNBNVEBOBOBMHJDB

Exemplo:
Vamos descrever o algoritmo que some dois
ONFSPTOBGPSNBEFnVYPHSBNB

Fonte: Autores.

Rede e-Tec Brasil

24

Lgica de Programao

2.2.3 Pseudocdigo
0QTFVEPDEJHPEFTDSFWFBTPMVPEFVNQSPCMFNBBMHPSUNJDPEFNBOFJSB
UFYUVBMFQPSNFJPEFSFHSBTQSFEFmOJEBT&MFVUJMJ[BVNBMJOHVBHFNFTUSVUVrada que lembra o Pascal, uma linguagem de programao que j foi muito
usada.
"QBMBWSBQTFVEPDEJHPTJHOJmDBiGBMTPDEJHPw"MHVOTBVUPSFTDIBNBN
PQTFVEPDEJHPEFportugus estruturado ou portugol, bem sugestivo,
j que podemos consider-lo como uma linguagem intermediria entre a
linguagem natural e a de programao.
Vantagens:
"MNEFBTJOUBYFTFSCFNQSYJNBEBMJOHVBHFNOBUVSBM BNJHSBPEF
VNQTFVEPDEJHPQBSBVNBMJOHVBHFNEFQSPHSBNBPRVBTFRVFJNFdiata.
Desvantagens:
1TFVEPDEJHPT BTTJNDPNPMJOHVBHFOTEFQSPHSBNBP QPTTVFNBMHVNBT
regras (mesmo que sejam bem mais simples do que a de uma linguagem de
programao completa). necessrio aprend-las e aplic-las corretamente.
Exemplo:
7BNPTEFTDSFWFSVNQTFVEPDEJHPRVFTPNFEPJTONFSPT
ALGORITMO
DECLARE N1, N2, SOMA: NUMRICO;
ESCREVA Digite dois nmeros;
LEIA N1, N2;

ESCREVA O resultado da soma igual a: , SOMA;
FIM_ALGORITMO.

Resumo
No desenvolvimento desta aula, voc teve a oportunidade de aprender o
que um algoritmo. Discorremos sobre os tipos de algoritmo. Os trs mais
VUJMJ[BEPTTPBEFTDSJPOBSSBUJWB PnVYPHSBNBFPQTFVEPDEJHP.PTUSBmos tambm as vantagens e as desvantagens de cada um desses algoritmos.
Esperamos que voc esteja apto a escrev-los ou desenh-los, mesmo sem

Aula 2 - Algoritmos

25

Rede e-Tec Brasil

ter conhecimento sobre todos os recursos e regras existentes.


Agora hora de praticar. Vamos l!

Atividades de aprendizagem
1. Descreva qual a principal funo dos algoritmos.
2. Faa um algoritmo na forma de descrio narrativa que descreva os
passos de uma pessoa para abrir um documento do Word armazenado no
seu e-mail.
3.'BBVNBMHPSJUNPOBGPSNBEFinVYPHSBNBwRVFNPTUSFPTBMSJPUPUBMEF
VNGVODJPOSJP EBEPPTBMSJPRVFFMFSFDFCF PONFSPEFmMIPTRVFQPTTVJ
FTBCFOEPRVF QBSBDBEBmMIP FMFSFDFCFVNBBKVEBEFDVTUPEF3
4.'BBVNBMHPSJUNPOBGPSNBEFiQTFVEPDEJHPwRVFDBMDVMFPDVCPEF
VNEFUFSNJOBEPONFSPJOGPSNBEP
Caro(a) estudante,
Esperamos que tenha achado interessante o estudo dos algoritmos, pois
FMFTGBDJMJUBNNVJUPBTPMVPEFBMHVOTQSPCMFNBT7BNPTDPOUJOVBS "JOEB
UFNPTNVJUPBTTVOUPMFHBMQBSBFTUVEBS/BQSYJNBBVMB BCPSEBSFNPTBT
ferramentas de criao de algoritmos.

Rede e-Tec Brasil

26

Lgica de Programao

Aula 3. Ferramentas de criao de


algoritmos
Objetivos:
t JEFOUJmDBSPTDPNBOEPTEFFOUSBEB QSPDFTTBNFOUPFTBEBEF
EBEPTF
t EFTFOWPMWFS BMHPSJUNPT DPN QTFVEPDEJHPT7JTVBM( F +BWB
Eclipse.

Caro(a) estudante,
Atualmente existem centenas, seno milhares de programas especializados
em criar outros programas. Eles so chamados de ambiente integrados de
desenvolvimento (do ingls: Integrated Development Environment o *%&

Iremos utilizar em nossas aulas uma ferramenta bem simples, o VisualG,
RVFOPDIFHBBTFSVNB*%&DPNQMFUB NBTPTVmDJFOUFQBSBBQSFOEFSF
exercitar a criao de algoritmos.
Veremos que, para cada exemplo dado em VisualG, teremos o equivalente
em Java, que uma linguagem de programao completa e tem vrias IDEs
QSPmTTJPOBJTRVFEPTVQPSUFBFTTBMJOHVBHFN

3.1 Introduo
Qualquer dispositivo eletrnico que manipula informaes, seja de pequeno
QPSUF DPNPVNDFMVMBSEFNEJPQPSUF DPNPVNDPNQVUBEPSdesktopPV
de grande porte, como os servidores de datacenters, todos eles executam
basicamente trs aes:
t FOUSBEBEFEBEPT
t QSPDFTTBNFOUPEFEBEPT
t sada de dados.

Aula 3 - Ferramentas de criao de algoritmos

27

Rede e-Tec Brasil

Como esses dispositivos so controlados essencialmente por algoritmos esQFDmDPTQBSBDBEBDFOSJPPVGVOP QPEFNPTEJ[FSRVFVNBMHPSJUNP


composto por comandos de entrada de dados, comandos de processamento
de dados e comandos de sada de dados.
.BTPRVFTFSJB OBQSUJDB FOUSBEB QSPDFTTBNFOUPFTBEBEFEBEPT 
t Entrada de dados quando o computador recebe dados do mundo
externo, como, por exemplo, do teclado, do microfone, da webcam ou
EFNVJUPTPVUSPT0BMHPSJUNPBSNB[FOBFTTBTJOGPSNBFTOBNFNSJB
para posterior processamento.
t Processamento de dados o momento em que o algoritmo que est
rodando em um computador recebe os dados e os transforma de acordo
DPN VNB MHJDB QSFEFmOJEB  HFSBOEP  BTTJN  BMHVN UJQP EF JOGPSNBPRVFQPEFTFSVUJMJ[BEPQPTUFSJPSNFOUF UBOUPQFMPQSQSJPBMHPSJUNP
quanto pelo mundo externo.
t Sada de dados quando o computador envia os dados resultantes do
processamento de dados para o mundo externo. O computador pode
enviar essa informao de diversas maneiras, tais como mostrar no monitor, imprimir no papel, enviar o udio pela caixa de som, gravar no disco
rgido, entre muitos outros.
Em resumo, o algoritmo uma sequncia de passos para se chegar a um
objetivo, sendo que esses passos, quando executados em um computador,
podem ser chamados de comandos ou instrues, os quais podem ser de
entrada, processamento ou sada de dados.
"HPSB RVF TBCFNPT P TVmDJFOUF BDFSDB EF BMHPSJUNPT  WFN B QFSHVOUB
DPNPDSJMPTEFNBOFJSBFmDJFOUF

3.2 Plataforma de estudo


Foi visto na aula anterior que podemos representar um algoritmo de vrias
maneiras diferentes, mas, no decorrer de nossas aulas, vamos adotar duas:
t QTFVEPDEJHPF
t linguagem de programao Java.

Rede e-Tec Brasil

28

Lgica de Programao

" KVTUJmDBUJWB QBSB FTTBT FTDPMIBT  RVF P QTFVEPDEJHP QPTTVJ B TJOUBYF


mais amigvel para principiantes, e o Java , hoje, um padro de programao no mercado.

3.2.1 Desenvolvendo algoritmos com


pseudocdigos e VisualG
1BSBEFTFOWPMWFSQTFVEPDEJHPT CBTUBVNQBQFM VNMQJTFNVJUBMHJDB
EFQSPHSBNBP&OUSFUBOUP OPQPTTWFMiFYFDVUBSwFTTFQTFVEPDEJHP 
EJmDVMUBOEP BTTJN UFTUBSBMHJDBVTBEB

Alm do Java, outras


linguagens de programao
so bastante usadas. Podemos
citar o C# e Visual Basic para
desenvolvimento com produtos
Microsoft e Web, e o PHP,
especfico para desenvolvimento
para Web. Outro padro que est
em constante transformao e
hoje j capaz de desenvolver
aplicaes completas na Web o
HTML 5 + CSS 3 e Javascript.

Uma alternativa usar um programa desenvolvido no Brasil que usa a lngua


QPSUVHVFTBQBSBEFTDSFWFSPQTFVEPDEJHP RVFP7JTVBM(
O VisualG roda no sistema
operacional Windows XP ou
posterior (inclusive no Windows
8). Para baix-lo, basta digitar
VisualG 2.5 no Google e baixar
as verses disponveis. Entre elas
temos:
http://www.guanabara.
info/2007/09/visualg-v25/
http://www.ifro.br/downloads/
visualgv25.exe

Esta a janela do VisualG

Figura 3.1 - Janela do VisualG


Fonte: Autores.

A interface do VisualG bem intuitiva e permite a voc criar algoritmos de


maneira bem simples e direta. Vamos descrever alguns de seus itens.
t Menu de comandosoUFNUPEBTBTPQFTEJTQPOWFJTOPQSPHSBNB 
desde salvar e recuperar algoritmos at execut-los e test-los.

Aula 3 - Ferramentas de criao de algoritmos

29

Rede e-Tec Brasil

Para conhecer mais sobre o


VisualG, assista ao vdeo:
http://www.youtube.com/
watch?v=sU17rbKEPUA
Ou leia o manual do VisualG do
Professor Arley Rodrigues:
http://www.facom.ufu.
br/~claudio/Cursos/PP/Docs/
Visualg2.pdf

t Botes de atalhooDPNPPQSQSJPOPNFKEJ[ TPBUBMIPTQBSBPT


principais comandos do menu.
t rea de trabalho o  P MPDBM POEF FTDSFWFNPT OPTTPT BMHPSJUNPT FN
QTFVEPDEJHPQPSUVHPM
t Janela de variveisoNPTUSBUPEBTBTWBSJWFJTRVFFTUPTFOEPVTBEBT
no algoritmo.
t Janela de execuooTFSWFQBSBNPTUSBSBTBEBEPTJTUFNB

3.2.2 Desenvolvendo algoritmos com Java e


Eclipse

Recomendamos que use o


Eclipse, uma IDE que permite
o desenvolvimento rpido
de aplicaes (RAD - Rapid
Application Development) em
Java.
O Eclipse a IDE Java mais
usada e tambm gratuita. Voc
pode baix-la em:
http://www.eclipse.org/
downloads/

Ao se criar um algoritmo para solucionar determinado problema, o objetivo


poder aplic-lo na vida real, em situaes reais. Para tanto, faz-se necessrio transcrever o algoritmo para uma linguagem de programao completa.
"MJOHVBHFNFTDPMIJEBQBSBFTUFDBEFSOPPQTFVEPDEJHPDPN7JTVBM( 
mas o Java, embora mais complexo, o mais usado e apresenta muitos deUBMIFTRVF QPSTJTT KEBSJBNVNMJWSP OBWFSEBEFFYJTUFNJONFSPTMJWSPT
dedicados linguagem Java). Por isso, iremos mostrar apenas o necessrio
para que consigamos transcrever nossos algoritmos de VisualG para o Java.
Esta a janela do Eclipse

Figura 3.2 - Janela do Eclipse


Fonte: Autores.

Rede e-Tec Brasil

30

Lgica de Programao

Perceba que a interface do Eclipse bem mais complexa, com muitas opFTFKBOFMBT JTTPQPSRVFP&DMJQTFVNBGFSSBNFOUBEFVTPQSPmTTJPOBM
que permite desde a criao de programas bem simples at programas para
Web, celulares, tablets e muitos outros.
A priori, para voc conseguir trabalhar com o Eclipse, vamos descrever apenas algumas reas do mesmo:
t Menu de comandosoUFNUPEBTBTPQFTEJTQPOWFJTOPQSPHSBNB 
desde salvar e recuperar projetos em Java at execut-los e test-los.
t Botes de atalhooDPNPPQSQSJPOPNFKEJ[ TPBUBMIPTQBSBPT
principais comandos do menu.

Para conhecer mais sobre o


Eclipse, assista ao vdeo:
http://www.youtube.com/
watch?v=Vf1AiGlaRQQ

t rea de trabalhooPMPDBMPOEFFTDSFWFNPTPTQSPHSBNBTFN+BWB
t Explorador de arquivosoQFSNJUFHFSFODJBSUPEPTPTBSRVJWPTRVFGBzem parte do meu projeto de software (isso mesmo, um programa em
Java pode ser composto por vrios arquivos).
t Janela de execuooTFSWFQBSBNPTUSBSBTBEBEPTJTUFNBVTVBMmente chamado de console ou output.
Para cada problema dado, a partir de agora vamos resolv-los de duas forNBT DPNBTEPCSBEJOIBT7JTVBM(QTFVEPDEJHPF&DMJQTF+BWB

Resumo
No decorrer da aula, tratamos das ferramentas que iremos usar para criar
nossos algoritmos ao longo da disciplina. Desenvolvemos algoritmos com
QTFVEPDEJHPTVTBOEPPWJTVBM(FFN+BWBDPNP&DMJQTF VNBGFSSBNFOUB
EFVTPQSPmTTJPOBMRVFQFSNJUFEFTEFBDSJBPEFQSPHSBNBTCFNTJNQMFT
at os mais complexos.
Agora, vamos s atividades.

Atividades de aprendizagem
1. Alm das IDEs citadas na aula, pesquise mais quatro usadas para prograNBPFJEFOUJmRVFBTMJOHVBHFOTRVFFMBTVUJMJ[BN
2. Instale as IDEs citadas nesta aula e escreva um algoritmo em cada uma

Aula 3 - Ferramentas de criao de algoritmos

31

Rede e-Tec Brasil

delas (pode ser uma variao dos que foram utilizados como exemplo).
3. Salve e recupere os algoritmos criados no exerccio anterior. Analise as
estruturas das pastas e dos arquivos criados por cada uma das plataformas
QTFVEPDEJHPDPN7JTVBM(F+BWBDPN&DMJQTF

4.%TVBPQJOJPTPCSFFTDSFWFSBMHPSJUNPTFNQTFVEPDEJHPTFFNVNB
linguagem de programao verdadeira. Discorra sobre sua experincia nas
atividades anteriores.
Caro(a) estudante,
&OUP HPTUPVEP7JTVBM(FEP&DMJQTF $PNFTTFTEPJTQSPHSBNBT WPDJS
fazer coisas incrveis. Na Aula 4, mostraremos as estruturas bsicas de um
BMHPSJUNP$POUJOVFFTUVEBOEPDPNBmODPOPTTBTBVMBT"UBQSYJNB

Rede e-Tec Brasil

32

Lgica de Programao

Aula 4. Estrutura bsica de um


algoritmo

Objetivo:
t criar uma estrutura bsica para desenvolver um algoritmo em
QTFVEPDEJHPFVNBMHPSJUNPFN+BWB

Caro(a) estudante,
"QBSUJSEFBHPSB WBNPTDPNFBSBDSJBSOPTTPTQSQSJPTBMHPSJUNPT FTQBP
onde acontece toda a mgica do mundo da programao. Mas precisamos
primeiramente entender como funciona a estrutura bsica do mesmo, que
muito simples e fcil, para depois test-los nos ambientes integrados de
desenvolvimentos vistos na aula passada.

4.1 Introduo
Os algoritmos so feitos para serem executados por mquinas, e sabemos
que as mquinas ainda esto muito longe de ter uma inteligncia comparada do ser humano.
Voc, ao estabelecer uma conversa com outra pessoa, usando a lngua portuguesa, pode no seguir todas as regras gramaticais que ela exige, mas,
mesmo assim, o dilogo acontece.
Veja o exemplo:

o&B +PP UVEPFNSJCB


o$BSB UVEPOBCPB
o2VBOEPOTWBJKPHBSBRVFMBQFMBEB
o.BOP WBNVNBSDBSOFTTFmNEFTFNBOBBHPSBDPNBUVSNB
/FTTFFYFNQMPEFDPNVOJDBPFOUSFEVBTQFTTPBT NFTNPDPNPTJONFros erros (grias, concordncia, abreviaes etc.), o dilogo aconteceu, isto ,
os dois se entenderam.

Aula 4 - Estrutura bsica de um algoritmo

33

Rede e-Tec Brasil

O algoritmo uma maneira de se falar com o computador, mas, nessa


comunicao, um provido de inteligncia (o ser humano, no caso, o programador) e o outro... bem, vamos dizer que ainda no temos um HAL 9000
nossa disposio.
QPSJTTPRVFFTTBDPNVOJDBPEFWFTFSCFNEFmOJEB TFNFSSPT FNVNB
linguagem bem limitada e simples (poucas regras, pequeno vocabulrio).
$BEB MJOHVBHFN EF QSPHSBNBP UFN TVBT QSQSJBT SFHSBT F TFV QSQSJP
vocabulrio, mas elas, em sua maioria, so muito semelhantes.
Na comunicao com o computador, isto , na criao do algoritmo, se voc
FSSBSVNBOJDBQBMBWSB VTBSVNBFTUSVUVSBFSSBEBPVBUNFTNPFTRVFDFS
uma vrgula, o computador no vai entender, gerando erros na hora de comQJMBS USBEV[JSEPDEJHPGPOUFQBSBPDEJHPRVFBNRVJOBFOUFOEF
PVOB
hora de executar.
Por essa razo, nesta aula, vamos explicar detalhadamente essa estrutura
de comunicao com o computador, que, como j dissemos antes, por ser
MJNJUBEBFTJNQMFT mDBGDJMEFBQSFOEFSoTOPTFFTRVFDFSEPTEFUBMIFT

$PNPEFmOJSVNBMHPSJUNP
6NBMHPSJUNPNOJNPUFNQFMPNFOPTVNOPNF VNBEFTDSJP BJEFOUJmDBPEPJODJPFEPmNEPNFTNPF MHJDP VNDPNBOEP VNQBTTPBTFS
executado), pelo menos.

4.2.1 Nomenclatura de algoritmos


Para criar um algoritmo precisamos saber o seu objetivo e, a partir deste,
damos-lhe um nome. Se vamos criar um algoritmo para calcular a mdia,
poderamos chamar o algoritmo de Calcular Mdia.
Mas existe um problema com o nome Calcular Mdia: ele no segue os
padres internacionais de nomenclatura de smbolos para linguagens de
programao. Nesse padro, recomenda-se:
t /PVTBSFTQBPOBEFmOJPEPTOPNFT
t No usar caracteres especiais, tais como: ! ? $ # * & - /FPVUSPT
t 6TBSBQFOBTMFUSBTFONFSPT

Rede e-Tec Brasil

34

Lgica de Programao

t /PJOJDJBSPOPNFDPNVNONFSP
t Evitar uso de acentos e cedilhas.
A seguir temos alguns exemplos de nomes de algoritmos vlidos e no vlidos:
TABELA 4.1 - Exemplos de nomes de algoritmos
Objetivo do algoritmo

Nome no vlido

Calcular mdia das notas

Calcular mdia

Nome vlido
CalcularMedia

Verificar a maior nota

Verificar maior nota

VerificarMaiorNota
VerificarEndereco

Verificar endereo

Verificar-Endereo

Somar dois nmeros

2NmerosSoma

Soma2Numeros

Calcular $ da venda

Calcular$Venda

CalcularValorVenda

Mostrar Al Mundo na tela

AlMundo

AloMundo

Fonte: Autores.

"TJOUBYFVTBEBQFMPQTFVEPDEJHPFQFMP+BWBQBSBEFmOJSPOPNFEFVN
BMHPSJUNPGPJWJTUPOBTmHVSBTF SFTQFDUJWBNFOUF NBTWBNPTSFW-los lado a lado agora:
5"#&-"%FmOJOEPPOPNFEPBMHPSJUNP
Pseudocdigo

Java

algoritmo "AloMundo"

public class AloMundo

Fonte: Autores.

4.2.2 Escopo de um algoritmo


5PEPBMHPSJUNPUFNJODJPFmN1BSBJEFOUJmDBSFTTBTQBSUFT VTBNPTQBMBvras ou smbolos. O conceito de escopo vem justamente da necessidade de
delimitar o intervalo em que determinadas informaes processadas pelo
algoritmo so vlidas.
" TFHVJS  UFNPT VN FYFNQMP EF EFmOJP EP FTDPQP EF VN BMHPSJUNP P
JODJPFPmNEFMF
UBOUPFNQTFVEPDEJHPRVBOUPFN+BWB
5"#&-"%FmOJOEPPJODJPFPmNEPBMHPSJUNP
Pseudocdigo
algoritmo "AloMundo"
inicio

Java

Escopo do
algoritmo

public class AloMundo


{
}

Escopo do
algoritmo

Fonte: Autores.

Aula 4 - Estrutura bsica de um algoritmo

35

Rede e-Tec Brasil

Em algoritmos, muito comum


haver estruturas de programao
dentro de outras estruturas.
Assim como o algoritmo em
si tem um escopo (um espao
vlido), cada estrutura existente
no algoritmo tambm pode
ter seu prprio escopo. Nesse
caso, informaes tratadas
em um escopo mais interno,
a priori, no sero acessveis
pelo externo. Esse conceito
mais abrangente de escopo ser
tratado nas prximas aulas.

1FSDFCBRVFOPQTFVEPDEJHPFTUFYQMDJUBBEFMJNJUBPEPJODJPFEPmN
EPBMHPSJUNP+FN+BWBGPSBNVTBEBTBTDIBWFTQBSBEFmOJSPFTDPQP

4.2.3 Comandos ou instrues


Comandos ou instrues so mecanismos usados para dizer ao computador
o que deve ser feito. Cada instruo dada um passo sendo executado dentro do algoritmo, e os mesmos devem estar em ordem, da primeira instruo
BUBMUJNB RVBOEPPPCKFUJWPEPBMHPSJUNPEFWFTFSBMDBOBEP
0T DPNBOEPT EFWFN FTUBS EFOUSP EP FTDPQP EP BMHPSJUNP o OP DBTP EP
QTFVEPDEJHP FOUSFBTQBMBWSBTinicio e PDOJRULWPR, e, no caso do
Java, entre as chaves { }. A seguir, temos um exemplo de um comando de
sada:
TABELA 4.4 - Inserindo comandos no algoritmo
Pseudocdigo
Algoritmo AloMundo
inicio
Escreva(Al mundo!)
Fimalgoritmo

Java
public class AloMundo
{
public static void main(String[] args)
{
System.out.print(Al mundo!);
}
}

Fonte: Autores.

Perceba que o equivalente instruo Escreva() EP QTFVEPDEJHP  P


System.out.print()OP+BWB"MNEJTTP WFSJmDBTFRVFBNCPTVTBNPT
QBSOUFTFT 
BPmOBMEPDPNBOEPJTTPEFOPUBBFYFDVPEFVNBGVOP
dentro da linguagem de programao.
/PQTFVEPDEJHP DBEBJOTUSVPmDBFNVNBMJOIB+OP+BWB PmOBMEB
instruo delimitado por ponto e vrgula, sendo assim, podemos ter mais
de uma instruo em uma mesma linha, desde que separadas por esse sinal.
importantssimo destacar um detalhe na linguagem Java: observe que teNPTEVBTFTUSVUVSBTOPDEJHPBQSFTFOUBEP
t public class AloMundo
t public static void main(String[] args)

Rede e-Tec Brasil

36

Lgica de Programao

"QSJNFJSBEFmOFPOPNFclasse NBTFTTFDPODFJUPEFDMBTTFTTFSWJTUP
na disciplina de Programao Orientada a Objetos. Neste momento, vamos
FOUFOEFSRVFTFKBBQFOBTBJEFOUJmDBPEPQSPHSBNB OPDBTP$OR0XQGR.
A segunda estrutura um mtodo cujo conceito tambm ser abordado
a fundo somente em Orientao a Objetos. Neste momento, vamos considerar como sendo um subprograma, isto , um programa dentro de outro
programa.
Ento, no programa AloMundo em Java, mostrado na Tabela 4.4, temos um
subprograma chamado main (principal, em ingls) interno a ele e dois escoQPTEJTUJOUPT KRVFBNCPTUNVNJODJPFmN EFMJNJUBEPTQPS\^

DPOTJEFSBEBVNBCPBQSUJDBEFQSPHSBNBPRVF BPTFEFmOJSVNFTDPpo interno a outro, como aconteceu no exemplo, dar um espaamento direita (3 espaos ou mais) para deixar explcito que a estrutura main pertence
ao escopo de class. Isso o que chamamos de indentao:
TABELA 4.5 - Escopos e indentao em um cdigo Java

public class AloMundo


Indentao
{
public static void main(String[] args)
{
System.out.print("Al mundo!");
}
}

Escopo do
programa
AloMundo

Escopo do
subprograma
Main

Fonte: Autores.

4.2.4 Comentrios
Imagine que voc tenha desenvolvido um algoritmo bem complexo h um
ano, e, por acaso, voc precisa us-lo para resolver outro problema. Se o algoritmo no estiver documentado, voc certamente ter um trabalho enorme em compreend-lo novamente, perdendo assim um tempo precioso.
.BT DBTPWPDPUFOIBEPDVNFOUBEP TFSQPTTWFMJEFOUJmDBSPRVFFMFGB[ 
as estruturas de programao que foram usadas e o porqu, entre muitas
PVUSBT JOGPSNBFT UFJT BDFSDB EFMF  EF TVBT BMUFSBFT IJTUSJDP
 F EPT
autores do mesmo.
6NBEBTNBOFJSBTNBJTTJNQMFT NBTOPBOJDB
EFEPDVNFOUBSTFVD-

Aula 4 - Estrutura bsica de um algoritmo

37

Rede e-Tec Brasil

digo usando comentrios, possibilitando assim um melhor entendimento


do algoritmo implementado.
Podemos usar comentrios para:
t *EFOUJmDBSPSFTQPOTWFMFEBUBEFDSJBPEBRVFMFDEJHP
t *EFOUJmDBSUPEBTBTBMUFSBFTGFJUBTOPDEJHP TFVTSFTQPOTWFJTFEBUBT
de alterao.
t *EFOUJmDBSPPCKFUJWPEBRVFMFDEJHP
t &YQMJDBSEFNBOFJSBNBJTGDJMBMHJDBEFTFVBMHPSJUNP
t &OUSFNVJUPTPVUSPT JODMVTJWFQBSBBEPDVNFOUBPQSPmTTJPOBMEFTFV
DEJHPGPOUFBUSBWTEFNBSDBEPSFTFTQFDmDPT
Existem trs tipos de comentrios:
t Comentrios de uma linha: texto antecedido por // vira comentrio de
VNBOJDBMJOIB
t Comentrios de muitas linhas: este tipo de comentrio no existe em
QTFVEPDEJHPT  T FN MJOHVBHFOT EF QSPHSBNBP &N QTFVEPDEJHP
WPD QPEF DSJBS DPNFOUSJPT DPN NVJUBT MJOIBT EF DEJHP EFTEF RVF
cada linha tenha o marcador // na frente. No Java, todo o texto delimitado por /* */ se transforma em um comentrio de muitas linhas.
t Comentrios de documentao de cdigo: este tipo de comentrio
OP FYJTUF FN QTFVEPDEJHPT  T FN MJOHVBHFOT EF QSPHSBNBP /P
Java, todo o texto delimitado por /** */, se transforma em uma docuNFOUBPEFDEJHP
Os comentrios so ignorados na hora de executar o algoritmo, por isso
voc pode usar vontade. Apenas tenha cuidado em no abusar deles, o
RVF FNWF[EFBKVEBS QPEFiDPOUBNJOBSwPTFVDEJHPDPNNVJUBTJOGPSNBFTJOUFJT
1BSBNPTUSBSBGVODJPOBMJEBEFEBEPDVNFOUBPEFTFVDEJHP WBNPTJOTFrir esses trs tipos de comentrio no algoritmo AloMundo:

Rede e-Tec Brasil

38

Lgica de Programao

TABELA 4.6 - Comentrios em pseudocdigo


Pseudocdigo
Algoritmo "AloMundo"
// Funo : Apresentar o VisualG
// Autor :Liluyoud Cury de Lacerda e Outros
// Data : 14/02/2013
// Seo de Declaraes
Inicio
// Essa funo escreve Al mundo na tela do computador
Escreva("Al mundo!")
Fimalgoritmo

Fonte: Autores.

TABELA 4.7 - Comentrios em Java


Pseudocdigo
/**
* Esse programa tem como funo apresentar os comentrios em Java
* @Author: Liluyoud Cury de Lacerda
* @Version: 1.0
*/
public class AloMundo
{
/* O mtodo main cria um ponto inicial de execuo
para o cdigo em java. */
public static void main(String[] args)
{
// O mtodo main cria um ponto inicial de execuo
System.out.print("Al mundo!");
}
}

Fonte: Autores.

$PNPGPJEJUPBOUFT PQTFVEPDEJHPTVTBVNUJQPEFFTUSVUVSBEFDPNFOUSJPT P NBTP+BWBBQSFTFOUBUSTUJQPT DPNmOBMJEBEFTEJTUJOUBT P  


*/e o /** */.
Em relao s cores usadas pelos comentrios, que so diferentes no VisualG
(verde) e no Eclipse (cinza), apenas a maneira como o ambiente integrado
EFEFTFOWPMWJNFOUPUSBUBEFUFSNJOBEPTUJQPTEFFTUSVUVSBTEFOUSPEPDEJHP&TTFUJQPEFDPOmHVSBPQPEFTFSNVEBEPQFMPQSPHSBNBEPS

Resumo
Voc acaba de adquirir novos conhecimentos, pois, nesta aula, apontamos
DPNPEFmOJSVNBMHPSJUNP7JNPTRVF QBSBDSJBSVNBMHPSJUNP QSFDJTBNPT
dar um nome a ele dependendo do seu objetivo, e que esse nome deve estar
de acordo com os padres internacionais de nomenclatura de smbolos para

Aula 4 - Estrutura bsica de um algoritmo

39

Rede e-Tec Brasil

linguagens de programao. Discorremos sobre esses padres. Abordamos


PFTDPQP JTUP PFTQBPFOUSFPJODJPFmNEFVNBMHPSJUNP.PTUSBNPT 
OBUBCFMB PFTDPQPEFVNBMHPSJUNPFNQTFVEPDEJHPFFN+BWB/B
sequncia, tratamos dos comandos, instrues dadas ao computador para
serem executadas, as quais devem estar inseridas no escopo. Apontamos
UBNCNDPNPEPDVNFOUBSPBMHPSJUNP PVTFKB JOTFSJSJOGPSNBFTUFJT 
tais como o que ele faz, as estruturas de programao que foram usadas,
TVBTBMUFSBFT IJTUSJDP
FPOPNFEFTFVT TVBT
BVUPSFT BT
PRVFGBDJMJUBS
DBTPWFOIBNPTBVUJMJ[MPQBSBSFTPMWFSPVUSPQSPCMFNB&OmN NPTUSBNPT
como criar uma estrutura para desenvolver um algoritmo bsico tanto em
QTFVEPDEJHPDPN7JTVBM( RVBOUPFN+BWBDPN&DMJQTF

Atividades de aprendizagem
1. Crie um algoritmo que fornea a seguinte sada na tela do computador
(seria interessante para seu aprendizado, criar o algoritmo tanto em pseudoDEJHPRVBOUPFN+BWB


| Programa Al Mundo
|


| mundo da programao.
|
|
|
| Aproveite!!!
|

2. %PDVNFOUFPDEJHPDSJBEPBDJNBVTBOEPDPNFOUSJPT
3. Baseado(a) nas funes de algoritmos descritas abaixo, determine o possvel nome para cada um deles:
Funo do algoritmo

Nome

Transformar dlar em real


Calcular o ndice de massa corporal de uma pessoa
Calcular a rea de um tringulo
Efetuar um saque na conta-corrente

4. Crie um algoritmo mnimo para cada dos apresentados acima, usando os


nomes que voc sugeriu, (seria interessante, para seu aprendizado, criar o
BMHPSJUNPUBOUPFNQTFVEPDEJHPRVBOUPFN+BWB


Rede e-Tec Brasil

40

Lgica de Programao

Caro(a) estudante,
$PNPTFTFOUJVDSJBOEPFFYFDVUBOEPTFVQSJNFJSPQSPHSBNB /BQSYJNB
aula, trataremos das variveis e dos tipos de dado. Esperamos voc l!

Aula 4 - Estrutura bsica de um algoritmo

41

Rede e-Tec Brasil

Aula 5. Variveis e tipos de dado

Objetivos:
t DPODFJUVBSWBSJWFMFUJQPTEFEBEPT
t EJGFSFODJBSEBEPEFJOGPSNBP
t BQMJDBSBTSFHSBTQBSBBOPNFODMBUVSBEFWBSJWFJTF
t JEFOUJmDBS PT UJQPT EF EBEPT QSJNJUJWPT FYJTUFOUFT F VUJMJ[MPT
FNBMHPSJUNPT TFKBFNQTFVEPDEJHP TFKBFN+BWB

Caro(a) estudante,
Nesta aula, veremos um conceito primordial para o processamento de dados, que o de variveis. Vamos entender os mecanismos de funcionamento
das variveis nas linguagens de programao, mostrar como dar nome a elas
FEFmOJSPUJQPEFEBEPRVFFMBTBSNB[FOBN5BNCNWBNPTEFNPOTUSBSP
VTPEFWBSJWFJTUBOUPFNQTFVEPDEJHPRVBOUPFN+BWB

5.1 Introduo
Antes de iniciar os estudos sobre variveis, precisamos entender o conceito
de dado na computao. Segundo Puga e Rissetti (2009), dados so valores
que sero utilizados pelo algoritmo para a resoluo de um problema. Esses
valores podem ser fornecidos pelo usurio atravs de dispositivos de entrada
EFEBEPT PVPSJHJOBEPTBQBSUJSEFPVUSPTQSPHSBNBT JODMVTJWFFMFQSQSJP


5.2 Variveis
Os dados de um algoritmo, para serem utilizados e processados, precisam
FTUBSQSFWJBNFOUFBSNB[FOBEPTOBNFNSJBEPDPNQVUBEPS"WBSJWFMFOUPTFSJBPOPNFEBEPBVNFTQBPEBNFNSJBRVFDPOUNPEBEPBTFS
utilizado pelo algoritmo.

Aula 5 - Variveis e tipos de dado

43

Rede e-Tec Brasil

Qual a diferena entre um dado


e uma informao?
Em um contexto de programas
de computador, podemos dizer
que os dados correspondem aos
valores fornecidos ao programa,
que depois de processados,
geram informao.

Quando usamos uma varivel, na verdade, estamos buscando aquela inforNBPEBNFNSJBFQBTTBOEPBQBSBPQSPDFTTBEPSEPDPNQVUBEPS QBSB
que este realize as operaes necessrias com aquele dado.
1PEFNPTBmSNBS FOUP RVFBTWBSJWFJTTPVUJMJ[BEBTQBSBSFQSFTFOUBSWBMPSFTHFOSJDPT RVFQPEFSPTFSBDFTTBEPTFNPEJmDBEPTEFBDPSEPDPNB
MHJDBEPBMHPSJUNP

5.2.1 Nomenclatura de variveis


Assim como importante saber dar nome aos nossos algoritmos, primordial saber nomear uma varivel tambm. As regras para a nomenclatura de
variveis seguem os mesmos princpios dos algoritmos. Vejamos:
t /PVTBSFTQBP
t No usar caracteres especiais tais como: ! ? $ # * & - / FPVUSPT
t 6TBSBQFOBTMFUSBTFONFSPT
t /PJOJDJBSPOPNFDPNVNONFSP
t Evitar uso de acentos e cedilhas.
A seguir, temos alguns exemplos de nomes de variveis:
TABELA 5.1 - Exemplos de nomes de variveis
O que vai ser armazenado na varivel?

Proposta de nome

O nome de uma pessoa

Nome

Nomenclatura vlida

Nome vlido, mas inapropriado, j que no


identifica o contexto da varivel. O certo
seria: nota ou notaAluno.

Endereo de um cliente

endereo

Nome vlido, mas inapropriado, j que o


nome contm cedilha. O certo poderia ser:
endereco, enderecoCliente ou
clienteEndereco.

Saldo da conta

contaSaldo

Correto. Poderia ser tambm saldoCon


ta.

Nome do 2 dependente

2dependente

Nome invlido, j que no pode ser iniciado


com um nmero. O certo poderia ser: se
gundoDependente ou dependente2.

Email do funcionrio

Nome invlido, j que no pode ter caracteres especiais, no caso o -. O certo poderia
ser: email ou apenas mail.

A nota de um aluno

Situao

Fonte: Autores.

Rede e-Tec Brasil

44

Lgica de Programao

5.3 Tipos de dado


A linguagem nativa do computador a linguagem binria, composta apenas
QPSEPJTEHJUPT PVTFKB QPSF6NWBMPSEBEPBSNB[FOBEPOBNFNria do computador em forma binria. Se o computador for de 8 bits, cada
GSBPEBNFNSJBDPNQPTUPEFPJUP[FSPTPVVOT DPNPPTFYFNQMPT
TABELA 5.2 Raio X da memria de um computador com 1 GByte de RAM
Endereo de memria

Exemplo de dado

00000000

10010101

Varivel X

11000010

Varivel Z

00000000

11111111

...

...

1.073.741.824 bytes
ou
1 Gbyte

10101010

Exemplo de nomenclatura

Varivel Y

Fonte: Autores.

4FHVOEPB5BCFMB PFOEFSFPEBNFNSJBBSNB[FOBBWBSJWFMDVKP
nome X. Esse endereo contm apenas bits F
NBT QBSBOT IVNBOPT PRVFFMFTSFQSFTFOUBN 6NDPOKVOUPEFbitsQPEFSFQSFTFOUBSVNOmero, um texto, um som, uma imagem, entre muitos outros tipos de dado.
QPSFTTFNPUJWPRVF RVBOEPEFmOJNPTVNBWBSJWFM OFDFTTSJPEJ[FS
de que tipo ela para que o programa consiga converter esses bits no dado
que desejamos. O byte 10010101 pode tanto representar a letra A quanto
PONFSPPVPONFSP PQSJNFJSPbit pode representar o sinal positivo ou negativo).
*TUP OPFYFNQMPBDJNB VNOJDPbyte pode representar trs valores diferentes, dependendo do tipo de dado.

5.3.1 Tipos de dados primitivos

A menor unidade de informao


reconhecida pelo computador
o bit, que pode ser 0 (representa
o estado desligado) ou 1
(representa o estado ligado). Um
conjunto de oito bits (oito zeros
ou uns) chamado de byte. Em
um computador padro de 64
bits, significa que cada endereo
de memria contem oito bytes (8
x 8 bits).

" EFmOJP EP UJQP EF EBEP EF VNB WBSJWFM  QSJNPSEJBM QBSB HBSBOUJS B
resoluo do algoritmo. As linguagens de programao tm alguns tipos j
EFmOJEPTFNTVBFTUSVUVSBoFMFTTPDIBNBEPTEFUJQPTEFEBEPTQSJNJUJWPT
Os tipos de dados primitivos so:
t Literal:UJQPEFEBEPRVFQPEFSFDFCFSMFUSBT ONFSPTFTNCPMPT&TTFT
tipos de dados no podem ser usados para fazer clculos, apenas para

Aula 5 - Variveis e tipos de dado

45

Rede e-Tec Brasil

armazenar informao. Ex.: Programadores & Associados, Professor


Universitrio, 2 chamada, etc.
t Inteiro: UJQP EF EBEP RVF QPEF SFDFCFS ONFSPT JOUFJSPT QPTJUJWPT PV
negativos. Ex.: 10, 1000, -23, 0.
t Real: UJQPEFEBEPRVFQPEFSFDFCFSONFSPTSFBJT JTUP DPNDBTBT
EFDJNBJT QPTJUJWPTPVOFHBUJWPT&Y   
t Lgico: tipo de dado que pode receber apenas dois tipos de informao
oWFSEBEFJSP 
PVGBMTP 


5.3.2 Tipos de dados primitivos em Java


$BEBMJOHVBHFNEFQSPHSBNBPQPEFEFmOJSTFVTQSQSJPTUJQPTEFEBEPT 
desdobramentos dos tipos primitivos citados anteriormente. No Java, os tipos primitivos so:
TABELA 5.3 - Tipos de dados primitivos em Java
Tipo de dados
Literal

Em Java
char
String

Lgico

Armazena um conjunto de caracteres

byte

Armazena nmeros de -27 a 27-1 (28 a 127)

short

Armazena nmeros de -215 a 215-1 (32.768


a 32.767)

Inteiro

Real

Capacidade
Armazena um nico caractere

int

Armazena nmeros de -231 a 231-1


(2.147.483.648 a 2.147.483.6477)

long

Armazena nmeros de -265 a 265-1

Armazena nmeros de -3,4E-38 a +3,4E+38

double

Armazena nmeros de -1,7E-308 a


+1,7E+308

boolean

Armazena 0 (falso) ou diferente de 0 (verdadeiro)

Fonte: http://docs.oracle.com/javase/7/docs/.

5.4 Sintaxe e exemplos de declarao


"TFHVJSWFSFNPTBTJOUBYFFFYFNQMPTEFEFDMBSBPFNQTFVEPDEJHPF
em Java.

5.4.1 Pseudocdigo
&NQTFVEPDEJHP
t "EFDMBSBPEFWBSJWFJTEFWFTFSGFJUBBOUFTEFTFJOJDJBSPBMHPSJUNP

Rede e-Tec Brasil

46

Lgica de Programao

t )VNBQBMBWSBSFTFSWBEBQBSBJEFOUJmDBSBEFDMBSBPEBTWBSJWFJT&N
VisualG var
t O nome da varivel que deve seguir as regras de nomenclatura explicaEBTBOUFSJPSNFOUF
t 0TJOBMEFEPJTQPOUPT 
TFSWFQBSBTFQBSBSPUJQPEPOPNFEBWBSJWFM
t 5FNPTPUJQPEBWBSJWFM
t Cada varivel deve estar declarada em uma linha.
Seguindo essas premissas, temos a seguinte sintaxe e alguns exemplos para
TFEFDMBSBSWBSJWFMFNQTFVEPDEJHP
TABELA 5.3 - Sintaxe e exemplos de declarao de variveis em pseudocdigo.
Sintaxe
var
nomeDaVarivel: tipoDaVariavel

Exemplos
var
nome: caractere
idade: inteiro
salario: real
casado: logico

Fonte: autores

5.4.2 Java
Em Java:
t /PFYJTUFVNBQBMBWSBFTQFDmDBQBSBEFmOJSBEFDMBSBPEFVNBWBSJWFM6NBWBSJWFMQPEFTFSDSJBEBFNRVBMRVFSQBSUFEPDEJHP NBTBT
boas prticas de programao recomendam que as variveis principais
TFKBNDSJBEBTBOUFSJPSNFOUFFEPDVNFOUBEBT
t Ao se declarar uma varivel, o tipo de dado vem antes do nome da vaSJWFM
t O nome da varivel deve seguir as regras de nomenclatura explicadas
BOUFSJPSNFOUF
t possvel declarar diversas variveis em uma linha, desde que sejam seQBSBEBTQPSQPOUPFWSHVMB

Aula 5 - Variveis e tipos de dado

47

Rede e-Tec Brasil

t 4FEJWFSTBTWBSJWFJTQPTTVFNPNFTNPUJQP CBTUBEFmOJMPFFOVNFSBS
o nome de cada uma das variveis separado por vrgula.
Seguindo essas premissas, temos a seguinte sintaxe e alguns exemplos para
se declarar varivel em Java:
TABELA 5.4 - Sintaxe e exemplos de declarao de variveis em Java.
Sintaxe
tipoDaVariavel nomeDaVariavel;

Exemplos
String nome;
byte idade;
salario;
boolean casado;
int populacao, rebanho;
double resultado; int dias;

Fonte: autores

Resumo
Acabamos de estudar o conceito de variveis e tipos de dado, primordiais
para a elaborao de algoritmos. Juntamente com eles, mostramos como
nomear uma varivel, distinguir os tipos de dados primitivos existentes e,
QSJODJQBMNFOUF  DPNP VTMPT FN BMHPSJUNPT  TFKB FN QTFVEPDEJHP  TFKB
em Java.
Vamos praticar!

Atividades de aprendizagem
1. Assinale os nomes de variveis vlidas e invlidas. Quando invlida, informar o porqu:
a) XXX
b) a123
c) (A)
d) NOME
e) #66
f) dia/ano/ms

Rede e-Tec Brasil

48

Lgica de Programao

g) 1abc
h) Ol Pessoal
i) a.b
j) c*d
2. Baseado(a) na representao da informao do que ser armazenado em
uma varivel, sugira um nome para a mesma e para o tipo de dado. Para
DBEBVN VTFBTJOUBYFEPQTFVEPDEJHPFEP+BWB
O que ser armazenado?

Sintaxe pseudocdigo
Sintaxe Java

O salrio de um funcionrio
A nota e a mdia de um aluno
Os dias de atraso de uma prestao
O CPF de uma pessoa
Se a famlia tem casa prpria
Uma carta
O endereo completo do cliente
Se o produto novo ou usado

Caro(a) estudante,
Parabns! Esta foi a quinta aula da disciplina. Esperamos ter contribudo
QBSBTFVBQSFOEJ[BEP/BQSYJNBBVMB BCPSEBSFNPTPTPQFSBEPSFTFFYpresses que envolvem as variveis. No perca!

Aula 5 - Variveis e tipos de dado

49

Rede e-Tec Brasil

Aula 6. Operadores e expresses

Objetivos:
t SFDPOIFDFSPQFSBEPSFTBSJUNUJDPT SFMBDJPOBJTFMHJDPT
t FNQSFHBSDPSSFUBNFOUFFTTFTPQFSBEPSFT
t EJTUJOHVJSFYQSFTTFTBSJUNUJDBTEFFYQSFTTFTMHJDBTF
t DSJBSFSFTPMWFSFYQSFTTFTBSJUNUJDBTFMHJDBT

Caro(a) estudante,
0VTPEFFYQSFTTFTNBUFNUJDBTFMHJDBTNVJUPJNQPSUBOUFQBSBTFSFsolver determinados problemas algortmicos. As expresses so formadas
por valores, variveis (operando) e operadores. Vamos explicar como criar
FTTBTFYQSFTTFT EFmOJSPTPQFSBOEPTFPTPQFSBEPSFTFNVNBMHPSJUNPF 
principalmente, como analisar previamente tais expresses.

6.1 Introduo
Um processador basicamente uma mquina que processa instrues de
armazenamento e recuperao de valores, faz clculos matemticos e efetua
comparao de valores.
Mas, para dizer ao computador como executar essas instrues necessrio
VUJMJ[BSPQFSBEPSFTFTQFDmDPTQBSBDSJBSFYQSFTTFTRVFQPTTBNTFSDBMDVMBdas pelo processador.
A seguir, iremos apresentar todos os tipos de operadores e como us-los
para formar expresses.

Aula 6 - Operadores e expresses

51

Rede e-Tec Brasil

6.2 Operadores e expresses


As operaes e expresses podem ser:
t 0QFSBPEFBUSJCVJP
t &YQSFTTFTBSJUNUJDBTF
t &YQSFTTFTMHJDBT

6.2.1 Operador e expresso de atribuio


A operao de atribuio utilizada para armazenar um valor em uma variWFM&TTFWBMPSQPEFTFSQSFEFmOJEP mYP
QSPWFOJFOUFEFPVUSBWBSJWFMPV
resultado de outra operao.
A representao algortmica de atribuio tem a seguinte notao:
variavel m valor
O smbolo m pode ser trocado por := no VisualG. No Java, atribuio dada
pelo caractere =. A tabela a seguir mostra ambos os casos.
TABELA 6.1 - Exemplos de operaes de atribuio
Atribuio em VisualG
var
nome: caractere
idade: inteiro
salario: real
casado: logico
inicio
nome := "Joo & Silva"
idade := 40
salario := 620.37
casado := VERDADEIRO

Atribuio em Java
String nome;
byte idade;

boolean casado;
int populacao, rebanho;
double resultado; int dias;
nome = "Joo & Silva";
idade = 40;
salario = 620.37;
casado = true;
populacao = 1200; rebanho = 80;
resultado = 8.5; dias = 10;

Fonte: autores

"HPSB WBNPTGB[FSBMHVNBTDPOTJEFSBFTTPCSFPDEJHPBDJNB
t Por que o tipo literal (caractere e String) recebe valores entre aspas duplas?

Rede e-Tec Brasil

52

Anlise de Sistemas

O uso de aspas duplas serve para delimitar um texto, que pode ter espaos
ou caracteres especiais. Usar um delimitador de texto uma prtica comum
nas linguagens de programao. No caso do Pascal so usadas as aspas
simples.
t Por que no uso aspas no nmero?
4FWPDVTBSBTQBTOPONFSP PDPNQVUBEPSWBJFOUFOEFSRVFVNUFYUPF
OPVNONFSP EPJTUJQPTEFEBEPDPNQMFUBNFOUFEJGFSFOUFT
t Por que o salrio tem um ponto (.) e no uma vrgula (,) no nmero?
Geralmente as linguagens de programao usam a lngua inglesa como
CBTF F M PDBSBDUFSFRVFEFmOFPEFDJNBMPQPOUPFOPBWSHVMB
t O que aconteceria se tentasse atribuir um texto a um nmero ou
vice-versa?
7BSJWFJT EF VN UJQP EF EBEP T EFWFN SFDFCFS WBMPSFT EBRVFMF UJQP /B
maioria das linguagens de programao existem comandos que permitem
DPOWFSUFSVNUJQPQBSBPVUSP QPSFYFNQMP DPOWFSUFSVNUFYUPFNVNONFSPFWJDFWFSTB OTJSFNPTWFSJTTPNBJTBEJBOUF


Existem linguagens de
programao que possuem o
conceito de variveis dinmicas,
isto , podem receber valores de
diversos tipos fazendo, inclusive,
a converso automtica de um
para outro. Entretanto, via de
regra, recomendado definir
tipos nas variveis. Linguagens
que obrigam a definio de tipos
em variveis so chamadas de
fortemente tipificadas.

6.2.2 Operadores e expresses aritmticas


Os operadores e as expresses aritmticas so responsveis pelas operaes
matemticas realizadas no computador.
O conjunto de smbolos que representa as operaes bsicas de matemtica
chamado de operadores aritmticos. Veja a tabela 6.2.
TABELA 6.2 - Operadores aritmticos
Operador

Exemplo de expresso

Funo



Soma o valor de a e b



Do valor de a subtrado o valor


de b

a * b

Multiplica a por b

a / b

Divide a por b

mod

a MOD b (pseudocdigo)
a % b (Java)

Aula 6 - Operadores e expresses

Retorna o resto da diviso inteira de


a por b. Ex: 5 % 2 igual a 1

53

Rede e-Tec Brasil

 (Java)

Incrementa o valor de a em 1.
retorna o valor de a antes de incrementar. primeiro incrementa
para depois retornar o valor de a.

 (Java)

Subtrai 1 do valor de a. retorna


o valor de a antes de subtrair.
primeiro subtrai para depois retornar
o valor de a.

Fonte: autores

Nem todos os operadores aritmticos podem ser representados por um smbolo em linguagens de programao. Funes como exponenciao, raiz,
TFOP DPTTFOP UBOHFOUF FOUSFNVJUPTPVUSPT TPEFmOJEBTQPSJOTUSVFT
FTQFDmDBTFNDBEBMJOHVBHFN

6.2.3 Operadores e expresses lgicas


Os operadores relacionais so utilizados para comparar valores ou outras
FYQSFTTFT0SFTVMUBEPEFTTBDPNQBSBPEPUJQPMHJDP CPPMFBOP
JTUP
TQPEFTFSWFSEBEFJSPPVGBMTP
Na tabela 6.3, veja os smbolos que representam os operadores relacionais3.
TABELA 6.3 - Operadores relacionais
Operador

Exemplo de expresso

Funo

>

a > b

Se o valor de a for maior que o de b,


a expresso verdadeira, seno
falsa.

>=

a >= b

Se o valor de a for maior ou igual ao


de b, a expresso verdadeira,
seno falsa.

<

a < b

Se o valor de a for menor que o de b,


a expresso verdadeira, seno
falsa.

<=

a <= b

Se o valor de a for menor ou igual ao


de b, a expresso verdadeira,
seno falsa.

a = b (pseudocdigo)
a == b (Java)

Se o valor de a for igual ao de b, a


expresso verdadeira, seno
falsa.

<>

a <> b (pseudocdigo)
a != b (Java)

Se o valor de a for diferente do valor


de b, a expresso verdadeira,
seno falsa.

Fonte: autores

QPTTWFMDPODBUFOBSFYQSFTTFTMHJDBTDSJBOEPPVUSBTFYQSFTTFTMHJDBT
NBJT DPNQMFYBT 1BSB DPODBUFOBS  OFDFTTSJP VUJMJ[BS PQFSBEPSFT MHJDPT 
que podem ser:

Rede e-Tec Brasil

54

Lgica de Programao

TABELA 6.4 - Operadores lgicos


Operador

Exemplo de expresso

Funo

a E b (pseudocdigo)
a && b (Java)

A expresso a E b s ser verdadeira se a e b forem verdadeiros.

OU

a OU b (pseudocdigo)
a || b (Java)

A expresso a OU b s ser falsa se


a e b forem falsos.

NO

NAO a (pseudocdigo)
!a (Java)

Se a for verdadeiro, NAO a ser


falso.
Se a for falso, NAO a ser verdadeiro.

Para melhor conhecimento


das funes dos operadores
lgicos, acesse a pgina http://
pt.wikipedia.org/wiki/Tabela_
verdade.

Fonte: autores

6.3 Ordem de precedncia


Em uma expresso com muitos operandos e operadores, existe uma ordem
para estabelecer qual delas (a relao de dois operandos e um operador) ser
FYFDVUBEBQSJNFJSPoPRVFDIBNBNPTEFPSEFNEFQSFDFEODJB
1BSBFYFNQMJmDBSNFMIPSPDPODFJUP WBNPTJNBHJOBSRVFRVFSFNPTDBMDVMBS
a mdia de duas notas: n1 e n2.

Se n1 fosse igual a 6 e n2 igual a 8, a mdia deveria ser 7, isso porque em
nossa cabea primeiro vamos calcular a expresso n1 + n2 (operandos n1
e n2 e o operador +) e, depois de obter o resultado, iramos dividi-lo por 2.
Mas na programao no bem assim que acontece: para o computador a
NEJBTFSJB$PNPBTTJN $PNPVNBQFTTPBUJSBFFBNEJBmDB
que o computador analisa toda a expresso, subdivide em expresses mniNBT BQFOBTPQFSBOEPTFPQFSBEPS
FWFSJmDBRVBMQBSUFFMFWBJDBMDVMBS
primeiro, como a diviso tem uma ordem de precedncia maior que a
soma, o computador primeiro vai calcular n2 / 2, que pelo exemplo seria 4,
e depois somar com a n1, fazendo assim o resultado ser 10.
Para garantir que uma determinada expresso seja executada antes da outra, basta coloc-la entre parnteses. No exemplo da mdia, para o computador calcular corretamente, a expresso deveria ser:


Aula 6 - Operadores e expresses

55

Rede e-Tec Brasil

"PSEFNEFQSFDFEODJBFOUSFPTPQFSBEPSFTBSJUNUJDPTFMHJDPT
TABELA 6.5 - Ordem de precedncia
Prioridade

Operador aritmtico

Operador lgico

NO

MOD

OU

Fonte: autores

Como uma expresso pode conter vrios operadores aritmticos, relacionais


FMHJDPT FYJTUFVNBPSEFNHFSBMFOUSFFMFT RVF
TABELA 6.6 - Ordem de precedncia geral
Prioridade

Operadores

Parnteses

Operadores aritmticos

Operadores relacionais

Operadores lgicos

Fonte: autores

Sabendo como funciona a escolha do computador sobre a ordem em que


ele calcula as partes de uma expresso, vamos tentar simular o comportaNFOUPEPNFTNPBOBMJTBOEPBTTFHVJOUFTFYQSFTTFTMHJDBT DVKPSFTVMUBEP
somente pode ser verdadeiro ou falso):
(;(03/2
2 * 4 = 4 + 4
8 = 4 + 4
8 = 8
YHUGDGHLUR
(;(03/2
 3 * 2
3 + 6
9 <= 3 * 3
9 <= 9 E 3 + 2 <= 15 MOD 3
9 <= 9 E 5 <= 15 MOD 3
9 <= 9 E 5 <= 0
verdadeiro E 5 <= 0
verdadeiro E falso
falso

Rede e-Tec Brasil

56

Lgica de Programao

(;(03/2
(3 + 3
6 * 2 <= 9 E (3 + 2 <= 15) OU 15 MOD 3 = 0
6 * 2 <= 9 E (5 <= 15) OU 15 MOD 3 = 0
6 * 2 <= 9 E falso OU 15 MOD 3 = 0
12 <= 9 E falso OU 15 MOD 3 = 0
12 <= 9 E falso OU 0 = 0
falso E falso OU 0 = 0
falso E falso OU verdadeiro
falso OU verdadeiro
verdadeiro
(;(03/2

!5 MOD 2 = 1 E 4 MOD 2 = 0)))


!1 = 1 E 4 MOD 2 = 0)))
!1 = 1 E 0 = 0)))
!verdadeiro E 0 = 0)))
!verdadeiro E verdadeiro)))
!verdadeiro)))
!3 * 2 <= 3 * 3 / 2 OU verdadeiro))
!2 + 6 <= 3 * 3 / 2 OU verdadeiro))
!8 <= 3 * 3 / 2 OU verdadeiro))
!9 / 2 OU verdadeiro))
!8 <= 4,5 OU verdadeiro))
!falso OU verdadeiro))
!verdadeiro))
NO (5 + 3 <> 8 OU verdadeiro)
NO (8 <> 8 OU verdadeiro)
NO (falso OU verdadeiro)
NO (verdadeiro)
NO verdadeiro
falso

Os conceitos de operadores, operando e expresses sero de suma imporUODJBQBSBBFMBCPSBPEFBMHPSJUNPTNBJTDPNQMFYPT RVFQSFWFFNJOmeras possibilidades de execuo dependendo de cada caso analisado. Vamos ao resumo.

Resumo
Nesta aula, estudamos os conceitos de operadores, operandos e expresses,
RVFQPEFNTFSBSJUNUJDBT SFMBDJPOBJTFMHJDBT FPNBJTJNQPSUBOUFNPTtramos como resolv-las. Agora sua vez praticar! Vamos l!

Aula 6 - Operadores e expresses

57

Rede e-Tec Brasil

Atividades de aprendizagem
1.0RVFPQFSBOEP PQFSBEPSFVNBFYQSFTTP &YFNQMJmRVF
2. 2VBJTPTUJQPTEFFYQSFTTPFYJTUFOUFT %VNFYFNQMPEFDBEBVNB
3. Sabendo que a = 2, b = 5 e c = 3, calcule o valor resultante das seguintes
expresses:
a) b * 2 a * c
b) 
c) 
d) 
e) 
4. Sabendo v = verdadeiro e f = falso, calcule o valor resultante das seguintes
expresses:
a) v E f OU f E v
b) (v E f) OU (f E v)
c) (NO (v E f)) E (f E v)
d) NO ((v E f) OU (f E v))
e) NO ((NO(v E f)) E (NO(f E v)))
5. Sabendo que a = 1, b = 2 e c = 3, demonstre a execuo passo a passo
da seguinte expresso:
!
= 1 E 4 MOD a = 0)

Rede e-Tec Brasil

58

Lgica de Programao

Caro(a) estudante,
'JOBMJ[BNPTNBJTVNBBVMBEBEJTDJQMJOB-HJDBEF1SPHSBNBP
/BQSYJNB BCPSEBSFNPTBTFTUSVUVSBTTFRVFODJBJT

Aula 6 - Operadores e expresses

59

Rede e-Tec Brasil

Aula 7. Estruturas sequenciais

Objetivos:
t DSJBSVNBFTUSVUVSBTFRVFODJBMFNVNBMHPSJUNPF
t reconhecer e usar corretamente os comandos de entrada e de
sada.

Caro(a) estudante,
Finalmente lhe ser oportunizada a criao de um programa completo,
VTBOEPWBSJWFJT BUSJCVJOEPFMFOEPTFVTSFTQFDUJWPTWBMPSFT EFmOJOEPFYQSFTTFT BSJUNUJDBT F MHJDBT F  QPS mN  WPD BQSFOEFS B FTUSVUVSBS TFquencialmente um algoritmo em VisualG e Java, a ler dados do usurio e a
mostrar o resultado do processamento para o mesmo (a informao resultante). Aproveite bem a aula e se prepare, pois teremos muitas atividades.

7.1 Introduo
A arquitetura bsica dos computadores, baseada na arquitetura de John von
/FVNBOO BUIPKFUFNJOnVODJBEJSFUBOBTMJOHVBHFOTEFQSPHSBNBP
Entretanto, o estilo (modelo ou paradigma) de programao sofreu algumas
evolues, de um formato simples (sem muitos recursos e de difcil percepo por parte dos leigos) da dcada de 50, para um formato mais completo
(com muitos recursos e de fcil entendimento) nos dias atuais.
De acordo com Manzano e Oliveira (2009, p. 437), os paradigmas de programao passaram por cinco fases evolucionrias, sendo elas:
t 1SPHSBNBPUSBEJDJPOBM
t 1SPHSBNBPFTUSVUVSBEB
t 1SPHSBNBPNPEVMBS

Aula 7 - Estruturas sequenciais

61

Rede e-Tec Brasil

t 1SPHSBNBPDPNBCTUSBPEFEBEPTF
t Programao orientada a objetos.
A programao estruturada
uma das variantes da linguagem
imperativa, que baseada na
arquitetura von Neumann, na
qual tanto os dados quanto os
programas so armazenados na
mesma memria, que, por sua
vez, separada da CPU (Unidade
de Processamento de Dados),
necessitando, assim, que tanto
os dados quanto as instrues
sejam transmitidos da memria
para a CPU e vice-versa.

Nesta disciplina, vamos abordar exclusivamente aspectos da programao


estruturada, que tem como base as estruturas de controle, que so:
t &TUSVUVSBTTFRVFODJBJT
t &TUSVUVSBTEFEFDJTPF
t Estruturas de repetio.

Segundo Sebesta (2011, p. 38):


por causa da arquitetura de
von Neumann, os recursos
centrais das linguagens
imperativas so:
t"TWBSJWFJT RVFNPEFMBN
as clulas de memria;
t"TTFOUFOBTEF
atribuio, baseadas na
operao de envio de dados
e instrues; e
t"GPSNBJUFSBUJWBEF
repetio nessa arquitetura.
Os operandos em expresses
so enviados da memria
para a CPU, e o resultado
da avaliao da expresso
enviado de volta clula de
memria representada pelo
lado esquerdo da atribuio.
A iterao rpida em
computadores von Neumann
porque as instrues so
armazenadas em clulas
adjacentes de memria,
e repetir a execuo de
uma seo de cdigo
requer apenas uma simples
instruo de desvio.

Nesta aula, voc ver como funciona uma estrutura sequencial.

7.2 Estrutura sequencial


A estrutura sequencial em um algoritmo se d quando um conjunto de aes
executado em uma sequncia linear de cima para baixo, e da esquerda
para a direita, na mesma ordem em que foram escritas.
A estrutura sequencial a base do algoritmo, pois, como vimos anteriorNFOUF  TP BFT FYFDVUBEBT QBTTP B QBTTP  FN VNB TFRVODJB EFmOJEB
para atender a um determinado objetivo.
&NVNBFTUSVUVSBTFRVFODJBM QPEFNPTEFmOJSJOTUSVFTEFEFDMBSBPEF
WBSJWFJT BUSJCVJP PQFSBFTBSJUNUJDBTFMHJDBT EFFOUSBEBFEFTBEB
5PEBTFTTBTJOTUSVFTKGPSBNWJTUBT NFOPTBTEVBTMUJNBT RVFWFSFNPT
a seguir.

7.2.1 Sada de dados


Para que serviria a capacidade de processar dados do computador se no
GPTTFQPTTWFMNPTUSBSPTSFTVMUBEPT FYBUBNFOUFJTTPRVFPTDPNBOEPTEF
sada fazem, enviam informaes processadas do algoritmo.
O dispositivo mais comum para se mostrar o resultado de um processamento
o monitor de vdeo, mas existem diversos outros dispositivos de sada, tais
como o disco rgido, a impressora, a caixa de som etc. Um algoritmo tambm pode gerar uma sada que serviria de entrada para outro algoritmo, sem
precisar passar por nenhum dispositivo tradicional de sada, mas isso no

Rede e-Tec Brasil

62

Lgica de Programao

muito comum.
Nesse momento, subtende-se que o comando de sada o monitor do computador.
0OPNFEPDPNBOEPEFTBEBQBESPFNQTFVEPDEJHPEscreva() e
em Java System.out.print(). Existem outras variantes desse comando.
As principais so:
TABELA 7.1 - Variantes do comando Escreva
Funo

Pseusocdigo

Java

Escreve o dado

Escreva()

print().

Escreve o dado e pula uma linha

Escreval()

println().

Escreve usando parmetros

printf().

Fonte: autores

Com esses comandos possvel:


t &TDSFWFSVNUFYUP
t &TDSFWFSPWBMPSEFVNBWBSJWFM
t Escrever um conjunto de textos e valores de variveis concatenados. Vamos a um exemplo do comando Escreva e Escreval

Figura 7.1: Exemplo do comando Escreva e Escreval.


Fonte: Autores.

Aula 7 - Estruturas sequenciais

63

Rede e-Tec Brasil

7FKBPDEJHPFBOBMJTFBTJOTUSVFTQBTTBEBTOBSFBEFUSBCBMIPFBTBEB
do mesmo na janela de execuo. Perceba que:
t Quando usei o comando Escreval, ele escreve o texto na sada e pula
VNBMJOIB
t Quando usei o comando Escreva, ele escreve o texto na sada, mas no
QVMBVNBMJOIB
t 1BSBFTDSFWFSPUFYUP EFMJNJUFJPNFTNPDPNBTQBTEVQMBT iw

t 2VBOEPOPVTPBTBTQBTEVQMBT TJHOJmDBRVFRVFSPFTDSFWFSPWBMPSEF
VNBWBSJWFMF
t Quando quero mesclar texto com variveis, fao a concatenao deles
com o sinal de adio (+).
"HPSB WBNPTFTDSFWFSFTTFNFTNPDEJHPFN+BWB OP&DMJQTF

Figura 7.2: Exemplo dos comandos print e println.


Fonte: Autores.

O exemplo usando printfWPDWFSOBmHVSB

Rede e-Tec Brasil

64

Lgica de Programao

7.2.2 Entrada de dados


No exemplo anterior, perceba que no houve interao entre o(a) usurio(a)
FPQSPHSBNBoPBMHPSJUNPTJNQMFTNFOUFFYFDVUPV
Mas, na maioria dos algoritmos, a entrada de dados de suma importncia.
assim que conseguimos interagir com o programa passando dados que
sero utilizados para a resoluo de problemas.
O dispositivo mais comum de entrada de dados o teclado, mas existem
diversos outros, tais como, a tela touchscreen (tela sensvel ao toque), o
microfone, o scanner, o disco rgido etc. Um algoritmo tambm pode receber dados diretamente de outro algoritmo, sem precisar passar por nenhum
dispositivo tradicional de sada, mas isso no muito comum.
"OPNFEPDPNBOEPEFFOUSBEBQBESPFNQTFVEPDEJHPLeia(). Em
Java, o comando leia feito em duas fases:
t "EFmOJPEPEJTQPTJUJWPEFFOUSBEBVTBOEPPDPNBOEP
Scanner entrada = new Scanner(System.in);
t A leitura do dado do dispositivo:
nome = entrada.next();
Com esses comandos possvel:
t -FSVNUFYUP
t -FSVNONFSPJOUFJSPF
t -FSVNONFSPSFBM
Vamos ao exemplo dos comandos Escreva e Escreval

Aula 7 - Estruturas sequenciais

65

Rede e-Tec Brasil

Figura 7.3: Exemplo dos comandos Escreva e Escreval.


Fonte: Autores.

"OBMJTFPDEJHPFQFSDFCBRVFPDPNBOEPLeia o mesmo para valores


literais e numricos. Entretanto, em Java, existem diferenas. Agora vamos
FTDSFWFSFTTFNFTNPDEJHPFN+BWB OP&DMJQTF

Figura 7.4: Exemplo dos comandos de entrada em Java e do printf.


Fonte: Autores.

Rede e-Tec Brasil

66

Lgica de Programao

Percebeu que, para cada tipo de dado que voc for ler em Java, voc precisa
EFVNDPNBOEPEJGFSFOUF &Pprintf RVFBHPSBQPEFNPTEFmOJSFNVN
OJDPUFYUPDPNQBSNFUSPT TQBSBUFYUP EQBSBJOUFJSP GQBSBSFBM

que sero substitudos por valores de variveis.

7.3 Finalmente um algoritmo completo


Voc se lembra de quando dissemos que um algoritmo nada mais do que
VN NFDBOJTNP QBSB FOUSBEB  QSPDFTTBNFOUP PV TBEB EF EBEPT  "HPSB
voc est preparado(a) para criar uma estrutura sequencial com todos eles.
1BSBFYFNQMJmDBS WBNPTDSJBSVNBMHPSJUNPQBSBEFTDPCSJSPTBMSJPMRVJEP
EFVNGVODJPOSJP TBCFOEPRVFEFTDPOUBEPEPTFVTBMSJPCSVUP  
referente ao imposto de renda. O algoritmo ser implementado tanto em
QTFVEPDEJHPRVBOUPFN+BWB7BNPTBPTFYFNQMPT
Algoritmo completo que calcula o salrio lquido de um funcionrio

Figura 7.5: Algoritmo completo que calcula o salrio lquido de um funcionrio.


Fonte: Autores.

Aula 7 - Estruturas sequenciais

67

Rede e-Tec Brasil

Algoritmo completo em Java que calcula o salrio lquido de um funcionrio

Figura 7.6: Algoritmo completo em Java que calcula o salrio lquido de um funcionrio.
Fonte: Autores.

"QFOBTVNDPNFOUSJPOPDEJHPEB'JHVSBPDBSBDUFSF=O OPDPNBOEP
de sada printf, faz com que pule uma linha.
Agora, voc poder criar os algoritmos usando a estrutura de sequncia
(instrues em uma sequncia linear) e aplicar todas as premissas necessrias
de um programa padro: a entrada, o processamento e a sada de dados.

Resumo
Voc complementou seus conhecimentos bsicos acerca da elaborao de
algoritmos. Nesta aula, tratamos da estrutura sequencial em um algoritmo,
ou seja, um conjunto de aes executadas em sequncia linear. Vimos tamCNPTDPNBOEPTEFTBEBFFOUSBEBEFEBEPTFNQTFVEPDEJHPFFN+BWB
& mOBMNFOUF NPTUSBNPTVNBMHPSJUNPDPNQMFUPRVFDBMDVMBPTBMSJPMRVJEPEFVNGVODJPOSJP FNQTFVEPDEJHPFFN+BWB
/BTBUJWJEBEFTEFBQSFOEJ[BHFNEFTUBBVMB UFNPTVNONFSPCFNNBJPS
de exerccios para que voc possa praticar. Lembre-se: aprender a progra-

Rede e-Tec Brasil

68

Lgica de Programao

mar no apenas leitura e estudo, prtica. Ento vamos s atividades.

Atividades de aprendizagem
1.'BBVNBMHPSJUNPFN7JTVBM(PVFN+BWBRVFSFDFCBUSTONFSPTJOUFJros e calcule a soma deles.
2.'BBVNBMHPSJUNPFN7JTVBM(PVFN+BWBRVFSFDFCBRVBUSPONFSPT
reais e calcule a mdia deles.
3. Faa um algoritmo em VisualG ou em Java que receba duas notas de prova, seus respectivos pesos e calcule a mdia ponderada deles.
4. Faa um algoritmo em VisualG ou em Java que receba o salrio inicial, a
porcentagem de aumento e calcule o novo salrio.
5. Faa um algoritmo em VisualG ou em Java que receba o salrio-base e a
quantidade de dependentes, e calcule o salrio lquido sabendo que, para
DBEB mMIP  P GVODJPOSJP SFDFCF P TBMSJP GBNMJB EF 3   F  BP mOBM 
QBHBJNQPTUPEFSFOEBEF TPCSFPTBMSJPCSVUP
6. Faa um algoritmo em VisualG ou em Java que receba os valores antigo
e novo de um produto, e calcule a porcentagem de aumento que o mesmo
teve.
7. Faa um algoritmo em VisualG ou em Java que receba o tamanho do
raio de um crculo e faa o clculo do dimetro, do permetro e da rea do
crculo. Calcule tambm o volume se esse crculo fosse a base para se criar
uma esfera.
8. Faa um algoritmo em VisualG ou em Java que receba a velocidade de
um veculo em Km/h (quilmetros por hora) e a transforme em m/s (metros
por segundo).
Caro(a) estudante,
Parabns por ter completado seus conhecimentos bsicos acerca da elaborao de algoritmos. Agora, poder cri-los usando a estrutura de sequncia
(instrues em uma sequncia linear) e aplicar todas as premissas necessrias
de um programa padro: a entrada, o processamento e a sada de dados. Na
QSYJNBBVMB BCPSEBSFNPTBTFTUSVUVSBTEFEFDJTP"UM

Aula 7 - Estruturas sequenciais

69

Rede e-Tec Brasil

Aula 8. Estruturas de deciso


Objetivos:
t SFDPOIFDFSVNBFTUSVUVSBEFEFDJTP
t JEFOUJmDBSPTUJQPTEFFTUSVUVSBEFEFDJTPF
t aplicar estruturas de deciso em algoritmos.

Caro(a) estudante,
Nas aulas anteriores resolvemos problemas de complexidade bem limitada,
baseadas em estruturas sequenciais simples. Nesta aula, voc ir estudar
a elaborao de algoritmos mais complexos, saindo do tradicional passo a
QBTTPMJOFBSQBSBnVYPTEFFYFDVPRVFQPEFNTPGSFSEFTWJPTOBTFRVODJB
CBTFBEPTFNFYQSFTTFTMHJDBT JTUP PDPNQVUBEPSTFSDBQB[EFUPNBS
VNBEFDJTPTPCSFPRVFTFSFYFDVUBEPPVOP*OUFSFTTBOUF OP &OUP
WBNPTFTUVEBSDPNCBTUBOUFBmODPFTUBBVMB

8.1 Introduo
Estrutura de deciso ou estrutura condicional basicamente um mecanismo
DBQB[ EF WFSJmDBS QSFWJBNFOUF EFUFSNJOBEBT DPOEJFT  CBTFBEBT FN FYQSFTTFTMHJDBT QBSBBSFBMJ[BPEFVNBPVNBJTJOTUSVFT
"FYQSFTTPMHJDBFNVNBFTUSVUVSBEFEFDJTPPNFDBOJTNPVTBEPQBSB
RVFPDPNQVUBEPSUPNFTVBEFDJTP$BTPFMBTFKBWFSEBEFJSB PnVYPEF
FYFDVPEPBMHPSJUNPTFHVFVNDBNJOIPDBTPTFKBGBMTB TFHVFPVUSP

8.2 Tipos de estruturas de deciso


As estruturas de deciso podem ser de trs tipos:

Aula 8 - Estruturas de deciso

71

Rede e-Tec Brasil

t Estruturas de deciso simples ou estrutura Se


t Estruturas de deciso composta ou estrutura SeoSenoF
t Estruturas de deciso encadeada ou estrutura SeoSenooSe.

8.2.1 Estrutura de deciso Se


A estrutura de deciso Se a mais simples, pois existe apenas um desvio
EF nVYP OB FYFDVP EP BMHPSJUNP &TTF EFTWJP FTU DPOEJDJPOBEP B VNB
expresso booleana: quando verdadeira, no h desvio, mas caso seja falsa,
o desvio efetuado.
Para uma melhor visualizao de como esse desvio acontece (como o comQVUBEPSUPNBEFDJTFT
WBNPTDPNQBSBSPnVYPHSBNBEFFYFDVPEFVN
algoritmo com estrutura sequencial com o da estrutura condicional:

Figura 8.1: Estrutura sequencial versus estrutura condicional.


Fonte: Autores.

Rede e-Tec Brasil

72

Lgica de Programao

"TJOUBYFEBFTUSVUVSBDPOEJDJPOBM4F4FOPUBOUPFNQTFVEPDEJHPRVBOto em Java :
TABELA 8.1 - Sintaxe da estrutura condicional Se
Pseudocdigo
Se (expresso lgica) Ento
Comando ou Bloco de Comandos
Fimse

Java
// Um nico comando a ser controlado
if(expresso lgica)
Comando;
// Vrios comandos a serem
// controlados
if(expresso lgica) {
Bloco de Comandos;
}

Fonte: Autores.

t De acordo com a sintaxe, o Comando ou Bloco de Comandos TTFS


FYFDVUBEPTFBFYQSFTTPMHJDBGPSverdadeira.
t Em Java, quando temos apenas um comando para ser executado o uso
das chaves opcional.
Para entender melhor a estrutura de deciso Se, vamos a um exemplo prtico: dado o salrio de uma pessoa, o imposto de renda pode ser cobrado
DBTPFMFHBOIFNBJTEF3 NFOTBJT4FJTTPBDPOUFDFS BQPSDFOUBHFNEPJNQPTUPEFTPCSFPTBMSJPCSVUP DBTPDPOUSSJP PJNQPTUP
a pagar zero.

Figura 8.2: Exemplo da estrutura condicional Se em pseudocdigo.


Fonte: Autores.

Aula 8 - Estruturas de deciso

73

Rede e-Tec Brasil

"OBMJTFPDEJHPFWFSJmRVFRVF
t $BTP B FYQSFTTP MHJDB salarioBruto > 1500) seja verdadeira,
FOUPPJNQPTUPEFSFOEBTFSDBMDVMBEP MJOIBTB

t $BTPBFYQSFTTPMHJDB salarioBruto > 1500) seja falsa, ento o
imposto de renda no ser calculado, e ele continuar sendo zero (da
maneira que ele foi inicializado na linha 12).
/PTFHVOEPDBTP RVBOEPBFYQSFTTPMHJDBGBMTB PDPSSFVNEFTWJPEP
nVYPEPBMHPSJUNP GB[FOEPDPNRVFPDPNBOEPEBMJOIBOPTFKBFYFDVtado de acordo com a sequncia do algoritmo. Muito legal esse mecanismo
EFDPOUSPMFEFnVYP OP "HPSBWBNPTWFSPNFTNPBMHPSJUNPFN+BWB

Figura 8.3: Exemplo da estrutura condicional Se em Java.


Fonte: Autores.

Rede e-Tec Brasil

74

Lgica de Programao

5BOUPPBMHPSJUNPFNQTFVEPDEJHPRVBOUPFN+BWBEFWFSPUFSBTNFTNBT
sadas:
TABELA 8.2 - Exemplos de sada de um algoritmo com a estrutura condicional Se.
(salarioBruto > 1500) for:
Falso

Verdadeiro

Salrio bruto: 1000


Desconto de imposto de renda:0
Salrio lquido:1000

Salrio bruto: 1501


Desconto de imposto de renda: 225.15
Salrio lquido:1275.85

Fonte: Autores.

8.2.2 Estrutura de deciso Se Seno


A estrutura de deciso Se - SenoNBJTDPNQMFUB QPJTQFSNJUFEPJTnVYPT
de execuo no algoritmo, um para quando a expresso booleana for verEBEFJSBFPVUSPQBSBRVBOEPGPSGBMTB4FOEPBTTJN PnVYPFTDPMIJEPQBSBB
execuo est condicionado a essa expresso, que, caso seja verdadeira, um
conjunto de comandos executado, mas caso seja falsa, executa-se outro
conjunto.
1BSBWPDUFSVNBNFMIPSWJTVBMJ[BPEFDPNPFTTBFTDPMIBEFnVYPBDPOUFDF WBNPTDPNQBSBSPnVYPHSBNBEFFYFDVPEFVNBMHPSJUNPDPNFTtrutura Se com o da estrutura Se - Seno:

Figura 8.4: Estrutura Se versus Se Seno.


Fonte: Autores.

Aula 8 - Estruturas de deciso

75

Rede e-Tec Brasil

A sintaxe da estrutura condicional Se - SenoUBOUPFNQTFVEPDEJHPRVBOto em Java :


TABELA 8.3 - Sintaxe da estrutura condicional Se - Seno.
Pseudocdigo
Se (expresso lgica) Ento
Comando 1 ou Bloco de Comandos 1
Seno
Comando 1 ou Bloco de Comandos 1
Fimse

Java
if (expresso lgica)
Comando1;
else
Comando2;

if (expresso lgica) {
Bloco de Comandos 1;
} else {
Bloco de Comandos 2;
}

Fonte: Autores.

De acordo com a sintaxe, o Comando ou Bloco de Comandos 1TTFS


FYFDVUBEP TF B FYQSFTTP MHJDB GPS verdadeira. Caso seja falsa, ser
executado o Comando 2 ou Bloco de Comandos 2.
Para entender melhor a estrutura de deciso Se - Seno, vamos a um exemQMPQSUJDPEBEPVNONFSP WFSJmRVFTFPNFTNPQBSPVNQBS

Figura 8.5: Exemplo da estrutura condicional Se - Seno em pseudocdigo.


Fonte: Autores.

"OBMJTFPDEJHPFWFSJmRVF

Rede e-Tec Brasil

76

Lgica de Programao

t 1BSBTBCFSTFVNONFSPQBS CBTUBVTBSVNBQSPQSJFEBEFNBUFNUJDB
DBTPPSFTUPEBEJWJTPEFTTFONFSPQPSTFKB FOUPFMFQBS
t "OBMPHJDBNFOUF TFPSFTUPEBEJWJTPEFRVBMRVFSONFSPQPSGPS 
TJHOJmDBRVFFMFNQBS
O mesmo algoritmo em Java seria:

Figura 8.6: Exemplo da estrutura condicional Se - Seno em pseudocdigo.


Fonte: Autores.

8.2.3 Estrutura de deciso Se Seno Se


A estrutura de deciso Se Seno - Se a mais complexa de todas, pois
permite o encadeamento de um SeMPHPBQTPSeno de outro Se, isto
, possvel encadear um SeEFOUSPEFPVUSP GPSNBOEPBTTJNVNBOJDB
estrutura.
Mesmo sendo complexo, s vezes a soluo mais fcil para alguns tipos
de algoritmo, que precisam testar diversas condies e tomar uma deciso
TPCSF RVBM nVYP EF DPNBOEPT TFHVJS  RVF T QPEF TFS VN PV OFOIVN

KVTUBNFOUFBRVFMFDVKBDPOEJPGPSTBUJTGFJUB JTUP DVKBFYQSFTTPMHJDB
for verdadeira.
Para voc ter uma melhor visualizao de como essa estrutura encadeada de
4FPSHBOJ[BEB BTFHVJSUFNPTVNFYFNQMPEFnVYPHSBNBEFFYFDVPEF
um algoritmo com estrutura Se Seno - Se:

Aula 8 - Estruturas de deciso

77

Rede e-Tec Brasil

Figura 8.7: Fluxograma da Estrutura de deciso Se Seno Se.


Fonte: Autores.

&N QTFVEPDEJHP  FTTB FTUSVUVSB FODBEFBEB OBEB NBJT  EP RVF VN 4F
dentro de outro Se, mas, em Java, possvel aninhar as estruturas Se como
TFGPTTFNVNTDPNBOEP7FKBPFYFNQMPBTFHVJS
TABELA 8.4 - Sintaxe da estrutura condicional Se Seno - Se.
Pseudocdigo
Se (expresso lgica 1) Ento
Bloco de Comandos 1
Seno
Se (expresso lgica 2) Ento
Bloco de Comandos 2
Seno
...
...
Se (expresso lgica N) Ento
Bloco de Comandos N
Seno
Bloco de Comandos Seno
Fimse
Fimse
Fimse

Java
if (expresso lgica 1) {
Bloco de Comandos 1;
} else if (expresso lgica 2) {
Bloco de Comandos 2;
} else if (expresso lgica 3) {
Bloco de Comandos 3;
} else if (expresso lgica 4) {
Bloco de Comandos 4;
} else if... {
...
} else if(expresso lgica N) {
Bloco de Comandos N;
} else {
Bloco de Comandos Seno
}

Fonte: Autores.

Rede e-Tec Brasil

78

Lgica de Programao

7FKBNPT BMHVNBT QSPQSJFEBEFT JNQPSUBOUFT EB FTUSVUVSB EF EFDJTP 4F o


4FOPo4F
t O Bloco de Comandos 1 ser somente executada se a expresso l
gica 1 for verdadeira"QTBFYFDVPEPBloco de Comandos 1,
PnVYPEFFYFDVPTBJEBFTUSVUVSBEFEFDJTPSe Seno Se, mesmo
RVFIBKBPVUSBTFYQSFTTFTWFSEBEFJSBTBQTBexpresso lgica 1.
t O Bloco de Comandos 2 ser somente executado se a expresso
lgica 1 for falsa e a expresso lgica 2 for verdadeira"QT
a execuo do Bloco de Comandos 2 PnVYPEFFYFDVPTBJEBFTtrutura de deciso Se Seno Se, mesmo que haja outras expresses
WFSEBEFJSBTBQTBexpresso lgica 2.
t O Bloco de Comandos 3 somente ser executado se as expresses
lgicas 1 e 2 forem falsas e a expresso lgica 3 for verda
deira"QTBFYFDVPEPBloco de Comandos 3 PnVYPEFFYFDVo sai da estrutura de deciso Se Seno Se, mesmo que haja outras
FYQSFTTFTWFSEBEFJSBTBQTFTTBFYQSFTTP
t O bloco de comandos N ser somente executado se as expresses
 forem falsas e a expresso lgica N for ver
dadeira"QTBFYFDVPEPBloco de Comandos N PnVYPEFFYFcuo sai da estrutura de deciso Se Seno Se.
t Os comandos do bloco else sero somente executados se nenhuma
FYQSFTTPMHJDBBOUFSJPSGPSWFSEBEFJSB
Para entender melhor a estrutura de deciso Se Seno - Se, vamos a um
exemplo prtico: dadas duas notas, caso a mdia delas seja maior que 7, o
BMVOPFTUBSBQSPWBEPDBTPTFKBNFOPSEPRVF PBMVOPFTUBSSFQSPWBEP
FTFFTUJWFSFOUSFF PBMVOPWBJQBSBBQSPWBmOBM
O mesmo algoritmo em Java seria:

Aula 8 - Estruturas de deciso

79

Rede e-Tec Brasil

Figura 8.8: Exemplo da estrutura condicional Se Seno - Se em pseudocdigo.


Fonte: Autores.

Figura 8.9: Exemplo da estrutura condicional Se - Seno - Se em Java.


Fonte: Autores.

Rede e-Tec Brasil

80

Lgica de Programao

Graas s estruturas de deciso, podemos fazer o computador tomar deciTFTFFYFDVUBSVNDPOKVOUPEFDEJHPTRVFWPDRVJTFS EFBDPSEPDPNB


TVBMHJDB"HPSBWBNPTBPSFTVNPEBBVMB

Resumo
Adicionamos nesta aula conhecimentos importantssimos para a elaborao
de algoritmos mais complexos. Tratamos das estruturas de deciso simples,
compostas e encadeadas. Vimos que a estrutura Se a mais simples, pois
IBQFOBTVNEFTWJPEFnVYPOBFYFDVPEPBMHPSJUNP&TTFEFTWJPFTU
condicionado a uma expresso booleana: quando verdadeira, no h desvio,
mas, caso seja falsa, o desvio efetuado. A estrutura de deciso composta
Se EntowNBJTDPNQMFUB QPJTQFSNJUFEPJTnVYPTEFFYFDVPEPBMHPritmo, um quando a expresso booleana for verdadeira e outra para quando
for falsa. J a estrutura encadeada Se - Seno - Se a mais complexa,
QPJTQFSNJUFPFODBEFBNFOUPEFVNTFMPHPBQTPSeno de outro Se,
isto, possvel encadear um Se dentro de outro, formando, assim, uma
OJDBFTUSVUVSB
"TTJNDPNPOBBVMBBOUFSJPS UFNPTVNONFSPNBJPSEFFYFSDDJPT7BNPT
praticar!

Atividades de aprendizagem
1. 'BB VN BMHPSJUNP FN 7JTVBM( PV FN +BWB RVF  EBEPT EPJT ONFSPT 
mostre qual o maior deles.
2. 'BBVNBMHPSJUNPFN7JTVBM(PVFN+BWBRVF EBEPVNONFSP WFSJmque se o mesmo divisvel por 3.
3. Faa um algoritmo em VisualG ou em Java que, dado o tamanho de trs
retas, seja possvel construir um tringulo com elas.
4. 'BBVNBMHPSJUNPFN7JTVBM(PVFN+BWBRVFEBEPVNONFSP WFSJmque se o mesmo divisvel por 3 e 4, mas que no seja divisvel por 5.
5. 'BB VN BMHPSJUNP FN 7JTVBM( PV FN +BWB RVF  EBEPT UST ONFSPT 
mostre-os -em ordem crescente.
6. Faa um algoritmo em VisualG ou em Java que, dado o salrio bruto de
uma pessoa, calcule o salrio lquido sabendo que h o desconto de dois
impostos, de acordo com a tabela abaixo:

Aula 8 - Estruturas de deciso

81

Rede e-Tec Brasil

Tabela IRPF
Salrio at R$ 1.500,00: 0% de imposto,
Salrio at R$ 3.000,00: 15% de imposto,
Salrio acima de R$ 3.000,00: 27,5% de imposto,

Tabela INSS
Imposto fixo de 11% do salrio, sendo que o total do
imposto no pode ser superior a R$ 400,00.

Ol, viu como possvel um computador tomar decises e assim executar taSFGBTNBJTDPNQMFYBT .VJUPMFHBM OP /BQSYJNBBVMB WPDJSDPNQMFmentar os seus conhecimentos de algoritmos com as estruturas de seleo,
VNDPODFJUPCFNQBSFDJEPDPNPEBFTUSVUVSBEFEFDJTP"UBQSYJNB

Rede e-Tec Brasil

82

Lgica de Programao

Aula 9. Estruturas de seleo

Objetivos:
t SFDPOIFDFSVNBFTUSVUVSBEFTFMFPF
t aplicar estruturas de seleo em algoritmos.

Caro(a) estudante,
Trataremos agora da estrutura de seleo, que uma estrutura complemenUBSTFTUSVUVSBTEFEFDJTP JTTPQPSRVFFMBDBQB[EFEFDJEJSRVBMnVYPEF
comandos executar, mas usando como parmetro o valor de uma varivel,
FNWF[EPSFTVMUBEPEFVNBFYQSFTTPMHJDB

9.1 Introduo
A estrutura de seleo muito utilizada em programao, pois serve para
controlar vrias aes diferentes, de acordo com o valor de um parmetro
WBSJWFM
EFmOJEPEFOUSPEFMF%JGFSFOUFNFOUFEBTFTUSVUVSBTEFEFDJTP B
EFTFMFPUFNONFSPQSEFmOJEPEFFTDPMIBTQPTTWFJT F DPOTFRVFOUFmente, de caminhos possveis.
"JOTUSVPVTBEBQBSBEFmOJSVNBFTUSVUVSBEFTFMFP

Toda estrutura de seleo


pode ser substituda por uma
estrutura de deciso equivalente.
Geralmente, nesse caso, usada
a estrutura de deciso Se - Seno
- Se. Entretanto, em relao ao
desempenho, a anlise de uma
estrutura de seleo consome
menos tempo de processamento
que uma de deciso.

t &TDPMIBOP7JTVBM(
t switch no Java.

9.2 Sintaxe do comando escolha


A sintaxe do comando escolha, tanto no VisualG quanto no Java, bem
parecida:

Aula 9 - Estruturas de seleo

83

Rede e-Tec Brasil

TABELA 9.1: Sintaxe da estrutura de seleo.


Pseudocdigo
Escolha(variavel)
Caso "qualquer valor
Bloco de Comandos
Caso "qualquer valor
Bloco de Comandos
Caso "qualquer valor
Bloco de Comandos
Caso ...
Caso "qualquer valor
Bloco de Comandos
OutroCaso
Bloco de Comandos
FimEscolha

1"
1
2"
2
3"
3
N"
N
OutroCaso

Java
switch (variavel) {
case valorInteiro1:
Bloco de Comandos
break;
case valorInteiro2:
Bloco de Comandos
break;
case ...:
case valorInteiroN:
Bloco de Comandos
break;
default:
Bloco de Comandos
break;
}

1;

1;

N;

default;

Fonte: Autores.

Entretanto, temos algumas consideraes a fazer:


t /PQTFVEPDEJHP BWBSJWFMQPEFTFSOVNSJDBFUFYUVBMOP+BWB TPmente numrico do tipo inteiro. Em ambos os casos ela no pode ser
VNBFYQSFTTPMHJDB
t /P+BWB QBSBJNQFEJSRVFPDEJHPDPOUJOVFTFOEPFYFDVUBEP OFDFTsrio usar o comando break.
Explicando melhor o funcionamento da estrutura de seleo, temos:
t 0DPNBOEP&TDPMIBSFDFCFVNBWBSJWFMFBCSFVNCMPDPEFEBEPT
t %FOUSPEFTTFCMPDPEFEBEPTIPTDBTFT
t $BEBDBTFSFDFCFVNWBMPSOJDP PVTFKB RVFOPQPEFTFSSFQFUJEPOP
NFTNPCMPDPEFEBEPT
t "QT P WBMPS OJDP  DPMPDBNPT UPEP DEJHP RVF EFWFS TFS FYFDVUBEP
QPEFIBWFSRVBOUBTMJOIBTEFDEJHPGPSFNOFDFTTSJBT

t #BTFBEPOPWBMPSEBWBSJWFM FMFWFSJmDBRVBMDBTFUFNFTTFWBMPSFFYFDVUBPDEJHPDPSSFTQPOEFOUF
t Caso no ache nenhum valor correspondente nos cases, ele executa a

Rede e-Tec Brasil

84

Lgica de Programao

sada-padro (OutroCase em VisualG e default em Java).


Para entender melhor a estrutura de seleo , vamos a um
exemplo prtico:
Criar um menu de comandos que mostre trs mensagens, de acordo com a
opo escolhida: Bom dia, Boa Tarde ou Boa Noite.

Figura 9.1: Exemplo de estrutura de seleo em VisualG.


Fonte: Autores.

Aula 9 - Estruturas de seleo

85

Rede e-Tec Brasil

Exemplo de estrutura de seleo em Java

Figura 9.2: Exemplo de estrutura de seleo em Java.


Fonte: Autores.

$PN FTTB FTUSVUVSB  mDB GDJM NBOJQVMBS WSJPT nVYPT EF DPNBOEPT  EFTEF RVF DPOTJHBNPT RVBOUJmDBS BT PQFT QPTTWFJT EF FYFDVP TFN VTBS
FYQSFTTFTMHJDBT VTBOEPTPNFOUFWBMPSFTEFWBSJWFJT"HPSB WBNPTBP
resumo da aula.

Resumo
Nesta aula, vimos mais uma estrutura de linguagem, a de seleo. MostraNPTRVFBFTUSVUVSBEFTFMFPQFSNJUFNBOJQVMBSWSJPTnVYPTEFDPNBOdos, usando como parmetro o valor de uma varivel. Agora sua vez de
praticar.

Rede e-Tec Brasil

86

Lgica de Programao

Atividades de aprendizagem
1. Faa um algoritmo em VisualG ou em Java que use a estrutura de seleo
OBTFHVJOUFTJUVBPEBEPVNONFSPEFB NPTUSBSPOPNFEPNT
DPSSFTQPOEFOUF$BTPPVTVSJPOPEJHJUFFTTFONFSP NPTUSBSVNBNFOsagem de erro.
2. Faa um algoritmo em VisualG que use a estrutura de seleo neste caso:
EBEPPOPNFEFVNB6OJEBEF'FEFSBUJWBEP#SBTJMo6' FTDSFWBBDBQJUBM
dessa UF. Caso o usurio informe uma UF no existente, mostrar uma mensagem de erro.
3. Faa um algoritmo em VisualG ou em Java que, sabendo sua posio em
um campeonato, escreva as seguintes mensagens:
t 1 colocado: Parabns, voc o melhor.
t 2 colocado: Parabns, voc conseguiu.
t 3 colocado: Parabns, voc quase chegou l.
t 4 colocado em diante: Parabns, o importante competir.
4. 'BB VN BMHPSJUNP FN 7JTVBM( PV FN +BWB RVF EBEPT EPJT ONFSPT 
mostre um menu de opes em que voc possa fazer as seguintes escolhas:
t 4PNBSPTEPJTONFSPT
t .VMUJQMJDBSPTEPJTONFSPT
t 4VCUSBJSPTEPJTONFSPT
t %JWJEJSPTEPJTONFSPTF
t $BMDVMBSPONFSPFMFWBEPBP QPTTWFMTPNFOUFFN+BWBoOFDFTsrio pesquisar sobre as funes matemticas na linguagem).

Aula 9 - Estruturas de seleo

87

Rede e-Tec Brasil

Caro(a) estudante,
&TUBNPTDIFHBOEPBPmOBMEBEJTDJQMJOB-HJDBEF1SPHSBNBP"HPSB T
GBMUBNBJTVNBBVMBQBSBGFDIBSPDPOUFEPOFDFTTSJPQBSBRVFWPDDPOTJHBEFTFOWPMWFSBMHPSJUNPEFBMUBRVBMJEBEF/BQSYJNBBVMB WFSFNPTVNB
estrutura muito importante na programao, que permite executar um conjunto de comandos mais de uma vez. At mais!

Rede e-Tec Brasil

88

Lgica de Programao

Aula 10. Estruturas de repetio

Objetivos:
t SFDPOIFDFSVNBFTUSVUVSBEFSFQFUJP
t JEFOUJmDBSPTUJQPTEFFTUSVUVSBTEFSFQFUJPF
t aplicar estruturas de repetio em algoritmos.

Caro(a)estudante,
+UJWFNPTBPQPSUVOJEBEFEFFTUVEBSBMHPSJUNPTTPmTUJDBEPT7BNPT OFTUF
momento, ampliar ainda mais seus conhecimentos, apresentando algumas
tcnicas de programao que possibilitem repetir um bloco de comandos
WSJBTWF[FT7BNPTBPDPOUFEP

10.1 Introduo
Em nosso cotidiano comum executarmos a mesma ao repetitivamente
BUDIFHBSBVNPCKFUJWP QPSFYFNQMP mYBSVNQSFHPOBNBEFJSB RVBOEP
UFNPTRVFCBUFSOPQSFHPSFQFUJEBTWF[FTBURVFFMFFTUFKBmYPPTVmDJFOUF
para no cair.
Esse tipo de situao tambm muito comum na programao, onde se faz
necessrio executar o mesmo conjunto de comandos mais de uma vez para
chegar ao resultado desejado.
Se precisssemos calcular a mdia mais de uma vez, por exemplo, teramos
que executar (reiniciar) o programa CalcularMedia vrias vezes, uma ao
invivel ou, no mnimo, inconveniente.
Para resolver problemas como esse que as linguagens de programao
oferecem as estruturas de repetio (ou looping).

Aula 10 - Estruturas de repetio

89

Rede e-Tec Brasil

H um tempo, o programa
rodava no mesmo espao de
memria e consumia o mesmo
conjunto de recursos que o
sistema operacional. Essa
arquitetura de gerenciamento
de processos (programas)
era complicada, pois um
determinado problema no seu
programa poderia afetar todo o
computador.
Atualmente, nos sistemas
operacionais modernos, os
programas rodam em uma rea
protegida (mquinas virtuais) e,
caso haja algum problema nele,
apenas o programa em questo
afetado, deixando o resto do
ambiente computacional seguro
(pelo menos deveria ser assim
o funcionamento, mas at hoje
vemos alguns travamentos em
nossos computadores).

A quantidade de vezes a ser repetido pode ser ou no previamente conheciEB NBTDFSUBNFOUFEFWFUFSVNMJNJUF TFSmOJUP
4FWPDOPHBSBOUJSRVF
a repetio termine em algum momento, o seu algoritmo entra em loop
JOmOJUP, isto , ele para de funcionar, podendo at travar o computador, j
que consume muitos recursos do equipamento.

10.2 Tipos de estrutura de repetio


As estruturas de repetio podem ser de trs tipos:
t Estrutura de repetio Para
t Estrutura de repetio Enquanto
t Estrutura de repetio Repita.

10.2.1 Para
A principal caracterstica da estrutura de repetio Para que ela executa
VNMBPEFSFQFUJPQPSVNONFSPQSFEFmOJEPEFWF[FT1BSBUBOUP BFTtrutura ParaUFNPBVYMJPEBmHVSBEPcontador, uma varivel inteira, que
UFNVNWBMPSJOJDJBMFEFWFDIFHBSBVNWBMPSmOBM
1BSB FYFNQMJmDBS FTTF DPODFJUP  JNBHJOF RVF TFV USFJOBEPS QFB QBSB RVF
voc faa 10 abdominais. O que mais importante para voc conseguir fa[FSFTTFFYFSDDJP 4FWPDSFTQPOEFViFTUBSFNGPSNBw BQFTBSEFUFSDFSUB
relevncia, essa no a resposta correta. O mais importante nesse caso
saber contar at 10.
Outro aspecto importante do contador a forma de contar. Na estrutura
Para possvel contar em ordem crescente (1, 2, 3..., 10), em forma decrescente (10, 9, 8,..., 1), pulando alguns passos (0, 2, 4, 6), entre muitas outras
maneiras.
A sintaxe da estrutura de repetio ParaFNQTFVEPDEJHP
para <contador> de <valorInicial> ate <valorFinal> [passo] faca
<bloco de comandos>

Figura 10.1: Sintaxe do comando Para.


Fonte: Autores.

Rede e-Tec Brasil

90

Lgica de Programao

Onde:
t contadorVNBWBSJWFMEPUJQPJOUFJSPRVFDPOUSPMBPONFSPEFSFpeties do lao.
t valorInicial:JEFOUJmDBPWBMPSJOJDJBMEPDPOUBEPS
t valorFinal:JEFOUJmDBPWBMPSmOBMEPDPOUBEPS OPNPNFOUPRVFPMBP
interrompido.
t passo: opcional, mas, quando presente, precedida pela palavra passo,
VNBFYQSFTTPRVFFTQFDJmDBPJODSFNFOUPRVFTFSBDSFTDFOUBEP
varivel contadora em cada repetio do lao. Exemplo: passo 1 (a cada
QBTTPJODSFNFOUBPWBMPSEPDPOUBEPSoFTTFPQBESP QPSJTTPQPEF
TFSPNJUJEPpasso 5 (a cada passo incrementa em 5 o valor do contaEPS
PV (a cada passo diminui em 2 o valor do contador).
Como exemplos de sintaxe, temos:
Algoritmo "ExemplosPara"
var i: inteiro
inicio
// contar de 1 at 10
para i de 1 ate 10 faca
escreva (j:3)

// contar de 10 at 1
para i de 10 ate 1 passofaca
escreva (j:3)

Figura 10.2: Exemplos da estrutura Para em pseudocdigo.


Fonte: Autores.

A sintaxe da estrutura de repetio Para em Java :


for(valor inicial; condio de parada; incremento) {
<bloco de comandos>;
}
Figura 10.3: Sintaxe do comando for.
Fonte: Autores.

Aula 10 - Estruturas de repetio

91

Rede e-Tec Brasil

Onde:
t valor inicial: uma varivel (contador) do tipo inteiro que controla o
ONFSPEFSFQFUJFTEPMBP
t condio de parada:VNBFYQSFTTPMHJDBRVF FORVBOUPGPSWFSEBdeira, o lao (loop) acontece. Quando a expresso booleana for falsa, a
repetio para.
t incremento: uma expresso aritmtica que indica o incremento ou
decremento da varivel contadora.
Como exemplos de sintaxe, temos:
// contar de 1 at 10
for
System.out.println(i);
}
// contar 10 vezes
for
System.out.println(i);
}
// contar de 10 at 1
for
System.out.println(i);
}
// mostrar os nmeros pares menores que 100
for
System.out.println(i);
}
Figura 10.4: Exemplos da estrutura Para em Java.
Fonte: Autores.

Para entender melhor a estrutura de repetio Para, vamos a um exemplo


prtico:
$SJBSVNBMHPSJUNPRVFQFSNJUBTPNBSPT/QSJNFJSPTONFSPTEFVNBTFquncia de inteiros. Exemplo, para N = 5, calcular 1 + 2 + 3 + 4 + 5.

Rede e-Tec Brasil

92

Lgica de Programao

Figura 10.5: Exemplo prtico da estrutura Para em pseudocdigo.


Fonte: Autores.

&N+BWB PQSPHSBNBEBmHVSBmDBSJBEBTFHVJOUFNBOFJSB

Figura 10.6: Exemplo prtico da estrutura Para em Java.


Fonte: Autores.

Aula 10 - Estruturas de repetio

93

Rede e-Tec Brasil

10.2.2 Enquanto
A estrutura de repetio EnquantoDPNVNFOUFVTBEBRVBOEPPONFSP
de vezes que um bloco de comandos dever ser executado no conhecido,
diferentemente do Para RVFQSFEFmOJEP
Explicando melhor, o comando Para do tipo faa 10 abdominais e o En
quanto do tipo faa abdominais enquanto no estiver cansado. Perceba
que, no segundo tipo, no possvel precisar a quantidade de abdominais
que a pessoa ir fazer.
&TTFUJQPEFFTUSVUVSBTQPTTWFMQPSRVFFYJTUFVNUFTUFMHJDPOPJODJPEP
comando EnquantoFTTFDPNBOEPQSJNFJSPBWBMJBVNBFYQSFTTPMHJDBo
DBTPFMBTFKBWFSEBEFJSB GB[BSFQFUJPEPDEJHPDBTPTFKBGBMTB FMBQBSB
a repetio, saindo, assim, do loop.
A sintaxe da estrutura de repetio EnquantoFNQTFVEPDEJHP
Enquanto <expresso lgica> faca
<bloco de comandos>
FimEnquanto
Figura 10.7: Sintaxe do comando Enquanto.
Fonte: Autores.

Onde:
t Expresso lgica: uma expresso que, enquanto for verdadeira, perNJUFBFYFDVPEPCMPDPEFDPNBOEPT NBT BPmDBSGBMTB PnVYPEF
execuo do algoritmo sai da estrutura de repetio, parando essa atividade.
Como exemplos de sintaxe, temos:

Rede e-Tec Brasil

94

Lgica de Programao

Algoritmo "ExemplosEnquanto"
var a, b: inteiro
Inicio
a := 10
b := 20
// o loop ir executar enquanto a for menor ou igual a b

Enquanto (a <= b) faca


escreval (a, " ", b)


FimEnquanto
FimAlgoritmo

Figura 10.8: Sintaxe do comando Enquanto.


Fonte: Autores.

A sintaxe da estrutura de repetio Enquanto em Java :


while (expresso lgica) {
<bloco de comandos>;
}
Figura 10.9: Sintaxe do comando for.
Fonte: Autores.

0QBQFMEBFYQSFTTPMHJDBOPGVODJPOBNFOUPEBFTUSVUVSBwhile segue os
NFTNPTQSJODQJPTNPTUSBEPTOBWFSTPFNQTFVEPDEJHP
Como exemplos de sintaxe, temos:
int a = 10;
int b = 20;
// o loop ir executar enquanto a for menor ou igual a b
while(a <= b) {

// incrementa o valor de a em 1
// decrementa o valor de b em 1
}

Figura 10.10: Exemplos da estrutura Enquanto em Java.


Fonte: Autores.

Para entender melhor a estrutura de repetio Enquanto, vamos a um


exemplo prtico:

Aula 10 - Estruturas de repetio

95

Rede e-Tec Brasil

Criar um algoritmo que mostre todos os elementos menores que 1000 na


sequncia de Fibonacci. Para conhecimento, a sequncia de Fibonacci
BRVFMBDVKPQSYJNPFMFNFOUPBTPNBEPTEPJTBOUFSJPSFT&Y    
3, 5, 8, 13, 21, 34...

Figura 10.11: Exemplo prtico da estrutura Enquanto em pseudocdigo.


Fonte: Autores.

&N+BWB PQSPHSBNBEBmHVSBmDBSJBEBTFHVJOUFNBOFJSB

Figura 10.12: Exemplo prtico da estrutura Enquanto em Java.


Fonte: Autores.

Rede e-Tec Brasil

96

Lgica de Programao

10.2.3 Faa ou Repita


As estruturas de repetio Faa ou Repita, assim como o Enquanto, so
DPNVNFOUF VTBEBT RVBOEP OP  DPOIFDJEP P ONFSP EF WF[FT RVF VN
bloco de comandos dever ser executado.
"OJDBEJGFSFOBFOUSFFMFTRVFPEnquantoUFTUBBFYQSFTTPMHJDBBOUFTEFFYFDVUBSPDEJHPFUBOUPPFaa quanto o Repita testam somente
EFQPJT EF FYFDVUBS P DEJHP " QSJODJQBM DPOTFRVODJB EFTTB EJGFSFOB 
que o bloco de comandos em Faa ou Repita ser sempre executado pelo
menos uma vez. J no comando Enquanto pode acontecer que seu bloco
de comandos no seja executado nem uma vez.
No existe o equivalente da estrutura Faa no VisualG, apenas no Java e em
outras linguagens mais modernas, tais como o C#, C++ e Javascript. Analogicamente, nessas linguagens, no existe o equivalente estrutura Repita.
A principal diferena entre os comandos Faa e Repita que o primeiro
executa o loopFORVBOUPBFYQSFTTPMHJDBGPSWFSEBEFJSB0TFHVOEPFYFcuta o loopBURVFBFYQSFTTPMHJDBTFKBWFSEBEFJSB JTUP OPRepita,
FORVBOUPBFYQSFTTPMHJDBGPSGBMTB FMFFYFDVUBBSFQFUJP OPNPNFOUP
em que ela se tornar verdadeira, ela sai do loop.
A seguir temos um exemplo da sintaxe do comando Repita no VisualG.
Repita
<bloco de comandos>
Ate <expresso logica>// repete at a expresso for ver
dadeira
Figura 10.13: Sintaxe do comando Repita.
Fonte: Autores.

Onde:
t Expresso lgica: uma expresso que, enquanto for falsa permite a
FYFDVP EP CMPDP EF DPNBOEPT  NBT  BP mDBS WFSEBEFJSB  P nVYP EF
execuo do algoritmo sai da estrutura de repetio.
A seguir temos um exemplo da sintaxe do comando Faa no Java.

Aula 10 - Estruturas de repetio

97

Rede e-Tec Brasil

do {
<bloco de comandos>;
} while (expresso lgica); // repete enquanto a ex
presso for verdadeira
Figura 10.14: Sintaxe do comando do.
Fonte: Autores.

Onde:
t Expresso lgica: uma expresso que, enquanto for verdadeira, perNJUFBFYFDVPEPCMPDPEFDPNBOEPT NBT BPmDBSGBMTB JOUFSSPNQJEBFPnVYPEFFYFDVPEPBMHPSJUNPTBJEBFTUSVUVSBEFSFQFUJP
Para entender melhor as estruturas de repetio Repita e Faa, vamos a
um exemplo prtico:
Baseado no exemplo mostrado no item 9.2.2, crie um menu de comandos
que mostre trs mensagens, de acordo com a opo escolhida: Bom dia, Boa
Tarde ou Boa Noite, e tenha uma 4 opo perguntando se o usurio deseja
sair do programa.

Figura 10.15: Exemplo prtico da estrutura Repita em VisualG.


Fonte: Autores.

Rede e-Tec Brasil

98

Lgica de Programao

&N+BWB PQSPHSBNBmDBSJBEBTFHVJOUFNBOFJSB

Figura 10.15: Exemplo prtico da estrutura Faa em Java.


Fonte: Autores.

10.3 Comparao entre as estruturas de


repetio
4FWPDBJOEBUFNEWJEBTTPCSFRVBMFTUSVUVSBEFSFQFUJPVTBS OPI
problemas. Na verdade, voc pode usar qualquer uma, pois todas conseHVFNSFTPMWFSVNBTJUVBPRVFFOWPMWBSFQFUJPEFDEJHP
A implementao de determinada soluo s vezes pode ser mais simples
em um tipo de estrutura do que em outro.
.BT QBSBDPOIFDJNFOUP BTFHVJSOTUFNPTVNBUBCFMBDPNQBSBUJWBEBT
FTUSVUVSBTEFSFQFUJP"TTJN mDBNBJTGDJMUPNBSEFDJTPTPCSFRVBMVTBS
em cada caso.

Aula 10 - Estruturas de repetio

99

Rede e-Tec Brasil

TABELA 10.1 - Tabela comparativa entre as estruturas de repetio


Caracterstica

Para

Enquanto

Faa

Repita

Usa contador

Sim

Opcional

Opcional

Opcional

Tem quantidade predefinida

Sim

Depende

Depende

Depende

Primeiro verifica depois


executa

Sim

Sim

No

No

Primeiro executa depois


verifica

No

No

Sim

Sim

Executa enquanto a expresso lgica verdadeira

Sim

Sim

Sim

No

Executa enquanto a expresso lgica falsa

No

No

No

Sim

Fonte: Autores.

Resumo
&TTBGPJBOPTTBMUJNBBVMB7PDFTUVEPVBTFTUSVUVSBTEFSFQFUJPQBSB
aperfeioar determinados tipos de processo. Mostramos que, na estrutura
de deciso, o computador executa o mesmo bloco de comando quantas
WF[FTGPSFNOFDFTTSJBT CBTFBEPFNDPOUSPMFTCFNEFmOJEPTEFSFQFUJP
para se chegar ao resultado pretendido.
/PTFFTRVFBEFSFBMJ[BSBTBUJWJEBEFTFTQFDmDBTEFTUBBVMBQBSBVNNFlhor entendimento do assunto abordado.

Atividades de aprendizagem
1. Faa um algoritmo em VisualG ou em Java que calcule o saldo atual de
uma poupana, dado o total depositado, a porcentagem do rendimento
NFOTBMFPONFSPEFNFTFTRVFPWBMPSFTUOPCBODP
2. Faa um algoritmo em VisualG ou em Java que calcule a soma dos N priNFJSPTONFSPT POEF/JOGPSNBEPQFMPVTVSJP&YQBSB/ FOUP
calcular 1 + 2 + 3 + 4 + 5.
3. Faa um algoritmo em VisualG ou em Java que calcule o fatorial de um
ONFSPJOUFJSP
4.'BBVNBMHPSJUNPFN7JTVBM(PVFN+BWBRVFMFJB"F# BNCPTONFSPT
inteiros e positivos, e calcule AB.
5. Faa um algoritmo em VisualG ou em Java que leia um valor N inteiro e
QPTJUJWP DBMDVMFFNPTUSFPWBMPSEF& DPOGPSNFBGSNVMBBTFHVJS
E = 1 + 1/1! + 1/2! + 1/3! + ... + 1/N!

Rede e-Tec Brasil

100

Lgica de Programao

Palavras Finais
Caro(a) estudante,
Primeiramente, gostaramos de parabeniz-lo(la) por ter concludo esta disciplina do curso Tcnico em Informtica. Estamos felizes por ter completado
mais uma importante etapa na busca da aprendizagem e, consequentemenUF EPDPOIFDJNFOUP$IFHBNPTBPmOBMEBEJTDJQMJOBFDFSUBNFOUFOPGPJ
um percurso fcil, entretanto, durante nossa caminhada, adquirimos informaes e pudemos realizar trocas de experincias, com isso estamos mais
QSFQBSBEPTQBSBTFHVJSFNGSFOUFFTVQFSBSPTOPWPTEFTBmPTRVFWJSP
"MHJDBEFQSPHSBNBPVNQPOUPEFQBSUJEB/PQPEFNPTFTRVFDFS
que a busca pelo conhecimento contnua, portanto, vamos praticar, e,
DPNPEJDB QPSRVFOPDSJBSBMHPSJUNPTQBSBSFTPMWFSQSPCMFNBTSFBJT "
QSUJDBFNQSPHSBNBPPEJGFSFODJBMEBTVBWJEBQSPmTTJPOBMoFOTB
adquirimos com exerccios e simulaes de problemas reais.
A voc que chegou at aqui o nosso parabns.

101

Rede e-Tec Brasil

Guia de Solues
Aula 1
1. Resposta pessoal.
2.
Resultado verdadeiro:
O ferro conduz eletricidade.
O ouro conduz eletricidade.
O chumbo conduz eletricidade.
A prata conduz eletricidade.
Logo, todo metal conduz eletricidade.

Resultado falso:
At agora, nenhuma mulher foi Presidente da Repblica
no Lbano.
Logo, nenhuma mulher ser Presidente da Repblica no
Lbano.

3. 4INPWJNFOUPOPDBSSPTFIPVWFSDPNCVTUWFM
O carro est em movimento.
Logo, h combustvel no carro.
4.
I-B
II - B
III - C
5. Dona Rosa est de branco.
Dona Branca est de violeta.
Dona Violeta est de rosa.
6. IUUQXXXZPVUVCFDPNXBUDI W66EDVDN-"

Aula 2
1. Descrever passo a passo a resoluo de um problema.

Rede e-Tec Brasil

102

Lgica de Programao

2. Ligar o computador.
Abrir o navegador.
Acessar o site do e-mail.
Digitar o usurio e a senha.
Procurar e-mail com o documento.
Se encontrar o documento, abri-lo.
3.

4. '(&/$5(QXPHURFXER,17(,52
,1&,2
/(,$ QXPHUR
FXERQXPHUR QXPHUR QXPHUR
(6&5(9$ FXER
),0

103

Rede e-Tec Brasil

Aula 3
1. 7JTVBM4UVEJPo$ 7# $
/FU#FBOTo+BWB
%FMQIJo1BTDBM
9$PEFo0CKFDUJWF$
2. Visual Studio com C#:
using System;
namespaceMeusProjetos
{
classProgram
{
staticvoid Main(string[] args)
{
Console.Write("Digiteseunome: ");
string nome = Console.ReadLine();
Console.WriteLine("Seja bem vindo {0}", nome);
Console.ReadKey();
}
}
}
NetBeans com Java
Por ser um compilador Java, pode ser usado os mesmos algoritmos do Eclipse.
Delphi com Pascal
ProgramOla_Mundo;
begin
WriteLn('Ol, Mundo!');
end.
XCode com Objective-C
#import <stdio.h>
int main(void)
{
puts("Ol, Mundo!");
return 0;
}
Rede e-Tec Brasil

104

Lgica de Programao

Mais exemplos em: http://pt.wikipedia.org/wiki/Programa_Ol_Mundo


3.Os programas criados no VisualG e no Eclipse so simplesmente arquivos
armazenados no disco que podem ser visualizados pelo Windows Explorer.
Os arquivos em VisualG tm extenso .alg, e os arquivos em Java tm extenso .java.
No caso do Eclipse e outras IDEs mais modernas, so criados muitos outros
arquivos que tm como objetivo descrever o projeto como um todo, mas o
importante saber onde esto armazenados os arquivos com os algoritmos
criados.
4. possvel perceber que bem mais fcil escrever um algoritmo usando o
portugus (no caso do VisualG) do que em ingls (no caso do Java). Infelizmente, todas as maiores linguagens de programao foram criadas por pessoas cuja lngua ptria era o ingls, por isso a predominncia desse idioma
nas linguagens de programao.

Aula 4
1 e 2.
algoritmo "Mensagem"
// Autor: Liluyoud, Sara e Jos Marcio
var
// declarao de variveis
Inicio
// Algoritmo para mostrar uma mensagem

Escreva("| Programa Al, Mundo
|")


Escreva("| mundo da programao.
|")
Escreva("|
|")
Escreva("| Aproveite!!!
|")

Fimalgoritmo
3.
Funo do Algoritmo

Nome

Transformar dlar em real

Cambio

Calcular o ndice de massa corporal de uma pessoa

CalculoIMC

Calcular a rea de um tringulo

AreaTriangulo

Efetuar um saque na conta-corrente

ContaSaque

105

Rede e-Tec Brasil

4.
algoritmo "Cambio"
var
valorReal, valorDolar, cotacao: real
Inicio
Escreva("Informe o valor em Dolar: ")
Leia(valorDolar)
Escreva("Informe a cotao do dia: ")
Leia(cotacao)
valorReal := valorDolar * cotacao
Escreva("O valor em real ", valorReal)
Fimalgoritmo
algoritmo "CalculoIMC"
var
peso, altura, imc: real
Inicio
Escreva("Informe seu Peso: ")
Leia(peso)
Escreva("Informe sua Altura: ")
Leia(altura)
imc := peso / (altura * altura)
Escreva("Seu IMC ", imc)
Fimalgoritmo
algoritmo "AreaTriangulo"
var
base, altura, area: real
Inicio
Escreva("Informe o largura da base do tringulo: ")
Leia(base)
Escreva("Informe sua Altura: ")
Leia(altura)
area := (base * altura) / 2
Escreva("A rea do tringulo ", area)
Fimalgoritmo
algoritmo "ContaSaque"
var
saldo, valorSaque: real
Inicio
Escreva("Informe o saldo atual da conta: ")
Leia(saldo)
Escreva("Informe o valor do Saque: ")
Leia(valorSaque)

Escreva("O novo saldo de ", saldo)

Rede e-Tec Brasil

106

Lgica de Programao

Aula 5
1. a) XXX vlido
b) a123 vlido
c) (A) invlido
No podemos usar caracteres especiais no nome, nesse caso foram usados
os ( ).
d) NOME invlido
No podemos usar caracteres especiais no nome, nesse caso foram usadas
as .
e) #66 invlido
No podemos usar caracteres especiais no nome, nesse caso foi usado o #.
f) dia/ano/ms invlido
No podemos usar caracteres especiais no nome, nesse caso foi usada a /.
g) 1abc invlido
/PQPEFNPTJOJDJBSVNBWBSJWFMDPNONFSP
h) Ol Pessoal invlido
No pode haver espaos em uma varivel, e recomenda-se que no sejam
usado acentos tambm.
i) a.b invlido
No podemos usar caracteres especiais no nome, nesse caso foi usado o ..
j) c*d invlido
No podemos usar caracteres especiais no nome, nesse caso foi usado o *.

107

Rede e-Tec Brasil

2.
Sintaxe Pseudocdigo
Sintaxe Java

O que ser armazenado?


O salrio de um funcionrio
A nota e a mdia de um aluno
Os dias de atraso de uma prestao
O CPF de uma pessoa
Se a famlia tem casa prpria
Uma carta
O endereo completo do cliente
Se o produto novo ou usado

salario: real
double salario;
nota, media: real
double nota, media;
diasEmAtraso: inteiro
intdiasEmAtraso;
cpf: caractere
stringcpf;
casaPropria: lgico
booleancasaPropria;
carta: caractere
string carta;
endereco: caractere
stringendereco;
novo: lgico
boolean novo;

Aula 6
1. Operando: so os argumentos de um operador, isto , as informaes
necessrias para um operador realizar sua funo.
Operador:GVOPDPNEPNOJPFTQFDmDP
Expresso: uma combinao de operandos e operadores.
Exemplo: a * b
a e b so os operandos
* o operador
a * b a expresso
2. Expresses matemticas ou aritmticas
(a + b) / 2
&YQSFTTFTMHJDBT

Rede e-Tec Brasil

108

Lgica de Programao

B C
 B C

3. Sendo a = 2, b = 5 e c = 3, temos:
a) b * 2 a * c=>5 * 2 2 * 3=>

10 6

=> 4

b) 

c) 


d) 

e) 


4.
a) v E f OU f E v=>f OU f E v=>
b) (v E f) OU (f E v)=>

f E v

(f) OU (f)

=>

=> f

c) (NO (v E f)) E (f E v)=>(NO (f)) E (f) =>(v) E (f) => f


d) NO ((v E f) OU (f E v))
e) NO ((NO(v E f)) E (NO(f E v)))
5. Sabendo que a = 1, b = 2 e c = 3, demonstre a execuo passo a passo
da seguinte expresso:
!
4 MOD a = 0)
!
MOD 1 = 0)

109

Rede e-Tec Brasil

!
NO (6<> 8 OU (2<= 9)) OU (f E v)
NO (6<> 8 OU v) OU (f)
NO (v OU v) OU (f)
NO (v) OU (f)
f OU f
f

Aula 7
1.
Algoritmo "Prog_7_1"
Var
n1, n2, n3, soma: Inteiro
Inicio
Leia(n1)
Leia(n2)
Leia(n3)

Escreva(soma)
FimAlgoritmo
2.
Algoritmo "Prog_7_2"
Var
n1, n2, n3, n4, media: Real
Inicio
Leia(n1)
Leia(n2)
Leia(n3)
Leia(n4)

Escreva(media)
FimAlgoritmo

Rede e-Tec Brasil

110

Lgica de Programao

3.
Algoritmo "Prog_7_3"
Var
n1, n2, p1, p2, media: Real
Inicio
Leia(n1)
Leia(n2)
Leia(p1)
Leia(p2)

Escreva(media)
FimAlgoritmo
4.
Algoritmo "Prog_7_4"
Var
salario, porcentagem: Real
Inicio
Leia(salario)
Leia(porcentagem)

Escreva(salario)
FimAlgoritmo
5.
Algoritmo "Prog_7_5"
Var
salario, imposto: Real
dependentes: Inteiro
Inicio
Leia(salario)
Leia(dependentes)

imposto := salario * 0.275

Escreva(salario)
FimAlgoritmo

111

Rede e-Tec Brasil

6.
Algoritmo "Prog_7_6"
Var
valorAntigo, valorNovo, diferenca: Real
Inicio
Leia(valorAntigo)
Leia(valorNovo)

diferenca := diferenca * 100
Escreva(diferenca, "%")
FimAlgoritmo
7.
Algoritmo "Prog_7_7"
Var
raio, diametro, perimetro, area, volume: Real
Inicio
Leia(raio)
diametro := 2 * raio
perimetro := 2 * 3.1415 * raio
area := 3.1415 * raio * raio
volume := 4 / 3 * 3.1415 * raio * raio *raio
Escreval(diametro)
Escreval(perimetro)
Escreval(area)
Escreval(volume)
FimAlgoritmo
8.
Algoritmo "Prog_7_8"
Var
valocidadeKM, velocidadeMS: Real
Inicio
Leia(valocidadeKM)
velocidadeMS := valocidadeKM * 1000 / (60 * 60)
Escreval(velocidadeMS)
FimAlgoritmo

Rede e-Tec Brasil

112

Lgica de Programao

Aula 8
1.
Algoritmo "Prog_8_1"
Var
n1, n2: inteiro
Inicio
Leia(n1)
Leia(n2)
Se (n1 > n2) Entao
Escreva("O primeiro nmero maior")
Senao
Escreva("O segundo nmero maior")
FimSe
FimAlgoritmo

2.
Algoritmo "Prog_8_2"
Var
n: inteiro
Inicio
Leia(n)
Se (n mod 3 = 0) Entao
Escreva(" divisvel por 3")
Senao
Escreva("No divisvel por 3")
FimSe
FimAlgoritmo
3.
Algoritmo "Prog_8_3"
Var
lado1, lado2, lado3: inteiro
Inicio
Leia(lado1)
Leia(lado2)
Leia(lado3)


Escreva(" possvel criar um tringulo")
Senao
Escreva("No possvel criar um tringulo")
FimSe
FimAlgoritmo

113

Rede e-Tec Brasil

4.
Algoritmo "Prog_8_1"
Var
n: inteiro
Inicio
Leia(n)
Se (n % 3 = 0) E (n % 4 = 0) E (n % 5 <> 0) Entao
Escreva(" divisvel por 3 e 4 e no por 5")
Senao
Escreva("No obedece as regras")
FimSe
FimAlgoritmo
5.
Algoritmo "Prog_8_5"
Var
n1, n2, n3, aux: inteiro
Inicio
Leia(n1)
Leia(n2)
Leia(n3)
Se (n1 > n2) Entao
aux := n1
n1 := n2
n2 := aux
FimSe
Se (n2 > n3) Entao
aux := n2
n2 := n3
n3 := aux
FimSe
Se (n1 > n2) Entao
aux := n1
n1 := n2
n2 := aux
FimSe
Escreva(n1, n2, n3)
FimAlgoritmo

Rede e-Tec Brasil

114

Lgica de Programao

6.
Algoritmo "Prog_8_6"
Var
salarioBruto, irpf, inss, salarioLiquido: Real
Inicio
Leia(salarioBruto)
irpf := 0
inss := salarioBruto * 0.11
Se (inss> 400) Entao
inss := 400
FimSe
Se (salarioBruto>= 3000) Entao
irpf := salarioBruto * 0.275
Senao
Se (salarioBruto>= 1500) Entao
irpf := salarioBruto * 0.15
FimSe
FimSe

Escreval(irpf)
Escreval(inss)
Escreval(salarioLiquido)
FimAlgoritmo

Aula 9
1.
Algoritmo "Prog_9_1"
Var
numero: Inteiro
Inicio
Leia(numero)
Escolha numero
Caso 1
Escreva("Janeiro")
Caso 2
Escreva("Fevereiro")
Caso 3
Escreva("Maro")
Caso 4
Escreva("Abril")
Caso 5
Escreva("Maio")
Caso 6
Escreva("Junho")
Caso 7

115

Rede e-Tec Brasil

Escreva("Julho")
Caso 8
Escreva("Agosto")
Caso 9
Escreva("Setembro")
Caso 10
Escreva("Outubro")
Caso 11
Escreva("Novembro")
Caso 12
Escreva("Dezembro")
OutroCaso
Escreva("Ms Invlido")
FimEscolha
FimAlgoritmo
2.
Algoritmo "Prog_9_2"
Var
uf: caractere
Inicio
Leia(uf)
Escolha uf
Caso "RO"
Escreva("Porto Velho")
Caso "AC"
Escreva("Rio Branco")
Caso "AM"
Escreva("Manaus")
Caso "AP"
Escreva("Amap")
OutroCaso
Escreva("UF Inexistente")
FimEscolha
FimAlgoritmo

3.
Algoritmo "Prog_9_3"
Var
posicao: Inteiro
Inicio
Leia(posicao)
Escolha posicao
Caso 1
Escreva("Parabns, voc o melhor.")

Rede e-Tec Brasil

116

Lgica de Programao

&DVR
Escreva("Parabns, voc conseguiu.")
Caso 3
Escreva("Parabns, voc quase chegou l.")
OutroCaso
Escreva("Parabns, o importante competir.")
FimEscolha
FimAlgoritmo
4.
Algoritmo "Prog_9_4"
Var
n1, n2, resultado: Real
opcao: Caractere
Inicio
Leia(n1)
Leia(n2)
Leia(opcao)
Escolha opcao


Caso "*"
resultado := n1 * n2


Caso "/"

FimEscolha
Escreva(resultado)
FimAlgoritmo

Aula 10
1.
Algoritmo "Prog_10_1"
Var
valor, rendimento: Real
i, meses: inteiro
Inicio
Leia(valor)
Leia(rendimento)
Leia(meses)
Para i de 1 ate meses faca

FimPara
Escreva(valor)
FimAlgoritmo

117

Rede e-Tec Brasil

2.
Algoritmo "Prog_10_2"
Var
i, n, soma: inteiro
Inicio
Leia(n)
soma := 0
Para i de 1 ate n faca

FimPara
Escreva(soma)
FimAlgoritmo
3.
Algoritmo "Prog_10_3"
Var
i, n, fatorial: inteiro
Inicio
Leia(n)
fatorial := 1

fatorial := fatorial * i
FimPara
Escreva(fatorial)
FimAlgoritmo
4.

Algoritmo "Prog_10_4"
Var
i, a, b, potencia: inteiro
Inicio
Leia(a)
Leia(b)
potencia := 1
Para i de 1 ate b faca
potencia := potencia * a
FimPara
Escreva(potencia)
FimAlgoritmo

Rede e-Tec Brasil

118

Lgica de Programao

5.
Algoritmo "Prog_10_5"
Var
n, fatorial, i, j: inteiro
neper: real
Inicio
Leia(n)
neper := 1
Para i de 1 ate n faca
fatorial := 1
Para j de 1 ate i faca
fatorial := fatorial * i
FimPara

FimPara
Escreva(neper)
FimAlgoritmo

119

Rede e-Tec Brasil

Referncias
ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchida.
Fundamentos de programao de computadores: algoritmos, Pascal e C/C++. 2.
ed. So Paulo: Pearson Prentice Hall, 2005.
FORBELLONE, Andr Luiz Villar. Lgica de programao: a construo de algoritmos e
estrutura de dados. 3. ed. So Paulo: Brochura, 2005.
PUGA, Sandra; RISSETTI, Gerson. Lgica de programao e estruturas de dados:
com aplicaes em Java. 2. ed. So Paulo: Pearson Prentice Hall, 2009.
MANZANO, Jos Augusto N. G; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lgica para
desenvolvimento de programao de computadores. 22. ed. So Paulo: Erica, 2009.
SEBESTA, Robert W. Conceitos de linguagem de programao. 9. ed. Porto Alegre:
Bookman, 2011.
INFOPEDIA. Enciclopdias e Dicionrios Porto Editora. Dicionrio de Lngua Portuguesa
da Porto Editora com acordo ortogrfico. Disponvel em <.http://www.infopedia.
pt/lingua-portuguesa/lgica> Acesso em: 03 set. 2013.

Obras Consultadas
ARAJO, Everton Coimbra. Algoritmos: fundamento e prtica. 3. ed. So Paulo: Visual
Books, 2007.
CARBONI, Irenice de Ftima. Lgica de programao. So Paulo: Thomson, 2003.
GOODRICH, Michael T; TAMASSIA, Roberto. Estruturas de dados e algoritmos em
Java. 4. ed. Porto Alegre: Bookman, 2007.
LAFORE, R. Estruturas de dados e algoritmos em Java. [S.l.]: Cincia Moderna,
2005.
LOPES, Anita; GARCIA, Guto. Introduo programao: 500 algoritmos resolvidos.
Rio de Janeiro: Campus, 2002.
SOARES, Mrcio Vieira; GOMES, Marcelo Marques; SOUZA, Marco Antnio. Algoritmos
e Lgica de Programao. 2. ed. So Paulo: Cengage Learning, 2011.
SZWARCFITER, J. L.; MARKENZON, L. Estruturas de dados e seus algoritmos. 3. ed.
[S.l.]: LTC, 2010.

Rede e-Tec Brasil

120

Lgica de Programao

#JCMJPHSBmB#TJDB
CORMEN, Thomas H. et al. Algoritmos: teoria e prtica. 3. ed. So Paulo: rica, 2012.
FARRELL, Joyce. Lgica e design de programao. So Paulo: Cengage Learning,
2009.

121

Rede e-Tec Brasil

Currculo dos Professores-autores


Liluyoud Cury de Lacerda
Mestre em Cincias da Computao pela UniWFSTJEBEF'FEFSBMEF4BOUB$BUBSJOBo6'4$
Bacharel em Cincias da Computao pela UniWFSTJEBEF'FEFSBMEF4P$BSMPTo6'4$BS
Coordenador do curso de Sistemas de Informao da Faculdade de Cincias Administrativas e
5FDOPMPHJBo'"5&$30
Coordenador do curso de Sistemas para Internet da Faculdade de Cincias
"ENJOJTUSBUJWBTF5FDOPMPHJBo'"5&$30
$PPSEFOBEPSEPDVSTPEF1T(SBEVBPFN%FTFOWPMWJNFOUP8FCEB'BDVMEBEFEF$JODJBT"ENJOJTUSBUJWBTF5FDOPMPHJBo'"5&$30
Professor titular responsvel pelas disciplinas de Algoritmos, Padres de ProKFUPF*OUFMJHODJB"SUJmDJBMEB'BDVMEBEFEF$JODJBT"ENJOJTUSBUJWBTF5FDOPMPHJBo'"5&$30
Professor titular responsvel pelas disciplinas de Programao Orientada a
0CKFUPTF1SPKFUP*OUFHSBEPS**EB'BDVMEBEFEF4P.BUFVTo'"5&4.30
"OBMJTUB1SPHSBNBEPSEP.JOJTUSJP1CMJDPEP&TUBEPEF3POEOJB.130
Jos Marcio Benite Ramos
Mestre em Cincias da Computao pela Universidade Federal de Santa Catarina - UFSC.
Bacharel em Cincias da Computao pela Universidade Federal de So Carlos - UFSCar.
Professor titular responsvel pelas disciplinas de
Estrutura de Dados, Programao Web e Siste-

Rede e-Tec Brasil

122

Lgica de Programao

NBT $PNFSDJBJT EB 'BDVMEBEF EF $JODJBT "ENJOJTUSBUJWBT F 5FDOPMPHJB o


FATEC-RO.
Professor titular responsvel pela disciplina de Programao Web da FaculdaEFEF4P.BUFVTo'"5&4.30
Analista de sistemas e diretor da diviso esc. de Porto Velho do Servio FedeSBMEF1SPDFTTBNFOUPEF%BEPTo4&3130
Sara Luize Oliveira Duarte
Mestre em Gesto e Desenvolvimento Regional
pela Universidade de Taubat (UNITAU).
(SBEVBEB FN 1SPDFTTBNFOUP EF %BEPT F QT-graduada em Desenvolvimento Web e Metodologia do Ensino Superior, ambas pela FATEC-RO.
Professora titular responsvel pela disciplina Informtica Bsica para Trabalhos Acadmicos, ofertada na modalidade semiQSFTFODJBM OB'BDVMEBEFEF5FDOPMPHJB4P.BUFVTo'"5&4.30
4VQFSWJTPSBEF5FDOPMPHJBEP-BCPSBUSJPEF&EVDBPB%JTUODJB-&%F
Supervisora das salas virtuais da modalidade semipresencial da FATESM.
Professora titular responsvel pelas disciplinas TCC e Estgio Supervisionado
*F**EB'BDVMEBEFEF$JODJBT"ENJOJTUSBUJWBTF5FDOPMPHJBo'"5&$30
Professora conteudista de alguns guias de estudo, como Informtica Bsica
QBSB5SBCBMIPT"DBENJDPT .FUPEPMPHJBEB1FTRVJTB$JFOUmDB $PNP&Ttudar na EAD, Informtica Bsica, entre outros.

123

Rede e-Tec Brasil

Anda mungkin juga menyukai