15.4 5ª versão finalizada-lógica programação 25.04.14 web

122
Lógica de Programação Liluyoud Cury de Lacerda José Marcio Benite Ramos Sara Luize Oliveira Duarte Cuiabá-MT 2014

Upload: marcio-jose-teixeira

Post on 15-Dec-2015

28 views

Category:

Documents


2 download

DESCRIPTION

***

TRANSCRIPT

  • 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

    [email protected]

    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