Lgica de ProgramaoLiluyoud Cury de Lacerda
Jos Marcio Benite Ramos
Sara Luize Oliveira Duarte
Cuiab-MT2014
Presidncia da Repblica Federativa do Brasil
Ministrio da Educao
4FDSFUBSJBEF&EVDBP1SPmTTJPOBMF5FDOPMHJDB%JSFUPSJBEF*OUFHSBPEBT3FEFTEF&EVDBP1SPmTTJPOBMF5FDOPMHJDB
Equipe de Reviso
Universidade Federal de Mato Grosso UFMT
Coordenao InstitucionalCarlos Rinaldi
Coordenao de Produo de Material Didtico ImpressoPedro Roberto Piloni
Designer EducacionalNeusa Blasques
IlustraoTatiane Hirata
DiagramaoTatiane Hirata
Reviso de Lngua PortuguesaVernica Hirata
Reviso FinalNeusa Blasques
Instituto Federal de Educao, Cincia e Tecnologia de Rondnia - IFRO
Campus Porto Velho Zona Norte
Direo-GeralMiguel Fabrcio Zamberlan
Direo de Administrao e PlanejamentoGilberto Laske
Departamento de Produo de EaDAridne Joseane Felix Quintela
Coordenao de Design Visual e Ambientes de Aprendizagem
Rafael Nink de Carvalho
Coordenao da Rede e-TecRuth Aparecida Viana da Silva
1SPKFUP(SmDPRede e-Tec Brasil / UFMT
Lgica de Programao - Informtica para Internet
Ficha Catalogrfica Elaborada por Almira de Arajo Medeiros CRB1 2.327)
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.
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
5Prezado(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&15QBSBBQPQVMBPCSBTJMFJSBpropiciando 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 UDOJDPcomo os institutos federais, as secretarias de educao dos estados, as universidades, as es-
DPMBTFDPMHJPTUFDOPMHJDPTFP4JTUFNB4
A educao a distncia no nosso pas, de dimenses continentais e grande diversidade re-
gional 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
EJTUBOUFTHFPHSmDBPVFDPOPNJDBNFOUFEPTHSBOEFTDFOUSPT
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
DVSTPTTPPGFSUBEPTQFMBTJOTUJUVJFTEFFEVDBPQSPmTTJPOBMFPBUFOEJNFOUPBPFTUVEBO-te realizado tanto nas sedes das instituies quanto em suas unidades remotas, os polos.
0TQBSDFJSPTEB3FEFF5FD#SBTJMBDSFEJUBNFNVNBFEVDBPQSPmTTJPOBMRVBMJmDBEBoJO-UFHSBEPSBEPFOTJOPNEJPFEBFEVDBPUDOJDBoDBQB[EFQSPNPWFSPDJEBEPDPNDB-pacidades 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
Apresentao Rede e-Tec Brasil
Rede e-Tec Brasil5
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: JOEJDBBEFmOJPEFVNUFSNPQBMBWSBPVFYQSFTTPutilizada no texto.
Mdias integradas: remete o tema para outras fontes: livros,
mMNFTNTJDBT 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.
3FnJUBNPNFOUPEFVNBQBVTBOBMFJUVSBQBSBSFnFUJSFTDSFWFSsobre pontos importantes e/ou questionamentos.
Indicao de cones
Rede e-Tec Brasil7
Contents
Apresentao Rede e-Tec Brasil 5
Indicao de cones 7
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
Rede e-Tec Brasil9
Caro(a) estudante,
Voc est prestes a entrar em um mundo fantstico onde homens e mqui-
nas 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*$Tou, simplesmente, TI.
Tecnologias de Informao um termo abrangente que engloba vrias re-
as, e neste caderno vamos abordar uma das mais importantes, que a Pro-
gramao.
"JNQPSUODJBEFTTBSFBKVTUJmDBEBQFMPGBUPEFBMHJDBEFQSPHSBNBPTFSBCBTFEFUPEBBJOGPSNUJDB1PSNFJPEFMBPTDJSDVJUPTMHJDPTTPQSP-gramados, 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 -JO-guagem de Programao, como fazer com que o computador execute os
DPNBOEPTRVFEFTFKBNPTQBSBFYFDVUBSVNBUBSFGBFTQFDmDBFQSJODJQBM-mente, entender como todo esse processo.
"-HJDBEF1SPHSBNBPQPEFTFSDPOTJEFSBEBDPNPBQPSUBEFFOUSBEBpara esse mundo fantstico que permite uma profunda interao entre o ho-
NFNFBNRVJOBOPDBTPPDPNQVUBEPS4FOEPBTTJNmDBGDJMFOUFOEFSQPSRVFNVJUPTmDBNBQBJYPOBEPTFNBSBWJMIBEPTDPNFTTBSFBFTQFDmDBda informtica.
Bons estudos.
Professores-autores.
"EJTDJQMJOBEF-HJDBEF1SPHSBNBPDPNQSFFOEFPGVOEBNFOUPUFSJDPFprtico necessrio para desenvolver programas, apresentando as principais
estruturas de dados e de linguagem necessrias para a resoluo de proble-
mas computacionais.
As aulas esto estruturadas de forma a capacit-lo(a) na construo de al-
HPSJUNPTFQSPHSBNBTBQBSUJSEPFOUFOEJNFOUPEBMHJDBQBSBSFTPMVPEFproblemas de complexidade limitada.
0PCKFUJWPEBEJTDJQMJOBGB[MPBDPNQSFFOEFSPTNFDBOJTNPTMHJDPTFmatemticos da programao, relacionando problemas e elaborando solu-
es atravs do uso de metodologias e ferramentas que envolvam os ele-
mentos bsicos da construo de algoritmos e programas de computador.
Para alcanar esse objetivo, a disciplina foi estrutura em dez aulas. A primei-
SBBCPSEBBMHJDBOPEJBBEJBFOBJOGPSNUJDB/BTFHVOEBUSBUBSFNPTEPTalgoritmos e as formas de represent-lo. Na terceira aula, mostraremos as
ferramentas usadas para a criao dos algoritmos. J na quarta aula, discor-
SFSFNPTTPCSFBFTUSVUVSBCTJDBEFVNBMHPSJUNPFNQTFVEPDEJHPDPNVisualG, e em Java com Eclipse. Na sequncia, veremos o conceito de vari-
veis, sua nomenclatura e os tipos primitivos de dados. Na sexta aula, estuda-
remos os conceitos de operadores e expresses, como empregar operadores
BSJUNUJDPT SFMBDJPOBJT F MHJDPT QBSB DSJBS FYQSFTTFT DPNQMFYBT F mOBM-NFOUFOBTRVBUSPMUJNBTBVMBT USBUBSFNPTEBTFTUSVUVSBTEF TFRVODJBdeciso, seleo e repetio.
1PSmNQPEFNPTEJ[FSRVFVNQSPHSBNBOBEBNBJTEPRVFJOTUSVFTQBSBarmazenar, processar e recuperar dados em computador, e as tcnicas usadas
QBSBFTDSFWFSFTTBTJOTUSVFTJOnVJEJSFUBNFOUFOBRVBMJEBEFEPQSPHSBNB
FTTFODJBMRVFWPDEFEJRVFVNBQBSDFMBTJHOJmDBUJWBEFTFVUFNQPQBSBBTTJNJMBS UPEPPDPOUFEPBCPSEBEPQPJTFTUBEJTDJQMJOBBCBTFQBSBBTQSYJNBTEJTDJQMJOBTSFMBDJPOBEBTBQSPHSBNBPFNBJTBJOEBBQPSUBEFentrada do mundo das Tecnologias de Informao e Comunicao.
Bons estudos!
Apresentao da Disciplina
Rede e-Tec Brasil11
Lgica de ProgramaoRede e-Tec Brasil 12
Aula 1. Lgica 15
0RVFMHJDB 15-HJDBOPEJBBEJB 16-HJDBOB*OGPSNUJDB 17
Aula 2. Algoritmos 21
0RVFVNBMHPSJUNP 212.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 34Aula 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
Rede e-Tec Brasil13
Sumrio
Aula 8. Estruturas de deciso 71
8.1 Introduo 71
8.2 Tipos de estruturas de deciso 71
Aula 9. Estruturas de seleo 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 121Currculo dos Professores-autores 122
Rede e-Tec Brasil 14
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 pro-
blemas. No decorrer da aula, iremos apresentar os conceitos fundamentais
QPSUSTEFTTBSB[PRVFBQBSUJSEFBHPSBDIBNBSFNPTEFMHJDB7FSFNPTtambm como aplic-la na resoluo de problemas computacionais.
1.1 O que lgica?Segundo o dicionrio da Porto Editora, a palavra lgica originria da pala-
vra grega logikRVFTJHOJmDBiBBSUFEFSBDJPDJOBSw%JTQPOWFMFNIUUQwww.infopedia.pt/lingua-portuguesa/> Acesso em: 03 set. 2013.
"MHJDBQPEFTFSPCUJEBBQBSUJSEPFODBEFBNFOUPSFHVMBSPVDPFSFOUFEBTideias e das coisas.
&NPVUSBTQBMBWSBTBMHJDBTFQSFPDVQBDPNBNBOFJSBRVFPTQFOTBNFO-tos 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:
Rede e-Tec BrasilAula 1 - Lgica 15
Aula 1. Lgica
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 exem-
plo:
Podemos perceber, agora, que, a partir de uma srie de premissas (anlise de
fatos), podemos concluir algo verdadeiro.
0FYFNQMPBOUFSJPSJEFOUJmDBVNTJMPHJTNPRVFSFQSFTFOUBVNBSHVNFOUPcomposto por duas premissas e uma concluso. Estabelece uma relao em
RVFNFTNP RVF IBKB VNB BQBSFOUF DPFSODJB OP FODBEFBNFOUP MHJDPpode ou no ser vlida.
&OUPQPEFNPTEJ[FSRVFPPCKFUJWPEBMHJDBEFEV[JSBOBMJTBSGPSNBMJ[BSBSHVNFOUPTFWFSJmDBSTVBWBMJEBEFDPNCBTFOBSB[P
1.2 Lgica no dia a diaFaz parte da natureza humana analisar e executar aes passo a passo para
BSFBMJ[BPEFTVBTBUJWJEBEFToOBNBJPSJBEBTWF[FTOFNQFSDFCFNPTRVFestamos pensando logicamente.
O ordenamento natural do pensamento para a execuo de uma tarefa
DIBNBEPEFSBDJPDOJPMHJDP$PNPFYFNQMPQPEFNPTDJUBS
Na ltima prova estudei apenas duas horas e me dei bem. Logo, se estudar duas horas para a prova de hoje, certa-mente me darei bem tambm.
O autor do livro um professor. O professor trabalha muito. Logo, o autor do livro trabalha muito..
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.
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.
Fonte: www.ahistoria.com.br
Lgica de ProgramaoRede e-Tec Brasil 16
Perceba, que mesmo inconscientemente, tomamos decises e realizamos
BFTTFHVJOEPVNBPSEFNMHJDBQBSBDPOTFHVJSPRVFRVFSFNPT"DBQBDJ-dade 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"MHJDBQPEFTFSBQMJDBEBFNRVBMRVFSDJODJBUBMDPNP'JMPTPmB1TJDPMP-gia, Sociologia, Matemtica, Fsica etc., mas o nosso foco como aplic-la
OB*OGPSNUJDBNBTFTQFDJmDBNFOUFOBDPOTUSVPEFQSPHSBNBT
0TTFSFTIVNBOPTUNBDBQBDJEBEFEFFYQSFTTBSBMHJDBBUSBWTEBQBMBWSBGBMBEBPVFTDSJUBPCFEFDFOEPTSFHSBTHSBNBUJDBJTEBMJOHVBHFNVTBEBono nosso caso, o portugus.
Entretanto, a linguagem natural pode ser um tanto cansativa, repetitiva, am-
bgua 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 RVFQPTTJCJMJUB BQMJDBS PNFTNP SBDJPDOJP MHJDP B QSPCMFNBT EJGFSFOUFT 1PSexemplo:
Substituindo Joo e estudioso, pelas variveis X e Y, temos que:
Perceba que X e Y, por serem termos genricos, podem ser aplicados em
outros contextos:
Joo passou no vestibular.Todos que passam no vestibular so estudiosos.Logo, Joo estudioso.
X passou no vestibular.Todos que passam no vestibular so Y.Logo, X Y.
Para X = Jos e Y = inteligente, temos:Jos passou no vestibular.Todos que passam no vestibular so inteligentes.Logo, Jos inteligente.
Rede e-Tec BrasilAula 1 -Lgica 17
Ou,
O conceito de variveis ser amplamente discutido na Aula 5.
Para a resoluo de problemas computacionais, usamos esse tipo de racio-
cnio, em que informaes a serem analisadas so representadas por termos
genricos (variveis), os quais posteriormente sero substitudos por valores
FTQFDmDPTQPTTJCJMJUBOEPBSFTPMVPEFEJWFSTPTQSPCMFNBTDPNBNFTNBMHJDB
Resumo7PDUFWFPQSJNFJSPDPOUBUPDPNPTDPODFJUPTEFMHJDBFDPOTUBUPVRVFFMB a base para a resoluo de problemas computacionais. Vimos, tambm,
que, para realizarmos uma atividade com sucesso (resoluo de um proble-
ma), executamos vrios passos de acordo com uma ordem, seguindo um
SBDJPDOJP MHJDP SBDJPDOJP FTTF RVF QPEF TFS SFQSFTFOUBEP GPSNBMNFOUFpara resolver outros problemas semelhantes.
Atividades de aprendizagem1. 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 mostra-
do nesta aula.
4. %FBDPSEPDPNPTTJMPHJTNPTBTFHVJSBTTJOBMFBBmSNBPRVFBQSFTFOUFuma concluso vlida:
*o(BUPTTPNBNGFSPT.BNGFSPTOPCPUBNPWP-PHP
a) Todos os mamferos so gatos.
Para X = Pedro e Y = sortudo, temos:Pedro passou no vestibular.Todos que passam no vestibular so sortudos.Logo, Pedro sortudo.
Lgica de ProgramaoRede e-Tec Brasil 18
b) Todos os gatos no botam ovo.
c) 0THBUPTUNNBJTEFVNmMIPUF
**o)FYHPOPTTPmHVSBTRVFQPTTVFNOHVMPT5FNPTVNBmHVSBRVFno tem ngulo. Logo:
a)&TTBmHVSBQPEFTFSVNBMJOIB
b)&TTBmHVSBOPVNIFYHPOP
c) No possvel tirar concluses.
***o7PDFTUEJSJHJOEPTVBNPUP4FGSFBSSBQJEBNFOUFVNDBSSPCBUFSem 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/PDVSJPTPRVFFTUFKBNPTVTBOEPWFTUJEPTEFDPSFTCSBODBSPTBFWJP-MFUBFNCPSBOFOIVNBEFOTFTUFKBVTBOEPVNWFTUJEPEFDPSJHVBMBPTFVQSQSJPOPNF
o6NBTJNQMFTDPJODJEODJBoSFTQPOEFVBTFOIPSBDPNWFTUJEPWJPMFUB
2VBMBDPSEPWFTUJEPEFDBEBTFOIPSB
6. Analise e descreva uma maneira de mover os discos do estado inicial para
PFTUBEPmOBMDPOTJEFSBOEPRVFTQPTTWFMNPWJNFOUBSVNEJTDPQPSWF[FFNIJQUFTFBMHVNBVNEJTDPNBJPSQPEFSmDBSTPCSFVNNFOPS
Rede e-Tec BrasilAula 1 -Lgica 19
Fonte: autores
Caro(a) estudante,
Finalizamos a nossa primeira aula. Nela, trabalhamos conceitos importantes
QBSBPFOUFOEJNFOUPEBTQSYJNBT&TQFSBNPTRVFFTUFKBNPUJWBEPBQBSBTFHVJSFNGSFOUF%BOEPDPOUJOVJEBEFBPTFTUVEPTOBQSYJNBBVMBUSBUB-SFNPTEFVNBTTVOUPNVJUPJNQPSUBOUFQBSBBMHJDBEFQSPHSBNBPPTalgoritmos. Vamos l!
Estado inicial Estado final
Lgica de ProgramaoRede e-Tec Brasil 20
Objetivos:
t DPODFJUVBSBMHPSJUNPT
t JEFOUJmDBS PT UST UJQPT EF BMHPSJUNPT FTUVEBEPT TVBT WBOUB-HFOTFEFTWBOUBHFOTF
t FTDSFWFSBMHPSJUNPOBTGPSNBTEFEFTDSJPOBSSBUJWBnVYPHSB-NBFQTFVEPDEJHP
Aula 2. Algoritmos
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 computa-
cionais. 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 algoritmoQPEFTFSEFmOJEPDPNPVNBTFRVODJBEFQBTTPTRVFWJTBNBUJOHJSVNPCKFUJWPCFNEFmOJEP4F-HVOEPPEJDJPOSJP1PSUP&EJUPSBPTFOUJEPNBUFNUJDPFMHJDPEBQBMBWSBalgoritmoVNDPOKVOUPEFSFHSBTCFNEFmOJEBTQBSBSFTPMWFSVNQSPCMF-NBDPNVNONFSPmOJUPEFQBTTPT
Os algoritmos so amplamente utilizados em disciplinas ligadas rea de
cincias exatas, por exemplo:
A descrio dessa resoluo de forma genrica o que chamamos de algo-
ritmo.
possvel descrever a resoluo de uma equao de 2 grau (Bhaskara) em uma sequncia de passos que levam ao resul-tado esperado.
Rede e-Tec BrasilAula 2 - Algoritmos 21
Geralmente, utilizamos o pensamento algortmico de maneira intuitiva. Por
exemplo, quando vamos trocar uma lmpada, que uma tarefa corriqueira
FTFNNVJUBEJmDVMEBEFOFDFTTSJPRVFTJHBNPTVNBTSJFEFQBTTPTQBSBatingir o objetivo, que poderia ser:
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 im-
portante, 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$PNQBSFDPNPTQBTTPTRVFWPDGBSJBFWFSJmRVFTFTPJHVBJTCFNpossvel que os algoritmos sejam diferentes.
2.2 Tipos de algoritmos6NBMHPSJUNPOBEBNBJTEPRVFVNBMJOIBEFSBDJPDOJPMHJDPRVFQPEFTFSEFTDSJUBEFWSJBTNBOFJSBTTFKBEFGPSNBUFYUVBMHSmDBFBUNFTNPoralmente.
Apesar das diversas maneiras de se representar um algoritmo, segundo As-
cencio e Campos (2005), os trs tipos mais utilizados so:
t EFTDSJPOBSSBUJWB
t nVYPHSBNB
t QTFVEPDEJHP
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.
Lgica de ProgramaoRede e-Tec Brasil 22
2.2.1 Descrio narrativaA descrio narrativa consiste em descrever a soluo do problema utilizan-
do 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
2.2.2 Fluxograma0nVYPHSBNBVNBSFQSFTFOUBPHSmDBEFVNBMHPSJUNP6UJMJ[BBMHVOTTNCPMPTQSEFmOJEPTNPTUSBEPTOB5BCFMBQBSBJEFOUJmDBSPTQBTTPTBserem 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.
1BTTPSFDFCFSPQSJNFJSPFTFHVOEPONFSP1BTTPTPNBSPTEPJTONFSPTPasso 3: mostrar o resultado obtido na soma.
Rede e-Tec BrasilAula 2 - Algoritmos 23
Representa entrada de dados.
Representa sada de dados.
Representa uma tomada de uma deciso.
Fonte: ASCENCIO; CAMPOS, 2005
Vantagens:
"MHJDBVTBEBNBJTQSFDJTBOPEBOEPNBSHFNBNMUJQMBTJOUFSQSFUBFTFDPOTFRVFOUFNFOUFmDBNBJTGDJMBNJHSBPEPBMHPSJUNPQBSBVNBMJO-guagem de programao real.
Desvantagens:
muito mais trabalhoso fazer um desenho do que simplesmente escrever,
mesmo considerando o auxlio de programas especializados. Alm disso, a
SFQSFTFOUBPHSmDB EPT BMHPSJUNPT UFOEF B mDBSNVJUP FYUFOTB F DPO-TFRVFOUFNFOUFNBJTEJGDJMEFTFSBOBMJTBEBFNPEJmDBEBJNBHJOFSFGB[FSUPEPPEFTFOIPQPSDBVTBEFVNBNVEBOBOBMHJDB
Exemplo:
Vamos descrever o algoritmo que some dois
ONFSPTOBGPSNBEFnVYPHSBNB
Fonte: Autores.
Lgica de ProgramaoRede e-Tec Brasil 24
2.2.3 Pseudocdigo0QTFVEPDEJHPEFTDSFWFBTPMVPEFVNQSPCMFNBBMHPSUNJDPEFNBOFJSBUFYUVBMFQPSNFJPEFSFHSBTQSFEFmOJEBT&MFVUJMJ[BVNBMJOHVBHFNFTUSVUV-rada que lembra o Pascal, uma linguagem de programao que j foi muito
usada.
"QBMBWSBQTFVEPDEJHPTJHOJmDBiGBMTPDEJHPw"MHVOTBVUPSFTDIBNBNPQTFVEPDEJHPEFportugus estruturado ou portugol, bem sugestivo, j que podemos consider-lo como uma linguagem intermediria entre a
linguagem natural e a de programao.
Vantagens:
"MNEFBTJOUBYFTFSCFNQSYJNBEBMJOHVBHFNOBUVSBMBNJHSBPEFVNQTFVEPDEJHPQBSBVNBMJOHVBHFNEFQSPHSBNBPRVBTFRVFJNF-diata.
Desvantagens:
1TFVEPDEJHPTBTTJNDPNPMJOHVBHFOTEFQSPHSBNBPQPTTVFNBMHVNBTregras (mesmo que sejam bem mais simples do que a de uma linguagem de
programao completa). necessrio aprend-las e aplic-las corretamente.
Exemplo:
7BNPTEFTDSFWFSVNQTFVEPDEJHPRVFTPNFEPJTONFSPT
ResumoNo desenvolvimento desta aula, voc teve a oportunidade de aprender o
que um algoritmo. Discorremos sobre os tipos de algoritmo. Os trs mais
VUJMJ[BEPTTPBEFTDSJPOBSSBUJWBPnVYPHSBNBFPQTFVEPDEJHP.PTUSB-mos tambm as vantagens e as desvantagens de cada um desses algoritmos.
Esperamos que voc esteja apto a escrev-los ou desenh-los, mesmo sem
ALGORITMODECLARE N1, N2, SOMA: NUMRICO;ESCREVA Digite dois nmeros;LEIA N1, N2;ESCREVA O resultado da soma igual a: , SOMA;FIM_ALGORITMO.
Rede e-Tec BrasilAula 2 - Algoritmos 25
ter conhecimento sobre todos os recursos e regras existentes.
Agora hora de praticar. Vamos l!
Atividades de aprendizagem1. 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.'BBVNBMHPSJUNPOBGPSNBEFinVYPHSBNBwRVFNPTUSFPTBMSJPUPUBMEFVNGVODJPOSJPEBEPPTBMSJPRVFFMFSFDFCFPONFSPEFmMIPTRVFQPTTVJFTBCFOEPRVFQBSBDBEBmMIPFMFSFDFCFVNBBKVEBEFDVTUPEF3
4.'BBVNBMHPSJUNPOBGPSNBEFiQTFVEPDEJHPwRVFDBMDVMFPDVCPEFVNEFUFSNJOBEPONFSPJOGPSNBEP
Caro(a) estudante,
Esperamos que tenha achado interessante o estudo dos algoritmos, pois
FMFTGBDJMJUBNNVJUPBTPMVPEFBMHVOTQSPCMFNBT7BNPTDPOUJOVBS "JOEBUFNPTNVJUPBTTVOUPMFHBMQBSBFTUVEBS/BQSYJNBBVMBBCPSEBSFNPTBTferramentas de criao de algoritmos.
Lgica de ProgramaoRede e-Tec Brasil 26
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*%&DPNQMFUBNBTPTVmDJFOUFQBSBBQSFOEFSFexercitar 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 IntroduoQualquer dispositivo eletrnico que manipula informaes, seja de pequeno
QPSUFDPNPVNDFMVMBSEFNEJPQPSUFDPNPVNDPNQVUBEPSdesktopPVde grande porte, como os servidores de datacenters, todos eles executam
basicamente trs aes:
t FOUSBEBEFEBEPT
t QSPDFTTBNFOUPEFEBEPT
t sada de dados.
Rede e-Tec BrasilAula 3 - Ferramentas de criao de algoritmos 27
Aula 3. Ferramentas de criao de algoritmos
Objetivos:
t JEFOUJmDBSPTDPNBOEPTEFFOUSBEBQSPDFTTBNFOUPFTBEBEFEBEPTF
t EFTFOWPMWFS BMHPSJUNPT DPN QTFVEPDEJHPT7JTVBM( F +BWBEclipse.
Como esses dispositivos so controlados essencialmente por algoritmos es-
QFDmDPTQBSBDBEBDFOSJPPVGVOPQPEFNPTEJ[FSRVFVNBMHPSJUNPcomposto por comandos de entrada de dados, comandos de processamento
de dados e comandos de sada de dados.
.BTPRVFTFSJBOBQSUJDBFOUSBEBQSPDFTTBNFOUPFTBEBEFEBEPT
t Entrada de dados quando o computador recebe dados do mundo externo, como, por exemplo, do teclado, do microfone, da webcam ou
EFNVJUPTPVUSPT0BMHPSJUNPBSNB[FOBFTTBTJOGPSNBFTOBNFNSJBpara 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 JOGPSNB-PRVFQPEFTFSVUJMJ[BEPQPTUFSJPSNFOUFUBOUPQFMPQSQSJPBMHPSJUNPquanto 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 moni-
tor, 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 QFSHVOUBDPNPDSJMPTEFNBOFJSBFmDJFOUF
3.2 Plataforma de estudoFoi 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.
Lgica de ProgramaoRede e-Tec Brasil 28
" KVTUJmDBUJWBQBSBFTTBTFTDPMIBTRVFPQTFVEPDEJHPQPTTVJ B TJOUBYFmais amigvel para principiantes, e o Java , hoje, um padro de programa-
o no mercado.
3.2.1 Desenvolvendo algoritmos com pseudocdigos e VisualG1BSBEFTFOWPMWFSQTFVEPDEJHPTCBTUBVNQBQFMVNMQJTFNVJUB MHJDBEFQSPHSBNBP&OUSFUBOUPOPQPTTWFMiFYFDVUBSwFTTFQTFVEPDEJHPEJmDVMUBOEPBTTJNUFTUBSBMHJDBVTBEB
Uma alternativa usar um programa desenvolvido no Brasil que usa a lngua
QPSUVHVFTBQBSBEFTDSFWFSPQTFVEPDEJHPRVFP7JTVBM(
Esta a janela do VisualG
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 comandosoUFNUPEBTBTPQFTEJTQPOWFJTOPQSPHSBNBdesde salvar e recuperar algoritmos at execut-los e test-los.
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.
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
Figura 3.1 - Janela do VisualGFonte: Autores.
Rede e-Tec BrasilAula 3 - Ferramentas de criao de algoritmos 29
t Botes de atalhooDPNPPQSQSJPOPNFKEJ[TPBUBMIPTQBSBPTprincipais comandos do menu.
t rea de trabalhooP MPDBMPOEFFTDSFWFNPTOPTTPTBMHPSJUNPTFNQTFVEPDEJHPQPSUVHPM
t Janela de variveisoNPTUSBUPEBTBTWBSJWFJTRVFFTUPTFOEPVTBEBTno algoritmo.
t Janela de execuooTFSWFQBSBNPTUSBSBTBEBEPTJTUFNB
3.2.2 Desenvolvendo algoritmos com Java e EclipseAo se criar um algoritmo para solucionar determinado problema, o objetivo
poder aplic-lo na vida real, em situaes reais. Para tanto, faz-se necess-
rio transcrever o algoritmo para uma linguagem de programao completa.
"MJOHVBHFNFTDPMIJEBQBSBFTUFDBEFSOPPQTFVEPDEJHPDPN7JTVBM(mas o Java, embora mais complexo, o mais usado e apresenta muitos de-
UBMIFTRVFQPSTJTTKEBSJBNVNMJWSPOBWFSEBEFFYJTUFNJONFSPTMJWSPTdedicados 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
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
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/
Figura 3.2 - Janela do EclipseFonte: Autores.
Lgica de ProgramaoRede e-Tec Brasil 30
Perceba que a interface do Eclipse bem mais complexa, com muitas op-
FTFKBOFMBTJTTPQPSRVFP&DMJQTFVNBGFSSBNFOUBEFVTPQSPmTTJPOBMque 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 ape-
nas algumas reas do mesmo:
t Menu de comandosoUFNUPEBTBTPQFTEJTQPOWFJTOPQSPHSBNBdesde salvar e recuperar projetos em Java at execut-los e test-los.
t Botes de atalhooDPNPPQSQSJPOPNFKEJ[TPBUBMIPTQBSBPTprincipais comandos do menu.
t rea de trabalhooPMPDBMPOEFFTDSFWFNPTPTQSPHSBNBTFN+BWB
t Explorador de arquivosoQFSNJUFHFSFODJBSUPEPTPTBSRVJWPTRVFGB-zem parte do meu projeto de software (isso mesmo, um programa em
Java pode ser composto por vrios arquivos).
t Janela de execuooTFSWFQBSBNPTUSBSBTBEBEPTJTUFNBVTVBM-mente chamado de console ou output.
Para cada problema dado, a partir de agora vamos resolv-los de duas for-
NBTDPNBTEPCSBEJOIBT7JTVBM(QTFVEPDEJHPF&DMJQTF+BWB
ResumoNo decorrer da aula, tratamos das ferramentas que iremos usar para criar
nossos algoritmos ao longo da disciplina. Desenvolvemos algoritmos com
QTFVEPDEJHPTVTBOEPPWJTVBM(FFN+BWBDPNP&DMJQTFVNBGFSSBNFOUBEFVTPQSPmTTJPOBMRVFQFSNJUFEFTEFBDSJBPEFQSPHSBNBTCFNTJNQMFTat os mais complexos.
Agora, vamos s atividades.
Atividades de aprendizagem1. Alm das IDEs citadas na aula, pesquise mais quatro usadas para progra-
NBPFJEFOUJmRVFBTMJOHVBHFOTRVFFMBTVUJMJ[BN
2. Instale as IDEs citadas nesta aula e escreva um algoritmo em cada uma
Para conhecer mais sobre o Eclipse, assista ao vdeo:http://www.youtube.com/watch?v=Vf1AiGlaRQQ
Rede e-Tec BrasilAula 3 - Ferramentas de criao de algoritmos 31
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.%TVBPQJOJPTPCSFFTDSFWFSBMHPSJUNPTFNQTFVEPDEJHPTFFNVNBlinguagem de programao verdadeira. Discorra sobre sua experincia nas
atividades anteriores.
Caro(a) estudante,
&OUPHPTUPVEP7JTVBM(FEP&DMJQTF $PNFTTFTEPJTQSPHSBNBTWPDJSfazer coisas incrveis. Na Aula 4, mostraremos as estruturas bsicas de um
BMHPSJUNP$POUJOVFFTUVEBOEPDPNBmODPOPTTBTBVMBT"UBQSYJNB
Lgica de ProgramaoRede e-Tec Brasil 32
Caro(a) estudante,
"QBSUJSEFBHPSBWBNPTDPNFBSBDSJBSOPTTPTQSQSJPTBMHPSJUNPTFTQBPonde 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 IntroduoOs algoritmos so feitos para serem executados por mquinas, e sabemos
que as mquinas ainda esto muito longe de ter uma inteligncia compa-
rada do ser humano.
Voc, ao estabelecer uma conversa com outra pessoa, usando a lngua por-
tuguesa, pode no seguir todas as regras gramaticais que ela exige, mas,
mesmo assim, o dilogo acontece.
Veja o exemplo:
/FTTFFYFNQMPEFDPNVOJDBPFOUSFEVBTQFTTPBTNFTNPDPNPTJONF-ros erros (grias, concordncia, abreviaes etc.), o dilogo aconteceu, isto ,
os dois se entenderam.
o&B+PPUVEPFNSJCB o$BSBUVEPOBCPBo2VBOEPOTWBJKPHBSBRVFMBQFMBEB o.BOPWBNVNBSDBSOFTTFmNEFTFNBOBBHPSBDPNBUVSNB
Rede e-Tec BrasilAula 4 - Estrutura bsica de um algoritmo 33
Aula 4. Estrutura bsica de um algoritmo
Objetivo:
t criar uma estrutura bsica para desenvolver um algoritmo em QTFVEPDEJHPFVNBMHPSJUNPFN+BWB
O algoritmo uma maneira de se falar com o computador, mas, nessa
comunicao, um provido de inteligncia (o ser humano, no caso, o pro-
gramador) e o outro... bem, vamos dizer que ainda no temos um HAL 9000
nossa disposio.
QPSJTTPRVFFTTBDPNVOJDBPEFWFTFSCFNEFmOJEBTFNFSSPTFNVNBlinguagem bem limitada e simples (poucas regras, pequeno vocabulrio).
$BEB MJOHVBHFNEF QSPHSBNBP UFN TVBT QSQSJBT SFHSBT F TFV QSQSJPvocabulrio, mas elas, em sua maioria, so muito semelhantes.
Na comunicao com o computador, isto , na criao do algoritmo, se voc
FSSBSVNBOJDBQBMBWSBVTBSVNBFTUSVUVSBFSSBEBPVBUNFTNPFTRVFDFSuma vrgula, o computador no vai entender, gerando erros na hora de com-
QJMBSUSBEV[JSEPDEJHPGPOUFQBSBPDEJHPRVFBNRVJOBFOUFOEFPVOBhora de executar.
Por essa razo, nesta aula, vamos explicar detalhadamente essa estrutura
de comunicao com o computador, que, como j dissemos antes, por ser
MJNJUBEBFTJNQMFTmDBGDJMEFBQSFOEFSoTOPTFFTRVFDFSEPTEFUBMIFT
$PNPEFmOJSVNBMHPSJUNP6NBMHPSJUNPNOJNPUFNQFMPNFOPTVNOPNFVNBEFTDSJPBJEFOUJm-DBPEPJODJPFEPmNEPNFTNPFMHJDPVNDPNBOEPVNQBTTPBTFSexecutado), pelo menos.
4.2.1 Nomenclatura de algoritmosPara 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
Lgica de ProgramaoRede e-Tec Brasil 34
t /PJOJDJBSPOPNFDPNVNONFSP
t Evitar uso de acentos e cedilhas.
A seguir temos alguns exemplos de nomes de algoritmos vlidos e no v-
lidos:
TABELA 4.1 - Exemplos de nomes de algoritmos
Objetivo do algoritmo Nome no vlido Nome vlido
Calcular mdia das notas Calcular mdia CalcularMedia
Verificar a maior nota Verificar maior nota VerificarMaiorNota
Verificar endereo Verificar-Endereo VerificarEndereco
Somar dois nmeros 2NmerosSoma Soma2Numeros
Calcular $ da venda Calcular$Venda CalcularValorVenda
Mostrar Al Mundo na tela AlMundo AloMundo
Fonte: Autores.
"TJOUBYFVTBEBQFMPQTFVEPDEJHPFQFMP+BWBQBSBEFmOJSPOPNFEFVNBMHPSJUNPGPJWJTUPOBTmHVSBTFSFTQFDUJWBNFOUFNBTWBNPTSFW--los lado a lado agora:
5"#&-"%FmOJOEPPOPNFEPBMHPSJUNPPseudocdigo Java
algoritmo "AloMundo" public class AloMundo
Fonte: Autores.
4.2.2 Escopo de um algoritmo5PEPBMHPSJUNPUFNJODJPFmN1BSBJEFOUJmDBSFTTBTQBSUFTVTBNPTQBMB-vras ou smbolos. O conceito de escopo vem justamente da necessidade de
delimitar o intervalo em que determinadas informaes processadas pelo
algoritmo so vlidas.
"TFHVJS UFNPTVNFYFNQMPEFEFmOJPEPFTDPQPEFVNBMHPSJUNP PJODJPFPmNEFMFUBOUPFNQTFVEPDEJHPRVBOUPFN+BWB
5"#&-"%FmOJOEPPJODJPFPmNEPBMHPSJUNPPseudocdigo Java
algoritmo "AloMundo"
inicio
public class AloMundo
{
}
Fonte: Autores.
}Escopo do algoritmo }Escopo do algoritmo
Rede e-Tec BrasilAula 4 - Estrutura bsica de um algoritmo 35
1FSDFCBRVFOPQTFVEPDEJHPFTUFYQMDJUBBEFMJNJUBPEPJODJPFEPmNEPBMHPSJUNP+FN+BWBGPSBNVTBEBTBTDIBWFTQBSBEFmOJSPFTDPQP
4.2.3 Comandos ou instruesComandos ou instrues so mecanismos usados para dizer ao computador
o que deve ser feito. Cada instruo dada um passo sendo executado den-
tro do algoritmo, e os mesmos devem estar em ordem, da primeira instruo
BUBMUJNBRVBOEPPPCKFUJWPEPBMHPSJUNPEFWFTFSBMDBOBEP
0T DPNBOEPT EFWFNFTUBS EFOUSP EP FTDPQPEP BMHPSJUNP o OP DBTP EPQTFVEPDEJHPFOUSFBTQBMBWSBTinicio 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 Java
Algoritmo AloMundo
inicio
Escreva(Al mundo!)
Fimalgoritmo
public class AloMundo
{
public static void main(String[] args)
{
System.out.print(Al mundo!);
}
}
Fonte: Autores.
Perceba que o equivalente instruo Escreva() EPQTFVEPDEJHPPSystem.out.print()OP+BWB"MNEJTTPWFSJmDBTFRVFBNCPTVTBNPTQBSOUFTFTBPmOBMEPDPNBOEPJTTPEFOPUBBFYFDVPEFVNBGVOPdentro da linguagem de programao.
/PQTFVEPDEJHPDBEBJOTUSVPmDBFNVNBMJOIB+OP+BWBPmOBMEBinstruo 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 te-
NPTEVBTFTUSVUVSBTOPDEJHPBQSFTFOUBEP
t public class AloMundo
t public static void main(String[] args)
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.
Lgica de ProgramaoRede e-Tec Brasil 36
"QSJNFJSBEFmOFPOPNFclasseNBTFTTFDPODFJUPEFDMBTTFTTFSWJTUPna disciplina de Programao Orientada a Objetos. Neste momento, vamos
FOUFOEFSRVFTFKBBQFOBTBJEFOUJmDBPEPQSPHSBNBOPDBTP$OR0XQGR.
A segunda estrutura um mtodo cujo conceito tambm ser abordado
a fundo somente em Orientao a Objetos. Neste momento, vamos consi-
derar 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 esco-
QPTEJTUJOUPTKRVFBNCPTUNVNJODJPFmNEFMJNJUBEPTQPS\^
DPOTJEFSBEBVNBCPBQSUJDBEFQSPHSBNBPRVFBPTFEFmOJSVNFTDP-po interno a outro, como aconteceu no exemplo, dar um espaamento di-
reita (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{ public static void main(String[] args) { System.out.print("Al mundo!"); }}
Fonte: Autores.
4.2.4 ComentriosImagine que voc tenha desenvolvido um algoritmo bem complexo h um
ano, e, por acaso, voc precisa us-lo para resolver outro problema. Se o al-
goritmo no estiver documentado, voc certamente ter um trabalho enor-
me em compreend-lo novamente, perdendo assim um tempo precioso.
.BTDBTPWPDPUFOIBEPDVNFOUBEPTFSQPTTWFMJEFOUJmDBSPRVFFMFGB[as estruturas de programao que foram usadas e o porqu, entre muitas
PVUSBT JOGPSNBFT UFJT BDFSDB EFMF EF TVBT BMUFSBFT IJTUSJDP F EPTautores do mesmo.
6NBEBTNBOFJSBTNBJTTJNQMFTNBTOPBOJDBEFEPDVNFOUBSTFVD-
}Escopo do subprogramaMain }Escopo do programaAloMundo
Indentao
Rede e-Tec BrasilAula 4 - Estrutura bsica de um algoritmo 37
digo usando comentrios, possibilitando assim um melhor entendimento
do algoritmo implementado.
Podemos usar comentrios para:
t *EFOUJmDBSPSFTQPOTWFMFEBUBEFDSJBPEBRVFMFDEJHP
t *EFOUJmDBSUPEBTBTBMUFSBFTGFJUBTOPDEJHPTFVTSFTQPOTWFJTFEBUBTde alterao.
t *EFOUJmDBSPPCKFUJWPEBRVFMFDEJHP
t &YQMJDBSEFNBOFJSBNBJTGDJMBMHJDBEFTFVBMHPSJUNP
t &OUSFNVJUPTPVUSPTJODMVTJWFQBSBBEPDVNFOUBPQSPmTTJPOBMEFTFVDEJHPGPOUFBUSBWTEFNBSDBEPSFTFTQFDmDPT
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 MJOHVBHFOTEFQSPHSBNBP &NQTFVEPDEJHPWPD QPEF DSJBS DPNFOUSJPT DPNNVJUBT MJOIBT EF DEJHP EFTEF RVFcada linha tenha o marcador // na frente. No Java, todo o texto delimita-
do por /* */ se transforma em um comentrio de muitas linhas.
t Comentrios de documentao de cdigo: este tipo de comentrio OPFYJTUF FNQTFVEPDEJHPT TFN MJOHVBHFOTEFQSPHSBNBP/PJava, todo o texto delimitado por /** */, se transforma em uma docu-
NFOUBPEFDEJHP
Os comentrios so ignorados na hora de executar o algoritmo, por isso
voc pode usar vontade. Apenas tenha cuidado em no abusar deles, o
RVFFNWF[EFBKVEBSQPEFiDPOUBNJOBSwPTFVDEJHPDPNNVJUBTJOGPS-NBFTJOUFJT
1BSBNPTUSBSBGVODJPOBMJEBEFEBEPDVNFOUBPEFTFVDEJHPWBNPTJOTF-rir esses trs tipos de comentrio no algoritmo AloMundo:
Lgica de ProgramaoRede e-Tec Brasil 38
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.
$PNPGPJEJUPBOUFTPQTFVEPDEJHPTVTBVNUJQPEFFTUSVUVSBEFDPNFO-USJPTPNBTP+BWBBQSFTFOUBUSTUJQPTDPNmOBMJEBEFTEJTUJOUBTP*/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
EFEFTFOWPMWJNFOUPUSBUBEFUFSNJOBEPTUJQPTEFFTUSVUVSBTEFOUSPEPDEJ-HP&TTFUJQPEFDPOmHVSBPQPEFTFSNVEBEPQFMPQSPHSBNBEPS
ResumoVoc acaba de adquirir novos conhecimentos, pois, nesta aula, apontamos
DPNPEFmOJSVNBMHPSJUNP7JNPTRVFQBSBDSJBSVNBMHPSJUNPQSFDJTBNPTdar 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
Rede e-Tec BrasilAula 4 - Estrutura bsica de um algoritmo 39
linguagens de programao. Discorremos sobre esses padres. Abordamos
PFTDPQPJTUPPFTQBPFOUSFPJODJPFmNEFVNBMHPSJUNP.PTUSBNPTOBUBCFMBPFTDPQPEFVNBMHPSJUNPFNQTFVEPDEJHPFFN+BWB/Bsequncia, tratamos dos comandos, instrues dadas ao computador para
serem executadas, as quais devem estar inseridas no escopo. Apontamos
UBNCNDPNPEPDVNFOUBSPBMHPSJUNPPVTFKBJOTFSJSJOGPSNBFTUFJTtais como o que ele faz, as estruturas de programao que foram usadas,
TVBTBMUFSBFTIJTUSJDPFPOPNFEFTFVTTVBTBVUPSFTBT
PRVFGBDJMJUBSDBTPWFOIBNPTBVUJMJ[MPQBSBSFTPMWFSPVUSPQSPCMFNB&OmNNPTUSBNPTcomo criar uma estrutura para desenvolver um algoritmo bsico tanto em
QTFVEPDEJHPDPN7JTVBM(RVBOUPFN+BWBDPN&DMJQTF
Atividades de aprendizagem1. Crie um algoritmo que fornea a seguinte sada na tela do computador
(seria interessante para seu aprendizado, criar o algoritmo tanto em pseudo-
DEJHPRVBOUPFN+BWB
| Programa Al Mundo || mundo da programao. || || Aproveite!!! |2. %PDVNFOUFPDEJHPDSJBEPBDJNBVTBOEPDPNFOUSJPT
3. Baseado(a) nas funes de algoritmos descritas abaixo, determine o pos-
svel 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
Lgica de ProgramaoRede e-Tec Brasil 40
Caro(a) estudante,
$PNPTFTFOUJVDSJBOEPFFYFDVUBOEPTFVQSJNFJSPQSPHSBNB /BQSYJNBaula, trataremos das variveis e dos tipos de dado. Esperamos voc l!
Rede e-Tec BrasilAula 4 - Estrutura bsica de um algoritmo 41
Rede e-Tec BrasilAula 5 - Variveis e tipos de dado 43
Aula 5. Variveis e tipos de dado
Objetivos:
t DPODFJUVBSWBSJWFMFUJQPTEFEBEPT
t EJGFSFODJBSEBEPEFJOGPSNBP
t BQMJDBSBTSFHSBTQBSBBOPNFODMBUVSBEFWBSJWFJTF
t JEFOUJmDBSPT UJQPTEFEBEPTQSJNJUJWPT FYJTUFOUFT FVUJMJ[MPTFNBMHPSJUNPTTFKBFNQTFVEPDEJHPTFKBFN+BWB
Caro(a) estudante,
Nesta aula, veremos um conceito primordial para o processamento de da-
dos, que o de variveis. Vamos entender os mecanismos de funcionamento
das variveis nas linguagens de programao, mostrar como dar nome a elas
FEFmOJSPUJQPEFEBEPRVFFMBTBSNB[FOBN5BNCNWBNPTEFNPOTUSBSPVTPEFWBSJWFJTUBOUPFNQTFVEPDEJHPRVBOUPFN+BWB
5.1 IntroduoAntes 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
EFEBEPTPVPSJHJOBEPTBQBSUJSEFPVUSPTQSPHSBNBTJODMVTJWFFMFQSQSJP
5.2 VariveisOs dados de um algoritmo, para serem utilizados e processados, precisam
FTUBSQSFWJBNFOUFBSNB[FOBEPTOBNFNSJBEPDPNQVUBEPS"WBSJWFMFO-UPTFSJBPOPNFEBEPBVNFTQBPEBNFNSJBRVFDPOUNPEBEPBTFSutilizado pelo algoritmo.
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.
Lgica de ProgramaoRede e-Tec Brasil 44
Quando usamos uma varivel, na verdade, estamos buscando aquela infor-
NBPEBNFNSJBFQBTTBOEPBQBSBPQSPDFTTBEPSEPDPNQVUBEPSQBSBque este realize as operaes necessrias com aquele dado.
1PEFNPTBmSNBSFOUPRVFBTWBSJWFJTTPVUJMJ[BEBTQBSBSFQSFTFOUBSWB-MPSFTHFOSJDPTRVFQPEFSPTFSBDFTTBEPTFNPEJmDBEPTEFBDPSEPDPNBMHJDBEPBMHPSJUNP
5.2.1 Nomenclatura de variveisAssim como importante saber dar nome aos nossos algoritmos, primor-
dial 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 Situao
O nome de uma pessoa Nome Nomenclatura vlida
A nota de um aluno n
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 contaSaldoCorreto. 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: segundoDependente ou dependente2.
Email do funcionrio Nome invlido, j que no pode ter caracte-
res especiais, no caso o -. O certo poderia
ser: email ou apenas mail.
Fonte: Autores.
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).
Rede e-Tec BrasilAula 5 - Variveis e tipos de dado 45
5.3 Tipos de dadoA linguagem nativa do computador a linguagem binria, composta apenas
QPSEPJTEHJUPTPVTFKBQPSF6NWBMPSEBEPBSNB[FOBEPOBNFN-ria do computador em forma binria. Se o computador for de 8 bits, cada
GSBPEBNFNSJBDPNQPTUPEFPJUP[FSPTPVVOTDPNPPTFYFNQMPT
TABELA 5.2 Raio X da memria de um computador com 1 GByte de RAM
Endereo de memria Exemplo de dado Exemplo de nomenclatura
1 00000000
2 10010101 Varivel X
3 11000010 Varivel Z
4 00000000
5 11111111 Varivel Y
... ...
1.073.741.824 bytes
ou
1 Gbyte
10101010
Fonte: Autores.
4FHVOEPB5BCFMBPFOEFSFPEBNFNSJBBSNB[FOBBWBSJWFMDVKPnome X. Esse endereo contm apenas bitsF
NBTQBSBOTIVNB-OPTPRVFFMFTSFQSFTFOUBN 6NDPOKVOUPEFbitsQPEFSFQSFTFOUBSVNO-mero, um texto, um som, uma imagem, entre muitos outros tipos de dado.
QPSFTTFNPUJWPRVFRVBOEPEFmOJNPTVNBWBSJWFMOFDFTTSJPEJ[FSde 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
PONFSPPVPONFSPPQSJNFJSPbit pode representar o sinal po-sitivo ou negativo).
*TUPOPFYFNQMPBDJNBVNOJDPbyte pode representar trs valores dife-rentes, dependendo do tipo de dado.
5.3.1 Tipos de dados primitivos"EFmOJPEPUJQPEFEBEPEFVNBWBSJWFMQSJNPSEJBMQBSBHBSBOUJSBresoluo do algoritmo. As linguagens de programao tm alguns tipos j
EFmOJEPTFNTVBFTUSVUVSBoFMFTTPDIBNBEPTEFUJQPTEFEBEPTQSJNJUJWPT
Os tipos de dados primitivos so:
t Literal:UJQPEFEBEPRVFQPEFSFDFCFSMFUSBTONFSPTFTNCPMPT&TTFTtipos de dados no podem ser usados para fazer clculos, apenas para
Lgica de ProgramaoRede e-Tec Brasil 46
armazenar informao. Ex.: Programadores & Associados, Professor
Universitrio, 2 chamada, etc.
t Inteiro: UJQPEFEBEPRVFQPEF SFDFCFSONFSPT JOUFJSPTQPTJUJWPTPVnegativos. Ex.: 10, 1000, -23, 0.
t Real: UJQPEFEBEPRVFQPEFSFDFCFSONFSPTSFBJT JTUPDPNDBTBTEFDJNBJTQPTJUJWPTPVOFHBUJWPT&Y
t Lgico: tipo de dado que pode receber apenas dois tipos de informao oWFSEBEFJSPPVGBMTP
5.3.2 Tipos de dados primitivos em Java$BEBMJOHVBHFNEFQSPHSBNBPQPEFEFmOJSTFVTQSQSJPTUJQPTEFEBEPTdesdobramentos dos tipos primitivos citados anteriormente. No Java, os ti-
pos primitivos so:
TABELA 5.3 - Tipos de dados primitivos em Java
Tipo de dados Em Java Capacidade
Literalchar Armazena um nico caractere
String Armazena um conjunto de caracteres
Inteiro
byte Armazena nmeros de -27 a 27-1 (28 a 127)
shortArmazena nmeros de -215 a 215-1 (32.768
a 32.767)
intArmazena nmeros de -231 a 231-1
(2.147.483.648 a 2.147.483.6477)
long Armazena nmeros de -265 a 265-1
Real Armazena nmeros de -3,4E-38 a +3,4E+38double
Armazena nmeros de -1,7E-308 a
+1,7E+308
Lgico booleanArmazena 0 (falso) ou diferente de 0 (ver-
dadeiro)
Fonte: http://docs.oracle.com/javase/7/docs/.
5.4 Sintaxe e exemplos de declarao"TFHVJSWFSFNPTBTJOUBYFFFYFNQMPTEFEFDMBSBPFNQTFVEPDEJHPFem Java.
5.4.1 Pseudocdigo&NQTFVEPDEJHP
t "EFDMBSBPEFWBSJWFJTEFWFTFSGFJUBBOUFTEFTFJOJDJBSPBMHPSJUNP
Rede e-Tec BrasilAula 5 - Variveis e tipos de dado 47
t )VNBQBMBWSBSFTFSWBEBQBSBJEFOUJmDBSBEFDMBSBPEBTWBSJWFJT&NVisualG var
t O nome da varivel que deve seguir as regras de nomenclatura explica-EBTBOUFSJPSNFOUF
t 0TJOBMEFEPJTQPOUPTTFSWFQBSBTFQBSBSPUJQPEPOPNFEBWBSJWFM
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 pseudoc-digo.
Sintaxe Exemplos
var
nomeDaVarivel: tipoDaVariavel
var
nome: caractere
idade: inteiro
salario: real
casado: logico
Fonte: autores
5.4.2 JavaEm Java:
t /PFYJTUFVNBQBMBWSBFTQFDmDBQBSBEFmOJSBEFDMBSBPEFVNBWBSJ-WFM6NBWBSJWFMQPEFTFSDSJBEBFNRVBMRVFSQBSUFEPDEJHPNBTBTboas prticas de programao recomendam que as variveis principais
TFKBNDSJBEBTBOUFSJPSNFOUFFEPDVNFOUBEBT
t Ao se declarar uma varivel, o tipo de dado vem antes do nome da va-SJWFM
t O nome da varivel deve seguir as regras de nomenclatura explicadas BOUFSJPSNFOUF
t possvel declarar diversas variveis em uma linha, desde que sejam se-QBSBEBTQPSQPOUPFWSHVMB
Lgica de ProgramaoRede e-Tec Brasil 48
t 4FEJWFSTBTWBSJWFJTQPTTVFNPNFTNPUJQPCBTUBEFmOJMPFFOVNFSBSo 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 Exemplos
tipoDaVariavel nomeDaVariavel; String nome;
byte idade;
salario;boolean casado;
int populacao, rebanho;
double resultado; int dias;
Fonte: autores
ResumoAcabamos 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 DPNPVTMPT FNBMHPSJUNPT TFKB FNQTFVEPDEJHP TFKBem Java.
Vamos praticar!
Atividades de aprendizagem1. Assinale os nomes de variveis vlidas e invlidas. Quando invlida, infor-
mar o porqu:
a) XXX
b) a123
c) (A)
d) NOME
e) #66
f) dia/ano/ms
Rede e-Tec BrasilAula 5 - Variveis e tipos de dado 49
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
DBEBVNVTFBTJOUBYFEPQTFVEPDEJHPFEP+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/BQSYJNBBVMBBCPSEBSFNPTPTPQFSBEPSFTFFY-presses que envolvem as variveis. No perca!
Rede e-Tec BrasilAula 6 - Operadores e expresses 51
Aula 6. Operadores e expresses
Objetivos:
t SFDPOIFDFSPQFSBEPSFTBSJUNUJDPTSFMBDJPOBJTFMHJDPT
t FNQSFHBSDPSSFUBNFOUFFTTFTPQFSBEPSFT
t EJTUJOHVJSFYQSFTTFTBSJUNUJDBTEFFYQSFTTFTMHJDBTF
t DSJBSFSFTPMWFSFYQSFTTFTBSJUNUJDBTFMHJDBT
Caro(a) estudante,
0VTPEFFYQSFTTFTNBUFNUJDBTFMHJDBTNVJUPJNQPSUBOUFQBSBTFSF-solver determinados problemas algortmicos. As expresses so formadas
por valores, variveis (operando) e operadores. Vamos explicar como criar
FTTBTFYQSFTTFTEFmOJSPTPQFSBOEPTFPTPQFSBEPSFTFNVNBMHPSJUNPFprincipalmente, como analisar previamente tais expresses.
6.1 IntroduoUm 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[BSPQFSBEPSFTFTQFDmDPTQBSBDSJBSFYQSFTTFTRVFQPTTBNTFSDBMDVMB-das pelo processador.
A seguir, iremos apresentar todos os tipos de operadores e como us-los
para formar expresses.
Anlise de SistemasRede e-Tec Brasil 52
6.2 Operadores e expressesAs operaes e expresses podem ser:
t 0QFSBPEFBUSJCVJP
t &YQSFTTFTBSJUNUJDBTF
t &YQSFTTFTMHJDBT
6.2.1 Operador e expresso de atribuioA operao de atribuio utilizada para armazenar um valor em uma vari-
WFM&TTFWBMPSQPEFTFSQSFEFmOJEPmYP
QSPWFOJFOUFEFPVUSBWBSJWFMPVresultado de outra operao.
A representao algortmica de atribuio tem a seguinte notao:
variavel m valorO 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 Atribuio em Java
var
nome: caractere
idade: inteiro
salario: real
casado: logico
inicio
nome := "Joo & Silva"
idade := 40
salario := 620.37
casado := VERDADEIRO
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
"HPSBWBNPTGB[FSBMHVNBTDPOTJEFSBFTTPCSFPDEJHPBDJNB
t Por que o tipo literal (caractere e String) recebe valores entre as-pas duplas?
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.
Rede e-Tec BrasilAula 6 - Operadores e expresses 53
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?
4FWPDVTBSBTQBTOPONFSPPDPNQVUBEPSWBJFOUFOEFSRVFVNUFYUPFOPVNONFSPEPJTUJQPTEFEBEPDPNQMFUBNFOUFEJGFSFOUFT
t Por que o salrio tem um ponto (.) e no uma vrgula (,) no nme-ro?
Geralmente as linguagens de programao usam a lngua inglesa como
CBTFFMPDBSBDUFSFRVFEFmOFPEFDJNBMPQPOUPFOPBWSHVMB
t O que aconteceria se tentasse atribuir um texto a um nmero ou vice-versa?
7BSJWFJTEFVN UJQPEFEBEP TEFWFN SFDFCFS WBMPSFTEBRVFMF UJQP/Bmaioria das linguagens de programao existem comandos que permitem
DPOWFSUFSVNUJQPQBSBPVUSPQPSFYFNQMPDPOWFSUFSVNUFYUPFNVNO-NFSPFWJDFWFSTBOTJSFNPTWFSJTTPNBJTBEJBOUF
6.2.2 Operadores e expresses aritmticasOs 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)Retorna o resto da diviso inteira de
a por b. Ex: 5 % 2 igual a 1
Lgica de ProgramaoRede e-Tec Brasil 54
(Java)Incrementa o valor de a em 1. retorna o valor de a antes de incre-
mentar. 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 sm-
bolo em linguagens de programao. Funes como exponenciao, raiz,
TFOPDPTTFOPUBOHFOUFFOUSFNVJUPTPVUSPTTPEFmOJEBTQPSJOTUSVFTFTQFDmDBTFNDBEBMJOHVBHFN
6.2.3 Operadores e expresses lgicasOs operadores relacionais so utilizados para comparar valores ou outras
FYQSFTTFT0SFTVMUBEPEFTTBDPNQBSBPEPUJQPMHJDPCPPMFBOP
JTUPTQPEFTFSWFSEBEFJSPPVGBMTP
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.
Para melhor conhecimento das funes dos operadores lgicos, acesse a pgina http://pt.wikipedia.org/wiki/Tabela_verdade.
Rede e-Tec BrasilAula 6 - Operadores e expresses 55
TABELA 6.4 - Operadores lgicos
Operador Exemplo de expresso Funo
Ea E b (pseudocdigo)
a && b (Java)
A expresso a E b s ser verda-
deira se a e b forem verdadeiros.
OUa OU b (pseudocdigo)
a || b (Java)
A expresso a OU b s ser falsa se
a e b forem falsos.
NONAO a (pseudocdigo)
!a (Java)
Se a for verdadeiro, NAO a ser
falso.
Se a for falso, NAO a ser verda-
deiro.
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
1BSBFYFNQMJmDBSNFMIPSPDPODFJUPWBNPTJNBHJOBSRVFRVFSFNPTDBMDVMBSa 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 mni-
NBTBQFOBTPQFSBOEPTFPQFSBEPSFWFSJmDBRVBMQBSUFFMFWBJDBMDVMBSprimeiro, 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 ou-
tra, basta coloc-la entre parnteses. No exemplo da mdia, para o compu-
tador calcular corretamente, a expresso deveria ser:
Lgica de ProgramaoRede e-Tec Brasil 56
"PSEFNEFQSFDFEODJBFOUSFPTPQFSBEPSFTBSJUNUJDPTFMHJDPT
TABELA 6.5 - Ordem de precedncia
Prioridade Operador aritmtico Operador lgico
1 * NO
2 / E
3 MOD OU
4 +
5 -
Fonte: autores
Como uma expresso pode conter vrios operadores aritmticos, relacionais
FMHJDPTFYJTUFVNBPSEFNHFSBMFOUSFFMFTRVF
TABELA 6.6 - Ordem de precedncia geral
Prioridade Operadores
1 Parnteses
2 Operadores aritmticos
3 Operadores relacionais
4 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 comporta-
NFOUPEPNFTNPBOBMJTBOEPBTTFHVJOUFTFYQSFTTFTMHJDBTDVKPSFTVMUBEPsomente pode ser verdadeiro ou falso):
(;(03/22 * 4 = 4 + 4
8 = 4 + 4
8 = 8
YHUGDGHLUR
(;(03/2 3 * 23 + 69
Rede e-Tec BrasilAula 6 - Operadores e expresses 57
(;(03/2(3 + 3
6 * 2
Lgica de ProgramaoRede e-Tec Brasil 58
Atividades de aprendizagem1.0RVFPQFSBOEPPQFSBEPSFVNBFYQSFTTP &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 BrasilAula 6 - Operadores e expresses 59
Caro(a) estudante,
'JOBMJ[BNPTNBJTVNBBVMBEBEJTDJQMJOB-HJDBEF1SPHSBNBP
/BQSYJNBBCPSEBSFNPTBTFTUSVUVSBTTFRVFODJBJT
Rede e-Tec BrasilAula 7 - Estruturas sequenciais 61
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,
VTBOEPWBSJWFJTBUSJCVJOEPFMFOEPTFVTSFTQFDUJWPTWBMPSFTEFmOJOEPFY-QSFTTFT BSJUNUJDBT F MHJDBT F QPS mN WPD BQSFOEFS B FTUSVUVSBS TF-quencialmente um algoritmo em VisualG e Java, a ler dados do usurio e a
mostrar o resultado do processamento para o mesmo (a informao resul-
tante). Aproveite bem a aula e se prepare, pois teremos muitas atividades.
7.1 IntroduoA arquitetura bsica dos computadores, baseada na arquitetura de John von
/FVNBOOBUIPKFUFNJOnVODJBEJSFUBOBT MJOHVBHFOTEFQSPHSBNBPEntretanto, o estilo (modelo ou paradigma) de programao sofreu algumas
evolues, de um formato simples (sem muitos recursos e de difcil percep-
o 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 pro-
gramao passaram por cinco fases evolucionrias, sendo elas:
t 1SPHSBNBPUSBEJDJPOBM
t 1SPHSBNBPFTUSVUVSBEB
t 1SPHSBNBPNPEVMBS
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.
Segundo Sebesta (2011, p. 38):
por causa da arquitetura de von Neumann, os recursos
centrais das linguagens imperativas so:
t"TWBSJWFJTRVFNPEFMBNas clulas de memria;
t"TTFOUFOBTEFatribuio, baseadas na
operao de envio de dados e instrues; e
t"GPSNBJUFSBUJWBEFrepetio 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.
Lgica de ProgramaoRede e-Tec Brasil 62
t 1SPHSBNBPDPNBCTUSBPEFEBEPTF
t Programao orientada a objetos.
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.
Nesta aula, voc ver como funciona uma estrutura sequencial.
7.2 Estrutura sequencialA 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 anterior-
NFOUF TP BFT FYFDVUBEBT QBTTP B QBTTP FNVNB TFRVODJB EFmOJEBpara atender a um determinado objetivo.
&NVNBFTUSVUVSBTFRVFODJBMQPEFNPTEFmOJSJOTUSVFTEFEFDMBSBPEFWBSJWFJTBUSJCVJPPQFSBFTBSJUNUJDBTFMHJDBTEFFOUSBEBFEFTBEB5PEBTFTTBTJOTUSVFTKGPSBNWJTUBTNFOPTBTEVBTMUJNBTRVFWFSFNPTa seguir.
7.2.1 Sada de dadosPara que serviria a capacidade de processar dados do computador se no
GPTTFQPTTWFMNPTUSBSPTSFTVMUBEPT FYBUBNFOUFJTTPRVFPTDPNBOEPTEFsada 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 tam-
bm 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 BrasilAula 7 - Estruturas sequenciais 63
muito comum.
Nesse momento, subtende-se que o comando de sada o monitor do com-
putador.
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. Va-mos a um exemplo do comando Escreva e Escreval
Figura 7.1: Exemplo do comando Escreva e Escreval.Fonte: Autores.
Lgica de ProgramaoRede e-Tec Brasil 64
7FKBPDEJHPFBOBMJTFBTJOTUSVFTQBTTBEBTOBSFBEFUSBCBMIPFBTBEBdo 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 1BSBFTDSFWFSPUFYUPEFMJNJUFJPNFTNPDPNBTQBTEVQMBTiw
t 2VBOEPOPVTPBTBTQBTEVQMBTTJHOJmDBRVFRVFSPFTDSFWFSPWBMPSEFVNBWBSJWFMF
t Quando quero mesclar texto com variveis, fao a concatenao deles com o sinal de adio (+).
"HPSBWBNPTFTDSFWFSFTTFNFTNPDEJHPFN+BWBOP&DMJQTF
O exemplo usando printfWPDWFSOBmHVSB
Figura 7.2: Exemplo dos comandos print e println.Fonte: Autores.
Rede e-Tec BrasilAula 7 - Estruturas sequenciais 65
7.2.2 Entrada de dadosNo 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 rece-
ber 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
Lgica de ProgramaoRede e-Tec Brasil 66
"OBMJTFPDEJHPFQFSDFCBRVFPDPNBOEPLeia o mesmo para valores literais e numricos. Entretanto, em Java, existem diferenas. Agora vamos
FTDSFWFSFTTFNFTNPDEJHPFN+BWBOP&DMJQTF
Figura 7.3: Exemplo dos comandos Escreva e Escreval.Fonte: Autores.
Figura 7.4: Exemplo dos comandos de entrada em Java e do printf.Fonte: Autores.
Rede e-Tec BrasilAula 7 - Estruturas sequenciais 67
Percebeu que, para cada tipo de dado que voc for ler em Java, voc precisa
EFVNDPNBOEPEJGFSFOUF &PprintfRVFBHPSBQPEFNPTEFmOJSFNVNOJDPUFYUPDPNQBSNFUSPTTQBSBUFYUPEQBSBJOUFJSPGQBSBSFBMque sero substitudos por valores de variveis.
7.3 Finalmente um algoritmo completoVoc se lembra de quando dissemos que um algoritmo nada mais do que
VNNFDBOJTNP QBSB FOUSBEB QSPDFTTBNFOUP PV TBEB EF EBEPT "HPSBvoc est preparado(a) para criar uma estrutura sequencial com todos eles.
1BSBFYFNQMJmDBSWBNPTDSJBSVNBMHPSJUNPQBSBEFTDPCSJSPTBMSJPMRVJEPEFVNGVODJPOSJPTBCFOEPRVFEFTDPOUBEPEPTFVTBMSJPCSVUPreferente 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.
Lgica de ProgramaoRede e-Tec Brasil 68
Algoritmo completo em Java que calcula o salrio lquido de um funcionrio
"QFOBTVNDPNFOUSJPOPDEJHPEB'JHVSBPDBSBDUFSF=OOPDPNBOEPde 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.
ResumoVoc 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 tam-
CNPTDPNBOEPTEFTBEBFFOUSBEBEFEBEPTFNQTFVEPDEJHPFFN+BWB&mOBMNFOUFNPTUSBNPTVNBMHPSJUNPDPNQMFUPRVFDBMDVMBPTBMSJPMRVJ-EPEFVNGVODJPOSJPFNQTFVEPDEJHPFFN+BWB
/BTBUJWJEBEFTEFBQSFOEJ[BHFNEFTUBBVMBUFNPTVNONFSPCFNNBJPSde exerccios para que voc possa praticar. Lembre-se: aprender a progra-
Figura 7.6: Algoritmo completo em Java que calcula o salrio lquido de um funcionrio.Fonte: Autores.
Rede e-Tec BrasilAula 7 - Estruturas sequenciais 69
mar no apenas leitura e estudo, prtica. Ento vamos s atividades.
Atividades de aprendizagem1.'BBVNBMHPSJUNPFN7JTVBM(PVFN+BWBRVFSFDFCBUSTONFSPTJOUFJ-ros e calcule a soma deles.
2.'BBVNBMHPSJUNPFN7JTVBM(PVFN+BWBRVFSFDFCBRVBUSPONFSPTreais e calcule a mdia deles.
3. Faa um algoritmo em VisualG ou em Java que receba duas notas de pro-
va, 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
DBEBmMIPP GVODJPOSJP SFDFCFP TBMSJP GBNMJBEF3FBPmOBMQBHBJNQPTUPEFSFOEBEFTPCSFPTBMSJPCSVUP
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 elabo-
rao 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
QSYJNBBVMBBCPSEBSFNPTBTFTUSVUVSBTEFEFDJTP"UM
Rede e-Tec BrasilAula 8 - Estruturas de deciso 71
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
QBTTPMJOFBSQBSBnVYPTEFFYFDVPRVFQPEFNTPGSFSEFTWJPTOBTFRVODJBCBTFBEPTFNFYQSFTTFTMHJDBTJTUPPDPNQVUBEPSTFSDBQB[EFUPNBSVNBEFDJTPTPCSFPRVFTFSFYFDVUBEPPVOP*OUFSFTTBOUFOP &OUPWBNPTFTUVEBSDPNCBTUBOUFBmODPFTUBBVMB
8.1 IntroduoEstrutura de deciso ou estrutura condicional basicamente um mecanismo
DBQB[EF WFSJmDBS QSFWJBNFOUF EFUFSNJOBEBT DPOEJFT CBTFBEBT FNFY-QSFTTFTMHJDBTQBSBBSFBMJ[BPEFVNBPVNBJTJOTUSVFT
"FYQSFTTPMHJDBFNVNBFTUSVUVSBEFEFDJTPPNFDBOJTNPVTBEPQBSBRVFPDPNQVUBEPSUPNFTVBEFDJTP$BTPFMBTFKBWFSEBEFJSBPnVYPEFFYFDVPEPBMHPSJUNPTFHVFVNDBNJOIPDBTPTFKBGBMTBTFHVFPVUSP
8.2 Tipos de estruturas de decisoAs estruturas de deciso podem ser de trs tipos:
Objetivos:
t SFDPOIFDFSVNBFTUSVUVSBEFEFDJTP
t JEFOUJmDBSPTUJQPTEFFTUSVUVSBEFEFDJTPF
t aplicar estruturas de deciso em algoritmos.
Aula 8. Estruturas de deciso
Lgica de ProgramaoRede e-Tec Brasil 72
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 SeA estrutura de deciso Se a mais simples, pois existe apenas um desvio
EFnVYPOBFYFDVPEPBMHPSJUNP&TTFEFTWJPFTUDPOEJDJPOBEPBVNBexpresso booleana: quando verdadeira, no h desvio, mas caso seja falsa,
o desvio efetuado.
Para uma melhor visualizao de como esse desvio acontece (como o com-
QVUBEPSUPNBEFDJTFT
WBNPTDPNQBSBSPnVYPHSBNBEFFYFDVPEFVNalgoritmo com estrutura sequencial com o da estrutura condicional:
Figura 8.1: Estrutura sequencial versus estrutura condicional.Fonte: Autores.
Rede e-Tec BrasilAula 8 - Estruturas de deciso 73
"TJOUBYFEBFTUSVUVSBDPOEJDJPOBM4F4FOPUBOUPFNQTFVEPDEJHPRVBO-to em Java :
TABELA 8.1 - Sintaxe da estrutura condicional Se
Pseudocdigo Java
Se (expresso lgica) Ento
Comando ou Bloco de Comandos
Fimse
// 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 TTFSFYFDVUBEPTFBFYQSFTTPMHJDBGPSverdadeira.
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 pr-
tico: dado o salrio de uma pessoa, o imposto de renda pode ser cobrado
DBTPFMFHBOIFNBJTEF3NFOTBJT4FJTTPBDPOUFDFSBQPSDFOUB-HFNEPJNQPTUPEFTPCSFPTBMSJPCSVUPDBTPDPOUSSJPPJNQPTUPa pagar zero.
Figura 8.2: Exemplo da estrutura condicional Se em pseudocdigo.Fonte: Autores.
Lgica de ProgramaoRede e-Tec Brasil 74
"OBMJTFPDEJHPFWFSJmRVFRVF
t $BTP B FYQSFTTP MHJDB salarioBruto > 1500) seja verdadeira, FOUPPJNQPTUPEFSFOEBTFSDBMDVMBEPMJOIBTB
t $BTPBFYQSFTTPMHJDBsalarioBruto > 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).
/PTFHVOEPDBTPRVBOEPBFYQSFTTPMHJDBGBMTBPDPSSFVNEFTWJPEPnVYPEPBMHPSJUNPGB[FOEPDPNRVFPDPNBOEPEBMJOIBOPTFKBFYFDV-tado de acordo com a sequncia do algoritmo. Muito legal esse mecanismo
EFDPOUSPMFEFnVYPOP "HPSBWBNPTWFSPNFTNPBMHPSJUNPFN+BWB
Figura 8.3: Exemplo da estrutura condicional Se em Java.Fonte: Autores.
Rede e-Tec BrasilAula 8 - Estruturas de deciso 75
5BOUPPBMHPSJUNPFNQTFVEPDEJHPRVBOUPFN+BWBEFWFSPUFSBTNFTNBTsadas:
TABELA 8.2 - Exemplos de sada de um algoritmo com a estrutura condicio-nal 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 SenoA estrutura de deciso Se - SenoNBJTDPNQMFUBQPJTQFSNJUFEPJTnVYPTde execuo no algoritmo, um para quando a expresso booleana for ver-
EBEFJSBFPVUSPQBSBRVBOEPGPSGBMTB4FOEPBTTJNPnVYPFTDPMIJEPQBSBBexecuo est condicionado a essa expresso, que, caso seja verdadeira, um
conjunto de comandos executado, mas caso seja falsa, executa-se outro
conjunto.
1BSBWPDUFSVNBNFMIPSWJTVBMJ[BPEFDPNPFTTBFTDPMIBEFnVYPBDPO-UFDFWBNPTDPNQBSBSPnVYPHSBNBEFFYFDVPEFVNBMHPSJUNPDPNFT-trutura Se com o da estrutura Se - Seno:
Figura 8.4: Estrutura Se versus Se Seno.Fonte: Autores.
Lgica de ProgramaoRede e-Tec Brasil 76
A sintaxe da estrutura condicional Se - SenoUBOUPFNQTFVEPDEJHPRVBO-to em Java :
TABELA 8.3 - Sintaxe da estrutura condicional Se - Seno.
Pseudocdigo Java
Se (expresso lgica) Ento
Comando 1 ou Bloco de Comandos 1
Seno
Comando 1 ou Bloco de Comandos 1
Fimse
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 1TTFSFYFDVUBEP TF B FYQSFTTP MHJDB GPSverdadeira. 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 exem-
QMPQSUJDPEBEPVNONFSPWFSJmRVFTFPNFTNPQBSPVNQBS
"OBMJTFPDEJHPFWFSJmRVF
Figura 8.5: Exemplo da estrutura condicional Se - Seno em pseudocdigo.Fonte: Autores.
Rede e-Tec BrasilAula 8 - Estruturas de deciso 77
t 1BSBTBCFSTFVNONFSPQBSCBTUBVTBSVNBQSPQSJFEBEFNBUFNUJDBDBTPPSFTUPEBEJWJTPEFTTFONFSPQPSTFKBFOUPFMFQBS
t "OBMPHJDBNFOUFTFPSFTUPEBEJWJTPEFRVBMRVFSONFSPQPSGPSTJHOJmDBRVFFMFNQBS
O mesmo algoritmo em Java seria:
8.2.3 Estrutura de deciso Se Seno SeA estrutura de deciso Se Seno - Se a mais complexa de todas, pois
permite o encadeamento de um Se MPHPBQTPSeno de outro Se, isto , possvel encadear um SeEFOUSPEFPVUSPGPSNBOEPBTTJNVNBOJDBestrutura.
Mesmo sendo complexo, s vezes a soluo mais fcil para alguns tipos
de algoritmo, que precisam testar diversas condies e tomar uma deciso
TPCSFRVBM nVYPEF DPNBOEPT TFHVJS RVF TQPEF TFSVN PVOFOIVN
KVTUBNFOUFBRVFMFDVKBDPOEJPGPSTBUJTGFJUBJTUPDVKBFYQSFTTPMHJDBfor verdadeira.
Para voc ter uma melhor visualizao de como essa estrutura encadeada de
4FPSHBOJ[BEBBTFHVJSUFNPTVNFYFNQMPEFnVYPHSBNBEFFYFDVPEFum algoritmo com estrutura Se Seno - Se:
Figura 8.6: Exemplo da estrutura condicional Se - Seno em pseudocdigo.Fonte: Autores.
Lgica de ProgramaoRede e-Tec Brasil 78
&NQTFVEPDEJHP FTTB FTUSVUVSB FODBEFBEB OBEBNBJT EP RVF VN 4Fdentro de outro Se, mas, em Java, possvel aninhar as estruturas Se como
TFGPTTFNVNTDPNBOEP7FKBPFYFNQMPBTFHVJS
TABELA 8.4 - Sintaxe da estrutura condicional Se Seno - Se.
Pseudocdigo Java
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
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.
Figura 8.7: Fluxograma da Estrutura de deciso Se Seno Se.Fonte: Autores.
Rede e-Tec BrasilAula 8 - Estruturas de deciso 79
7FKBNPT BMHVNBT QSPQSJFEBEFT JNQPSUBOUFT EB FTUSVUVSB EF EFDJTP 4F o4FOPo4F
t O Bloco de Comandos 1 ser somente executada se a expresso lgica 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"QTa execuo do Bloco de Comandos 2PnVYPEFFYFDVPTBJEBFT-trutura 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 verdadeira"QTBFYFDVPEPBloco de Comandos 3PnVYPEFFYFDV-o 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 verdadeira"QTBFYFDVPEPBloco de Comandos NPnVYPEFFYF-cuo 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
BMVOPFTUBSBQSPWBEPDBTPTFKBNFOPSEPRVFPBMVOPFTUBSSFQSPWBEPFTFFTUJWFSFOUSFFPBMVOPWBJQBSBBQSPWBmOBM
O mesmo algoritmo em Java seria:
Lgica de ProgramaoRede e-Tec Brasil 80
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 BrasilAula 8 - Estruturas de deciso 81
Graas s estruturas de deciso, podemos fazer o computador tomar deci-
TFTFFYFDVUBSVNDPOKVOUPEFDEJHPTRVFWPDRVJTFSEFBDPSEPDPNBTVBMHJDB"HPSBWBNPTBPSFTVNPEBBVMB
ResumoAdicionamos nesta aula conhecimentos importantssimos para a elaborao
de algoritmos mais complexos. Tratamos