177

MD2_D5D6_Logica_Programacao_PHP_Joomla_2010_CI

Embed Size (px)

Citation preview

  • SumrioCaptulo1.IntroduoaLgicadeProgramao...................................................................9

    1.1.NoesdeLgica.........................................................................................................91.2.Oquelgica.............................................................................................................91.3.Areallgicadodiaadia.............................................................................................91.4.Lgicadeprogramao.............................................................................................101.5.Oqueumalgoritmo...............................................................................................111.6.Porqueimportanteconstruirumalgoritmo............................................................111.7.Asmaneirasderepresentarmosumalgoritmo.........................................................12

    1.7.1.DescrioNarrativa.........................................................................................121.7.2.FluxogramaConvencional.................................................................................121.7.3.PortugusEstruturadoouPseudocdigo............................................................14

    1.8.EXERCCIOSPROPOSTOS......................................................................................15Captulo2.TpicosPreliminares..........................................................................................16

    2.1.Tiposprimitivos.........................................................................................................162.1.1.TiposdePrimitivosdeDados...........................................................................16

    2.2.Constantes.................................................................................................................162.3.Varivel......................................................................................................................172.4.Formaodeidentificadores.....................................................................................172.5.Declaraodevariveis.............................................................................................172.6.Comandosdeentradaesada...................................................................................18

    2.6.1.COMANDODEENTRADASDEDADOS.............................................................182.6.2.COMANDODESAIDASDEDADOS...................................................................19

    2.7.Expressesaritmticas..............................................................................................202.8.Operadoresaritmticos.............................................................................................212.9.Expresseslgicas.....................................................................................................222.10.Operadoresrelacionais............................................................................................222.11.Operadoreslgicos..................................................................................................232.12.Comandodeatribuio...........................................................................................24

    2.12.1.PRIORIDADEDEOPERADORES:.....................................................................242.13.EXERCCIOSPROPOSTOS....................................................................................25

    Captulo3.EstruturasdeControle.......................................................................................263.1.Estruturasequencial..................................................................................................263.2.Estruturadeseleo..................................................................................................27

    3.2.1.SeleoSimples.................................................................................................273.2.2.SeleoComposta..............................................................................................293.2.3.Seleoencadeada.............................................................................................30

    3.3.Seleodemltiplaescolha......................................................................................323.4.Estruturasderepetio.............................................................................................333.5.Repetiocomtestenoincioenofinal....................................................................34

    3.5.1.TESTEINCIO....................................................................................................343.5.2.TESTEFINAL.....................................................................................................35

    3.6.Repetiocomvariveldecontrole...........................................................................373.7.Comparaoentreestruturasderepetio.............................................................393.8.EXERCCIOSPROPOSTOS......................................................................................41

    Captulo4.EstruturasdeDados...........................................................................................424.1.Oqueestruturasdedados......................................................................................424.2.Variveiscompostashomogneas..............................................................................42

  • 4.3.Variveiscompostasunidimensionais........................................................................434.4.Declaraoemanipulao(unidimensional).............................................................44

    4.4.1.LeituradeDadosdeUmaMatrizdoTipoVetor.................................................444.5.Variveiscompostasmultidimensionais....................................................................454.6.Declaraoemanipulao(multidimensionais).......................................................464.7.Variveiscompostasheterogneas............................................................................464.8.Registros(declaraoemanipulao).......................................................................474.9.Registrosdeconjuntos(declaraoemanipulao)..............................................484.10.EXERCCIOSPROPOSTOS....................................................................................494.11.Referencias:.............................................................................................................50

    Captulo5.IntroduoaPHP...............................................................................................535.1.OquePHP..............................................................................................................53

    5.1.1.UmpoucodaHistriadoPHP............................................................................545.2.InstalaodoServidorPHP.......................................................................................54

    5.2.1.InstalaoApache..............................................................................................555.2.2.InstalaoPhp5..................................................................................................565.2.3.InstalaoMYSQL..............................................................................................575.2.4.InstalaophpMyAdmin....................................................................................57

    5.3.CaractersticasdeumprogramaPHP.........................................................................585.3.1.COMANDOSDESADA(OUTPUT).....................................................................59

    5.4.EXERCCIOSPROPOSTOS......................................................................................60Captulo6.AtribuiesemPHP............................................................................................61

    6.1.Variveis....................................................................................................................616.2.TiposdeVariveis......................................................................................................63

    6.2.1.Tipobooleano....................................................................................................636.2.2.Tipointeiro........................................................................................................636.2.3.Tipopontoflutuante:.........................................................................................646.2.4.Tiponumrico....................................................................................................646.2.5.TipoString.........................................................................................................646.2.6.Tipoarray..........................................................................................................656.2.7.Tipoobjeto.........................................................................................................656.2.8.Tiporecurso.......................................................................................................656.2.9.Tiponull.............................................................................................................65

    6.3.Constantes.................................................................................................................656.3.1.Constantesprdefinidas....................................................................................656.3.2.Definindoconstantes.........................................................................................65

    6.4.Conversodevarivel...............................................................................................666.5.EXERCCIOSPROPOSTOS......................................................................................67

    Captulo7.Operadores.........................................................................................................687.1.Operadoresdestrings...............................................................................................687.2.Operadoresdeatribuio..........................................................................................687.3.Operadoresdedecrementoeincremento.................................................................707.4.Operadoresaritmticos.............................................................................................717.5.Operadoresrelacionais.............................................................................................717.6.Operadoreslgicosoubooleanos..............................................................................727.7.PrecednciadeOperadores.......................................................................................737.8.EXERCCIOSPROPOSTOS......................................................................................76

    Captulo8.EstruturasdeControleeRepetio....................................................................778.1.Blocosdecontrole.....................................................................................................778.2.IFeELSE...................................................................................................................77

  • 8.3.Atribuiocondicional(ternrio)..............................................................................798.4.SWITCH....................................................................................................................79

    8.4.1.SWITCHcomBREAK.........................................................................................808.5.WHILE.......................................................................................................................818.6.DO...WHILE...............................................................................................................828.7.FOR...........................................................................................................................838.8.FOREACH..................................................................................................................848.9.BREAK.......................................................................................................................858.10.CONTINUE..............................................................................................................868.11.EXERCCIOSPROPOSTOS....................................................................................88

    Captulo9.ManipulaodeArrays......................................................................................889.1.CriandoumArray......................................................................................................889.2.ArraysAssociativos....................................................................................................899.3.Interaes..................................................................................................................909.4.AcessandoumArray..................................................................................................919.5.AlterandoumArray...................................................................................................919.6.Arraysmultidimensionais..........................................................................................929.7.FunescomArrays..................................................................................................949.8.EXERCCIOSPROPOSTOS......................................................................................98

    Captulo10.ManipulaesdeFunes................................................................................9910.1.DeclarandoumaFuno.........................................................................................9910.2.EscopodeVariveisemFunes...........................................................................10010.3.PassagemdeParmetro.........................................................................................10110.4.ValordeRetorno....................................................................................................10210.5.Recurso................................................................................................................10210.6.EXERCCIOSPROPOSTOS..................................................................................103

    Captulo11.Manipulaodearquivosediretrios............................................................10411.1.CriandoeAbrindoumArquivo.............................................................................10411.2.Gravandoemumarquivo......................................................................................10511.3.Fechandoumarquivo............................................................................................10611.4.Lendoumarquivo.................................................................................................10611.5.Copiando,RenomeandoeApagandoumArquivo..................................................10711.6.ManipulandoDiretrio..........................................................................................10811.7.EXERCCIOSPROPOSTOS..................................................................................109

    Captulo12.InteraesPHPcomHTML............................................................................11012.1.Formulrios..........................................................................................................110

    Elementosdeumformulrio......................................................................................11012.2.Exemplodeformulrio..........................................................................................11212.3.MtodoPosteGet.................................................................................................114

    12.3.1.MtodoGet....................................................................................................114RecebendodadosviamtodoGET.............................................................................11512.3.2.MtodoPost...................................................................................................116

    12.4.InteraescomoBrowser.....................................................................................11712.5.Cookies..................................................................................................................118

    Acessandoumcookie:................................................................................................12012.6.Sesso....................................................................................................................12012.7.RequisiodeArquivos.........................................................................................12212.8.Tratamentosdeerro..............................................................................................12312.9.EXERCCIOSPROPOSTOS..................................................................................124

    Captulo13.IntroduoaoMySQL....................................................................................125

  • 13.1.OqueoMYSQL?................................................................................................12513.2.TrabalhandocomMYSQL......................................................................................125

    13.2.1.EstruturasdeDados.......................................................................................12613.2.2.CriandoBancoeTabelas................................................................................12713.2.3.Manipulandodadosdastabelas.....................................................................128

    13.3.TrabalhandocomPhpMyAdmin............................................................................13013.3.1.ManipulandobancodedadosnoPhpMyadmin.............................................131

    13.4.EXERCCIOSPROPOSTOS..................................................................................134Captulo14.PHPcomBancodedadosMYSQL..................................................................135

    14.1.CriandoeSelecionandoaConexo.......................................................................13514.2.ManipulandoDadosdoDatabase..........................................................................136

    mysql_query...............................................................................................................136mysql_result...............................................................................................................136mysql_fetch_array......................................................................................................137

    14.3.CriaodeCRUD...................................................................................................13814.4.EXERCCIOSPROPOSTOS..................................................................................141

    Captulo15.HistriadoJoomla.........................................................................................14415.1.Introduo.............................................................................................................14415.2.VantagensdeutilizaroJoomla!............................................................................14415.3.OJoomlatemcomoprincipaiscaractersticas:.....................................................14515.4.FerramentasCMSSistemadeGerenciamentodeContedo...............................145

    Captulo16.InstalaodoJoomla.....................................................................................14616.1.IniciandoosServidores.........................................................................................147

    16.1.1.PassosparainstalaodoJoomla..................................................................14716.1.2.CopiandooJoomlaparaaPastaHTDOCS.....................................................147

    Captulo17.VamosaInstalao.........................................................................................14817.1.1PassoIdiomas.................................................................................................14817.2.2PassoPrInstalao.......................................................................................14917.3.3PassoLicena..................................................................................................14917.4.4PassoBancodeDados....................................................................................15017.5.5PassoConfiguraodoFTP............................................................................15117.6.6PassoConfigurao.........................................................................................15117.7.7PassoFim........................................................................................................152

    Captulo18.FrontendeBackend.......................................................................................15318.1.FrontendreadeUsurios.................................................................................15318.2.BackendreadeAdministradores.....................................................................154

    18.2.1.LogindeAcesso.............................................................................................15418.2.2.NveldeusurioPapel................................................................................15518.2.3.PapisnoSiteprincipal(Frontend)...............................................................15518.2.4.Papeisnareadeadministrao(BackEnd).................................................155

    Captulo19.ConhecendoareadeAdministrao...........................................................15519.1.Acessos..................................................................................................................15519.2.Registrandoosusurios........................................................................................15619.3.CategoriasdeUsuriosRegistrados......................................................................15619.4.UsuriosResponsveispeloContedo..................................................................156

    19.4.1.UsurioRegistrado.........................................................................................15619.4.2.Autor..............................................................................................................15619.4.3.Editor.............................................................................................................15619.4.4.Publicador(publisher)...................................................................................156

    19.5.UsuriosdeAdministrao....................................................................................157

  • 19.5.1.SuperAdministrador......................................................................................15719.5.2.Administrador................................................................................................15719.5.3.Gerenciador(Manager).................................................................................157

    Captulo20.GerenciandoasCategoriaseSees..............................................................15720.1.ComocriarumaSeo..........................................................................................15820.2.Comocriarumacategoria.....................................................................................159

    Captulo21.InserindoumNovoTexto...............................................................................15921.1.Parainserirumtexto,sigaosseguintespassos:....................................................159

    Captulo22.Comocriarumlinknomenuparaumitemdecontedo..............................16022.1.Criandoumlinkparaoitemdecontedo.............................................................16022.2.Administraodosmenus.....................................................................................162

    22.2.1.Teladeconfiguraodemenus......................................................................16222.3.EspecificaodeAlgunsItensdeMenu.................................................................163

    22.3.1.Contedo.......................................................................................................16322.3.2.Miscellaneous................................................................................................16322.3.3.Componentes.............................................................................................16322.3.4.Links...........................................................................................................163

    Captulo23.AdministraodeMdia.................................................................................16323.1.Observandoaimagemacima,teremososseguintestpicos:................................164

    23.1.1.Primeirotpico..............................................................................................16423.1.2.Segundotpico..............................................................................................16423.1.3.Terceirotpico...............................................................................................16423.1.4.Quartotpico.................................................................................................16423.1.5.Quintotpico.................................................................................................16423.1.6.Sextotpico...................................................................................................164

    Captulo24.Conhecendoalgunscomponentes..................................................................16424.1.ComponenteWeblinks...........................................................................................16424.2.ComponenteContatos...........................................................................................16524.3.ComponenteBanner..............................................................................................167

    Captulo25.MduloseComponentes................................................................................16825.1.CriandoummduloutilizandooprprioJoomla.................................................169

    25.1.1.Vejaospontosnecessriosparacriaodeummdulo:................................16925.2.InstalaodeMdulos..........................................................................................170

    25.2.1.Passosparainstalarumnovomdulo:...........................................................17025.3.Componentes........................................................................................................170

    Captulo26.Estrutura........................................................................................................17126.1.Designer................................................................................................................17126.2.Programao.........................................................................................................17126.3.ContedoMySQL..................................................................................................17126.4.PosiesdeMdulos.............................................................................................172

    26.4.1.VejamosexemplonoCdigoPHP:.................................................................17226.4.2.VejamosagoraoexemplonoPaineldeAdministrao(BackEnd)................172

    26.5.EstendendoaEstruturadoTemplate(Tema)........................................................17226.5.1.Vocpodeusarosseguintesatributosparaosmdulos:...............................172

  • CaroAluno(a),

    EsteMaterialfoicriadocomoobjetivodeserutilizadonaaprendizagemdalgicavoltadaparaprogramao, ondeser utilizadoaprogramaoestruturadaemportugus, tambmchamadadeportugusestruturadoouPortugol. Paraauxlionaaprendizagemusaremosaferramenta(programa)chamadaVisualg.

    Ser dividido o contedo em quatro captulos, desde princpios bsicos at algo maisavanadodentrodeumcontextolgico,equetrazaoalunoumabaseinicialparafuturasprogramaesemoutraslinguagens.AsdiagramaesdessematerialforamfeitascomousodaferramentaDia,pormnoentraremosemdetalhessobreela.

    Valeressaltarqueocontedoaquivisto,devidoalimitaodaferramentaVisualg,notemaparocompletodeseuusodentrodaferramenta,massertratadodeformacoerentetodososconceitosqueseroabordados.

    Esperamosqueessematerialsejaumcontribuinteparatodosaquelesquequeremaprenderdeformadedicadaequeprincipalmentetenhaumsignificadoimportanteparainicializaodaformaodosquequeremseguiracarreiradeprogramador.

  • Logica de Programao 9

    Captulo1. IntroduoaLgicadeProgramaoObjetivos

    Apresentarosconceitoselementaresdelgicaesuaaplicaonocotidiano;Definiroqueumalgoritmo;Estabelecerumarelaoentrealgicaeoalgoritmo;Mostrarexemplosdecomoutilizara

    lgicaemsituaesdodiaadia,apresentandodeformasimplesecoerente.

    1.1. NoesdeLgicaLgicaalgomuitocomumnanossavida,aprovadissooquefazemosduranteodia,pois

    mesmosemperceberusamosalgicatodomomento,porexemplo:

    Aoacordamos:Tomamosumbanho.Escovamososdentes.Tomamosocafdamanh.Parairmosaotrabalho:Colocamosumaroupaapropriada.Pegamosumnibus.Chegamosnotrabalho.

    Percebaquepodemosdetalharmaiscoisasarespeitodoexemploanterior,nessasequnciafoidefinidaalgunsfatoscomuns.

    Quandoqueremoschegaraumobjetivofinal,temosquetraarumalgicacoerentequetenhasentido,ondeemumasequncialgicatemosdefinidotodosospassosquedevemosseguiratofinal.

    1.2. Oquelgica.Lgica vem do grego clssico logos(), que significa

    palavra,pensamento,ideia,argumento,relato,razolgicaouprincpio lgico. uma parte da filosofia que estuda ofundamento, a estrutura e as expresses humanas doconhecimento.AlgicafoicriadaporAristtelesnosculoIVa.C.Paraestudaropensamentohumanoedistinguirinterfernciaseargumentoscertoseerrados.

    Jqueopensamentoamanifestaodoconhecimento,equeoconhecimentobuscaaverdade,precisoestabeleceralgumasregrasparaqueessametapossaseratingida.

    1.3. Areallgicadodiaadia.

    Sempre que estamos pensando emalgo, a lgica nos acompanha. Usamos a lgica quandofalamosouquandoescrevemosparaporemordemonossopensamentoqueestsendoexpressado.

    Aautomaooprocessoemqueumatarefadeixadeserdesempenhadapelohomemepassaaser realizada por mquinas, sejam estes dispositivos mecnicos, eletrnicos (como oscomputadores)oudenaturezamista. Paraqueaautomaodeumatarefasejabemsucedida

    Projeto Ejovem Mdulo II

    Aoacordar,tenhoumalgoritmopara

    Fazerocaf?

  • Logica de Programao 10

    necessrio que a mquina que ir realizla seja capaz de desempenhar cada umadas etapasconstituintesdoprocessoaserautomatizadocomeficincia,demodoagarantirarepetiodomesmo.Assim,necessrioquesejaespecificadocomclarezaeexatidooquedeveserrealizadoemcadaumadasfasesdoprocessoaserautomatizado,bemcomoasequnciaemqueestasfasesdevemserrealizadas.

    Aessaespecificaodasequnciaordenadadepassosquedeveserseguidaparaarealizaodeumatarefa,garantindoasuarepetibilidade,dseonomedealgoritmo.

    Ao contrrio do que se pode pensar, o conceito dealgoritmonofoicriadoparasatisfazerasnecessidadesdacomputao.Pelocontrrio,aprogramaodecomputadores apenasumdoscamposdeaplicaodosalgoritmos. Naverdade,h inmeroscasosquepodemexemplificarouso(involuntrioouno)dealgoritmosparaapadronizaodoexercciodetarefasrotineiras.Noentanto,daquipordiantea nossa ateno se volta para automao de tarefasutilizandocomputadoreseparaistodefiniremosoquelgicade programao. Os algoritmos so descritos em umalinguagemchamadapseudocdigo.

    Estenomeumaalusoposteriorimplementaoemumalinguagemdeprogramao,ouseja,quandoformosprogramaremumalinguagem,porexemploVisualBasic,C,C++,java,etc,estaremosgerandonossoscdigousandoaferramentaVisuAlg.

    Exemplo:Precisopagarumcontadeluz.

    OvalordacontaedeR$45,25reais.

    PortantoprecisodeR$45,25reaisparapagaraconta.

    Pagareiacontaas3:00hdatarde.

    Volteiparacasa.

    1.4. Lgicadeprogramao.Algicadeprogramaonecessriaparapessoasquedesejamtrabalharcomdesenvolvimento

    desistemaseprogramas,assim,elapermitedefinirasequncialgicaparaacriaodeaplicativos.Significaousocorretodasleisdopensamento,daordemdarazo,doprocessoderaciocnioesimbolizaoformaisnaprogramaodecomputadores.Comissocriasetcnicasquecooperampara a produode solues logicamente vlidas e coerentes, que resolvamcomqualidadeosproblemasquesedesejaprogramar.

    Ento o que lgica? Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.

    Usaroraciocnioalgoabstrato,intangvel.Ossereshumanostemacapacidadedeexpressloatravsdepalavrasouescrita,queporsuavezsebaseiaemumdeterminadoidioma,quesegueumasriedepadres(gramtica).Ummesmoraciocniopodeserexpressoemqualquerumdosinmeros,mascontinuarrepresentandoomesmoraciocnio,usandoapenasoutraconveno.

    Em programao temos vrias linguagens como, java, C, php,Python,delphidentremuitasoutrasqueexistem,poremcadaumadelastemumpadroprprio.Essasporsuavez,somuitoatreladasaumagradediversidadededetalhescomputacionais, mascomomesmoraciocnio,seguindoasregrasdalinguagem,podeserobtidoomesmoresultado.

    Projeto Ejovem Mdulo II

  • Logica de Programao 11

    1.5. OqueumalgoritmoUmalgoritmo formalmenteumasequncia finita depassos que levamaexecuodeuma

    tarefa.Podemospensaremalgoritmocomoumareceita,umasequnciadeinstruesquebuscaumametaespecfica.Estastarefasnopodemserredundantesnemsubjetivasnasuadefinio,logo,devemserclaraseprecisas.

    Os algoritmos servem como modelo para programas, pois sua linguagem intermediria alinguagemhumanaeaslinguagensdeprogramao,sendoento,umaboaferramentanavalidaodalgicadetarefasaseremautomatizadas.Osalgoritmos,servempararepresentarasoluodequalquerproblema,masnocasodoprocessamentodedados,elesdevemseguirasregrasbsicasdeprogramaoparaquesejamcompatveiscomaslinguagensdeprogramao.

    Poressemotivoosalgoritmossoindependentesdaslinguagens.Aocontrriodeumalinguagemde programao, no existe um formalismo rgido de como deve ser escrito o algoritmo. Oalgoritmodeveserfcildeseinterpretarefcildecodificar,ouseja,eledeveserointermedirioentrealinguagemfaladaealinguagemdeprogramaoaqualfordefinir.

    Como exemplos de algoritmos podemos citar os algoritmos das operaes bsicas (adio,multiplicao,divisoesubtrao)denmerosreaisdecimais.Outrosexemplosseriamosmanuaisdeaparelhoseletrnicos,comoumDVDplayer,aparelhoscelulares,televisores,queexplicampassoapassocomooperar,programar,gravarumevento,listarsuasfotos,etc.

    Atmesmoascoisasmaissimples,podemserdescritasporsequnciaslgicas.Porexemplo:

    Trocarumalmpada.PegarumaescadaColocaraescadanolocalcerto.PegaralmpadanovaSubirnaescada.Retiraralmpadavelha.Colocaralmpadanova.Descerdaescada.Guardaraescada.Colocaralmpadavelhanolixo.Ligarointerruptorparatestar.Somardoisnmerosquaisquer.EscrevaoprimeironmeronoretnguloAEscrevaosegundonmeronoretnguloBSomeonmerodoretnguloAcomnmerodoretnguloBecoloqueoresultadonoretnguloC

    1.6. Porqueimportanteconstruirumalgoritmo.Saber construir algoritmos fundamental na formao de profissionais de informtica ou

    computaoecomotal,proporcionarcondiesparaessaaprendizagemumconstantedesafioaosprofessoreseprofissionaisdarea.

    Umalgortimotemumpapelimportante,poiseledeterminadequeformaspodemosresolverumdeterminado problema, umprogramade computador por exemplo, desenvolvido commuitalgicaeprincipalmenteumconjuntodealgortimos.

    Outraimportnciadaconstruodosalgoritmosqueumvezconcebidaumasoluoalgortmicapara um problema, esta pode ser traduzida para qualquer linguagem de programao e seragregada das funcionalidades disponveis nos diversos ambientes; costumamos denominar esseprocessodecodificao.

    Projeto Ejovem Mdulo II

  • Logica de Programao 12

    1.7. Asmaneirasderepresentarmosumalgoritmo.Existemdiversasformasderepresentaodealgoritmos,masnohumconsensocomrelaoa

    melhor delas para ser aplicada na resoluo do problema proposto. Algumas formas derepresentaodealgoritmostratamosproblemasapenasemnvellgico,abstraindosededetalhesdeimplementaomuitasvezesrelacionadoscomalgumalinguagemdeprogramaoespecfica.

    Poroutroladoexistemformasderepresentaodealgoritmosquepossuemumamaiorriquezadedetalhesemuitasvezesacabamporobscurecerasideiasprincipaisdoalgoritmo,dificultandoseuentendimento.Sendoassimtemosasseguintesformas:

    DescrioNarrativa;FluxogramaConvencional;Pseudocdigo,tambmconhecidocomoPortugusEstruturadoouPortugol.

    1.7.1. Descrio Narrativa.Nesta forma de representao os algoritmos so expressos diretamente em linguagem

    natural.Comoexemplo,observeosalgoritmosseguintes:

    Estarepresentaopoucousadanaprticaporqueousodalinguagemnaturalmuitasvezesdaoportunidadeamasinterpretaes,ambiguidadeseimprecises.

    Porexemplo,ainstruoafrouxarligeiramenteasporcasnoalgoritmodatrocadepneusestasujeitaainterpretaesdiferentesporpessoasdistintas.Umainstruomaisprecisaseria:afrouxaraporca,girandoa30graunosentidoantihorrio.

    Por mais simples que seja um algoritmo narrativo, pode haver uma grande quantidade dedetalhes,queporsuavezsegueumconjuntoderegrasdentrodasequenciaaqualpertencem.

    1.7.2. Fluxograma Convencional.umarepresentaogrficadealgoritmosondeformasgeomtricasdiferentesimplicamaes

    (instrues,comandos)distintos. Talpropriedadefacilitaoentendimentodasideiascontidasnosalgoritmosejustificasuapopularidade.

    Estaformaaproximadamenteintermediriaadescrionarrativaeaopseudocdigo(subitemseguinte),poismenosimprecisaqueaprimeirae,noentanto,nosepreocupacomdetalhesdeimplementao do programa, como o tipo das variveis usadas. Notase que os fluxogramasconvencionais preocupamse comdetalhes de nvel fsico da implementao do algoritmo. Porexemplo,figurasgeomtricasdiferentessoadotadaspararepresentaroperaesdesadadedadosrealizadasemdispositivosdistintos.

    ExistemdiversasferramentasparacriaodefluxogramacomoJude,MicrosoftVisio,Dia(usadonolinux),dentreoutras,cadaumadelastemumavantagememparticular.

    Projeto Ejovem Mdulo II

  • Logica de Programao 13

    Trabalharemoscomoeditordediagramachamado Dia,ondepodemosfacilmenteinstalarnoLinuxesualicenadelivreacesso.

    Dica:Pesquiseousodessasferramentaspormeiosdainternet,amigosouprofessores.

    Observe as principais formas geomtrica usadas para representao de Fluxogramas dealgoritmos:

    InciooufimdofluxogramaOperaodeentradadedados

    Operaodeatribuio Deciso

    Operaodesadadedados

    Umfluxogramaseresumeaumnicosmboloinicialporondeaexecuodoalgoritmocomea,eumoumaissmbolosfinais,quesopontosondeaexecuodoalgoritmoseencerra.Partindodosmboloinicial,hsempreumnicocaminhoorientadoaserseguido,representandoaexistnciadeumanicasequnciadeexecuodasinstrues.Istopodesermelhorvisualizadopelofatodeque,apesardevrioscaminhospoderemconvergirparaumamesmafiguradodiagrama,hsempreumnicocaminhosaindodesta.Exceesaestaregrasoossmbolosfinais,dosquaisnohnenhumfluxo saindo, e os smbolos de deciso, de onde pode haver mais de um caminho de sada(usualmentedoiscaminhos),representandoumabifurcaonofluxo.

    O exemplo ao lado representa um fluxogramaconvencional, mostrandoarepresentaodoalgoritmodeclculodamdiadeumalunosoba formadeumfluxograma.Aimagemabaixoumarepresentaonodiagramade

    Chapin. (no abordaremos esse diagrama, nessaapostila).

    Projeto Ejovem Mdulo II

  • Logica de Programao 14

    1.7.3. PortugusEstruturadoouPseudocdigo.Estaformaderepresentaodealgoritmosricaemdetalhes,comoadefiniodostiposdas

    variveis usadas no algoritmo. Por assemelharse bastante a forma emque os programas soescritos,encontramuitaaceitao. Naverdade,estarepresentao suficientementegeral parapermitir a traduo de umalgoritmo nela representado para uma linguagemde programaoespecficasejapraticamentedireta.Aformageraldarepresentaodeumalgoritmonaformadepseudocdigoaseguinte:

    Algoritmo uma palavra que indica o incio da definio de um algoritmo em forma depseudocdigo.

    I Nomedoprograma: umnomesimblico dadoaoalgoritmocoma finalidadededistinguilosdosdemais.

    IIVar:consisteemumaporoopcionalondesodeclaradasasvariveisglobaisusadasnoalgoritmoprincipal;

    IIIIncioeFim: sorespectivamenteaspalavrasquedelimitamoincioeotrminodoconjuntodeinstruesdocorpodoalgoritmo.

    Oalgoritmodoclculodamdiade umaluno, na formadeumpseudocdigo, fica daseguinteformanovisualg:

    Dica: O Visual ser a ferramenta que utilizaremos no decorrer do aprendizado,lembrandoquenousaremostodososrecursosdisponveisdiretamentenaferramenta,umapartepraticacomprogramaolgicadentrodoVisualg, aoutramostraconceitosquesologicamenteutilizadosnasmaioriasdaslinguagensdeprogramao,umavezque, at ento, aversodoVisualnoabrangepraticartodocontedocontidonessaapostilacomoregistos,manipulaodearquivo,dentreoutros.

    Projeto Ejovem Mdulo II

  • Logica de Programao 15

    1.8. EXERCCIOSPROPOSTOS1)Crieumasequncialgicaparasacardinheiroemumcaixaeletrnico.

    2)Crieumasequncialgicaparadeterminarseumnumeroparouimpar.

    3)Crieumfluxogramaparaasquestesumedois.

    4)dadoofluxogramaabaixodetermine:

    C=capital,ex:R$1.000,00

    T=tempoemanos,ex:2anos

    I=Taxadejuros,ex:5%

    ousurioentracomessesvaloresesabequantoecalculadoemjurossimples.

    a)quaisasentradasdedados.

    b)qualoprocessoqueestsendoexecutado.

    c)qualserasadadeinformaoseousuriodigitar1025,3,12.

    5)Resolvaasseguinteslgicas:

    I Umtimedefutebolganhou8jogosmaisdoqueperdeueempatou3jogosmenosdoqueganhou,em31partidasjogadas.Quantaspartidasotimevenceu?

    IIUmapessoasupequeseurelgioest 5minutosatrasado,mas,naverdade,eleest 10minutosadiantado.Essapessoaquechegaparaumencontromarcado,julgandoestar15minutosatrasadaemrelaoaohorriocombinado,chegou,narealidade,nahoracertaemquantosminutosatrasados?

    IIITrsmsicos,Joo,AntnioeFrancisco,tocamharpa,violinoepiano.Contudo,nosesabequemtocaoqu.SabesequeoAntnionoopianista.MasopianistaensaiasozinhoTera.OJooensaiacomoVioloncelistasQuintas.Quemtocaoqu?

    IVExistemtrsmulheres,DonaRosa,DonaBranca,DonaLilas,Donabrancadiz:ascoresde vestidoqueestamos usandocombinamcomnossos nomes, masnoestamos usandoa cor doprprionome,apessoaqueestdelilasdiz:verdade,quisascoresquecadaumaestusando?

    6)Supondoquevoctenhaplanejadonoseudiaposteriorirparaocolgio,apsissopagarumaconta no banco, aps isso ir trabalhar,crie umalgoritmoo mais detalhado possvel que possasatisfazertodooplanejamentocitado:

    7)Faaumalgoritmoparaimprimirumdocumento.Descrevacomdetalhes.

    8)Faaumalgoritmoparacolocarumquadroemumaparede.Descrevacomdetalhes.

    Projeto Ejovem Mdulo II

  • Logica de Programao 16

    Captulo2. TpicosPreliminaresObjetivos

    Apresentar basicamente alguns tipos de dados a ser implementados e adotados; Falar qual sua importncia; Diferenciar varivel e constante; Apresentar comados e processo de entrada.

    2.1. Tiposprimitivos.Todo o trabalho realizado por um computador baseado na manipulao das informaes

    contidas em sua memria. A grosso modo de expressarse, estas informaes podem serclassificadasemdoistipos:

    As instrues, quecomandamo funcionamentodamquinaedeterminamamaneira comodevemsertratadososdados.Asinstruessoespecficasparacadamodelodecomputador,poissofunesdotipoparticulardeprocessadorutilizadoemsuaimplementao.

    Osdadospropriamenteditos,quecorrespondemaporodasinformaesaseremprocessadaspelocomputador.

    2.1.1. TiposdePrimitivosdeDados

    Quaisquerdadosasertratadonaconstruodeumalgoritmodevepertenceraalgumtipo,queirdeterminarodomniodeseucontedo.Ostiposmaiscomunsdedadossoconhecidoscomotipos primitivos de dados, so eles: inteiro, real, caractere e lgico. A classificao que serapresentadanoseaplicaanenhumalinguagemdeprogramaoespecfica,pelocontrrio,elasintetizaospadresutilizadosnamaioriadaslinguagens.

    Inteiro:todoequalquerdadonumricoquepertenaaoconjuntodenmeros

    inteirosrelativos(negativo,nulooupositivo).Exemplos:{...4,3,2,1,0,1,2,3,4,...}.

    Real:todoequalquerdadonumricoquepertenaaoconjuntodenmerosreais

    (negativo,nulooupositivo).Exemplos:{15,34;123,08;0,00512,0;510,20}.

    Numrico: tratasedetodoequalquernmeroquepertenaaoconjuntodosinteirosoureais,tambmabrangenmerosbinrios,octalehexadecimal.

    Dadosliterais:todoequalquerdadocompostoporumconjuntodecaracteres

    alfanumricos(nmeros,letrasecaracteresespeciais).Exemplos:{AlunoAprovado,10%demulta,Confirmaaexcluso??,S,9930002,email,123nm,fd54fd}.

    Lgico:Aexistnciadestetipodedado,decertomodo,umreflexodamaneiracomooscomputadoresfuncionam.Muitasvezes,estestiposdedadossochamadosdebooleanos,devidosignificativacontribuiode Boole areadalgicamatemtica.Atodoequalquerdadoquespode assumir duas situaes dados biestveis,algo comopor exemplo {0/ 1, verdadeiro/falso,sim/no,true/false}.

    2.2. Constantes.Umaconstanteumdeterminadovalorfixoquenosemodificaaolongodotempo,durantea

    execuodeumprograma.Conformeoseutipo,aconstanteclassificadacomosendonumrica,lgicaeliteral.

    Projeto Ejovem Mdulo II

  • Logica de Programao 17

    Nesse exemplo temos o nmero 4 como constante, ou seja, ele nunca se altera.

    2.3. Varivel.Umavarivelumespaoreservadonamemriadocomputadorparaarmazenarumtipode

    dado determinado. As variveis devem receber nomes para poderem ser referenciadas emodificadasquandonecessrio.Umprogramadeveconterdeclaraesqueespecificamdequetiposoasvariveisqueeleutilizareasvezesumvalorinicial.Tipospodemserporexemplo:inteiros,reais,caracteres,etc.Asexpressescombinamvariveiseconstantesparacalcularnovosvalores.

    Vejaumexemplodevariveisdotipocarctereoutradotipointeiro,eleseroarmazenadosnamemria:

    Vejaumexemploondeatribumosvaloresasvariveisnomeeidade:

    2.4. Formaodeidentificadores.Todavariveldevepossuirumnomeparasuaidentificaodentrodeumalgoritmo,masvale

    ressaltarquenopodemosatribuirqualquernomeaela,eumavezatribuindo,verificarseeleumidentificadorvlidoouno.Nafiguraabaixoobservamosumresumoatravsdeumgrficoquesegueresumidamenteasregras.

    Representamos nomes escolhidos para rotular as variveis,procedimentos e funes,normalmente,obedecemasseguintesregras:

    1. Oprimeirocarcterdeveserumaletra.

    2. Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto :{a,b,c,..z,A,B,C,...Z,0,1,2,...,9,_}.

    3. Osnomesescolhidosdevemexplicitarseucontedo.EX:A,B1,BC3D,SOMA,CONTADOR.

    obs.:Umexemplodeidentificadorinvlidoseria2ABouqualqueroutroiniciadoporumdgito.

    2.5. DeclaraodevariveisTodavarivelpossuialgumcontedo,queserarmazenadoporelaemanipuladopeloalgoritmo.

    Asvariveisqueseroutilizadasnosalgoritmosdevemserdeclaradasinicialmente.Adeclaraodeumavarivelindicaotipodedadoqueelapodeguardarnodecorrerdaexecuodoalgoritmo(ounodecorrerdaexecuodoprogramaquefuturamenteserconstrudo).

    Paradeclararmosumavarivel,temosquecriarumidentificadorparaela,queseronomedavarivelnoalgoritmo,etambmtemosquedefinirotipodedadoqueavarivelpodearmazenar.Faremosadeclaraodevariveisobedecendoaoseguintepadro:

    Projeto Ejovem Mdulo II

  • Logica de Programao 18

    Portugol: [nome do tipo de varivel] : [ nome da varivel] ;PadroVisualg: [nome da varivel] : [ nome do tipo de varivel]

    PercebemosqueexisteduasdiferenanadeclaraodasvariveisdoportugolemrelaoadoVisual,quejustamenteatrocadeposieseaausnciadepontoevirgula.

    Exemplo:

    Visualg: Portugol:alunos : caracter caracter : alunos ;valor : inteiro inteiro : valor ;b : real real : b ;

    2.6. Comandosdeentradaesada.Emumalgoritmoprecisorepresentaratrocadeinformaesqueocorrerentreomundoda

    mquinaeonossomundo,paraisso,devemosutilizarcomandosdeentradaesada,sendoque,anvel de algoritmo esses comandos representam apenas a entrada e a sada dainformao,independe do dispositivo utilizado (teclado, discos, impressora, monitor,...), mas,sabemosquenaslinguagensdeprogramaoessaindependncianoexiste,ouseja,naslinguagensdeprogramaotemoscomandosespecficosparacadatipodeunidadedeEntrada/Sada.

    2.6.1. COMANDODEENTRADASDEDADOSPara que possamos obter dados do meio exterior para uso do computador (memria

    principal),estestmdeviratravsdosdispositivosdeentrada.Damesmaforma,asinformaesquesoproduzidas,temdeserlevadasaomeioexterno(umarquivo,umaimpressora,umatelaetc.)atravsdeumdispositivodesada.Paraisso,utilizamosdoiscomandosassimdefinidos:

    Comandoleiatemafinalidadedel,domeioexterno,aprximainformaodisponvelparaleitura e armazenana(s) varivel(eis) discriminada(s) aps ocomando, entre parnteses. Maistardeaprenderemoscomoespecificaraleituradeumdadoqueestarmazenadoemumarquivoedequearquivoestsendolidoodado.

    Exemplo:leia(v)Ovalordavarivel(v)dadoporumdispositivodeentrada.

    Projeto Ejovem Mdulo II

  • Logica de Programao 19

    2.6.2. COMANDODESAIDASDEDADOSComando escreva ou escreval: Imprime (na tela ou na impressora) o contedo da(s)

    varivel(eis) especificada(s) aps o comando, entre parnteses. No ser preocupao nossa aformataoderelatrios,masocomandopermiteaimpressodetexto(entre),sefornecessriaparaclarezaouespecificaodoqueestsendoimpresso.

    Exemplo:escreva(x)Ovaloratualdavarivel(x)informadoparaumdispositivodesada.

    Valeressaltarqueemlinguagensdeprogramaogeralmenteterminaumcomandocompontoevirgula(;),masparaousonoVisualg,noprecisamosusar;parafecharocomando,umavezqueissoocorredeformaautomtica.

    Exemplo:escreva(x)Ovaloratualdavarivel(x)informadoparaumdispositivodesada.

    em visualg: numero : inteiroportugol: inteiro numero;

    Tambmpodemosconcatenarvaloresnocomandodesada.Issovariamuitodeumalinguagemparaoutra,porexemplo:

    aoexecutar(tecladeatalhoF9)issoimprimenatelaresultadoseguinte:

    Esseexemploaoladoutilizamososasubtraodedoisnmeroselogoapsimprimimosoresultadonatela.

    Projeto Ejovem Mdulo II

  • Logica de Programao 20

    Oresultadodasadadesseprogramaaseguinte:

    Exemplocomocomandoleiaeescreva:

    cdigofonte. sadadaexecuo:

    utilizamosoescrevalquandoqueremosumaquebradelinha,troqueporescrevaepercebaoqueacontece:

    2.7. Expressesaritmticas.Quando construmos algoritmos comum trabalharmos comexpresses matemticas para a

    resoluo de alguns problemas. As expresses matemticas podem fazer uso de operadoresaritmticoserelacionais.Asvariveis(ouconstantes)manipuladaspelosoperadoressochamadasdeoperandos.Observeodiagrama:

    Exemplos:

    A+B (A e B so os operados, e + o operador da expresso).((2 * A) + 5)(B/A)((A//2)*B)15

    Projeto Ejovem Mdulo II

  • Logica de Programao 21

    2.8. OperadoresaritmticosChamamos de operadores aritmticos o conjunto de smbolos que representa as operaes

    bsicasdamatemtica.

    Pararepresentapotenciaeradiciaoutilizamos:

    Operador Funo Significado Exemplos

    ^ Potenciao xelevadoay 2^8

    raizQ(x) Radiciao Raizquadradadex raizQ(9)

    Exemplo:

    cdigofonte. Sadadaexecuo.

    Usaremosoutrasoperaesmatemticasnoconvencional,pormmuitoteisnasconstruodealgoritmo,quesoorestoeoquocientedadivisointeira,conformeabaixo:

    Operador Funo Exemplo

    mod Restodadiviso 9mod4resoltaem1

    div Quocientedadiviso 9div4resultaem2

    Exemplo:algortimoquepossuiasquatrosoperaes:cdigofonte. Sadadaexecuo.

    algortimoquecalculaoquocienteerestodeumadiviso:cdigofonte. Sadadaexecuo.

    Projeto Ejovem Mdulo II

  • Logica de Programao 22

    2.9. ExpresseslgicasAs expresses lgicas sempre retornaram True (Verdadeiro) e False (Falso). Para se montar

    expresseslgicasutilizamosdeoperadoresrelacionaiseoperadoreslgicos.

    Exemplo:Visualg: Portugol:a

  • Logica de Programao 23

    2.11. Operadoreslgicos.Soutilizadosparaavaliarexpresseslgicas.Estesoperadoresservemparaavaliarexpresses

    queresultamemvaloreslgicosendoverdadeirooufalso:

    Esses operadores tema finalidade de novas proposies lgicas composta a partir de outraproposieslgicassimples.Observe:

    Operador Funo

    no negao

    e conjuno

    ou disjuno

    Com isso podemos podemos construir a Tabela verdade onde trabalhamos com todas aspossibilidadescombinatriaentreosvaloresdediversasvariveisenvolvidas,asquaisseencontramemapenasduassituaes(VeF),eumconjuntodeoperadoreslgicos.Vejaocomportamentodessasvariveis:

    OperaodeNegao:

    A (not)noA

    F V

    V F

    Operaodeconjuno:

    A B AeB

    F F F

    F V F

    V F F

    V V V

    Operaodedisjunonoexclusiva:

    A B AouB

    F F F

    F V V

    V F V

    V V V

    Exemplos:

    ACHOU=falso,ACHOU=true;NUM=9(4>5)e(5>3)=>falsoeverdadeiro(1)=falso(0)noACHOU=>verdadeiro

    Projeto Ejovem Mdulo II

  • Logica de Programao 24

    Exemplo:cdigo-fonte. Sada da execuo.

    2.12. Comandodeatribuio.O operador de atribuio utilizado para atribuir valores aos identificadores(variveis e

    constantes)enamontagemdeexpresses(aritmticas,lgicaseliteral).

    Comissopodemosdefinir semprequeumtipodedadodeve ser compatvel como tipodavarivel.

    Afiguraabaixomostraemdiagramaasuasintaxe:

    Ovalordaexpressoatribudoaoidentificador(varivel).

    X

  • Logica de Programao 25

    2.13. EXERCCIOSPROPOSTOS1)Comopodemosdefiniroconceitodetiposprimitivosdedados.

    2)Citealgunstiposprimitivosederexemplos.

    3)Qualadiferenaentreconstantesevariveis.

    4)Comopodemosdefiniraformaodeumidentificadorvlido?criecincoidentificadoresnoVisualg(onomedeveraserumanicaletraeapsissoostipos).

    5)CrieoseguintecdigonoVisualgedigaqualoresultadofinal.

    6)Crieumprogramanoondepodemosreceberdoisnmerosdigitadospelousurionofinalelesomeosnmeroseimprimaoresultado.

    7)Dadoaformula:

    crieumprogramaparacalcularaformuladeBhaskara.Ondenofinalmostreaousuriox1ex2separadamente.

    Dica:ousuriodigitatrsvalores,a,bec,oprogramaterduasvariveisparareceberocalculo,x1 e x2.Paracalcularraizquadradauseocomando raizQ(x) onde xonumeroquetemvalorinteiro,atribuaoresultadodaraizasomaedepoisasubtrao.

    ex:b raizQ(25),brecebe5,poisraizde25,ebdeveserdotiporeal.

    8)Crieumdiagramaondepodemosrepresentaroprogramadaquesto7.

    9)Crieumprogramaquerecebapelousurioonome,anodenascimento,anoatual,ecalculeaidade,mostrandoaseguintesadaex:meunomeJananaetenho23anosdeidade.

    10)crieumdiagramapararepresentaodaquesto9.

    11)usandoocomandootipodedadologicodoVisualg,testeosoperadoresrelacionais.ex:a:logico,a 12

  • Logica de Programao 26

    Captulo3. EstruturasdeControleObjetivos

    Mostrarconceitoseestruturasequencialdefluxo,emetapaslgicas,ondepodeseassimilarsuasvariaes,combinaeseequivalncias;Apresentarestruturasderepetioesuaaplicao.

    Asestruturadecontrolededadosoresponsveispelamanipulaodosdadosconformesejanecessrionarealizaodeumprocessamento.Cadainstruoprogramvelpossuiumalgicadeoperaoeestabeleceumasequenciadeaesaseremefetuadasouverificadas.

    Quando estivermos criando os algoritmos sero necessrias as manipulaes de dadosrespeitandoasequencialgicadecadacomando,buscandosemprealcanarosobjetivosalmejadospelosalgoritmos.Basicamenteasestruturasdecontrolededadossodetrstiposprincipais:

    Sequencial:conjuntodecomandosseparadosporpontoevrgula(;)quesoexecutadosemumasequncialineardecimaparabaixo.

    Seleo:apartirdeumtestecondicional,umainstruo,ouumconjuntodeinstrues,podemserexecutadosouno,dependendoexatamentedoresultadodotesteefetuado.

    Repetio:umainstruoouoconjuntode instruesqueser executadorepetidamente, deacordocomoresultadodeumtestecondicional.

    3.1. Estruturasequencial.Aestrutura sequencial a mais convencional entre todas as possveis, pois ela consiste na

    execuodeumainstruodecadavez,ondeoencerramentodaprimeirainstruopermiteoacionamentodainstruoseguinte,respeitandoaordemdecimaparabaixo.

    Observeoexemploaseguir:

    Declaraes real NOTA;

    Inicio escreva("Informa a nota da prova: ");

    leia(NOTA);

    escreva("Nota =", NOTA);

    FimOmesmoexemplonoVisualgfica:

    Projeto Ejovem Mdulo II

  • Logica de Programao 27

    Oalgoritmopropostonoexemploanterior descritivoerespeitaasregrasdeorganizaoesintaxe do portugus estruturado. Porm, qual a primeira instruo a ser executada nestealgoritmo?

    Eleserexecutadodemaneirasequencial,ondeapartirdapalavrareservada Declaraes asinstruesvosendoexecutadasdecimaparabaixoeaprximainstruosexecutadaapsaanteriorserencerrada.Opontoevrgulamarcaexatamenteofinaldainstruoaserexecutada,nocasodoscomandodoVisualgvalelembrarquesuasinstruesnofinalizamcompontoevirgula,poisaopassarpraprximalinhaoprogramareconhececomofinalizaodainstruoanterior.

    1. PrimeiraexecuoseracriaodavarivelNOTA.

    2. Segundaseraescritadamensagemqueorientaousurio.

    3. Naterceiraserarmazenadoovalorinformadopelousurio.

    4. Aquartaeltimamostrarumamensagemeovalorlido

    importanteobservarquesempreser executadoprimeirooblocodedeclaraesenasequencia oblocode instrues. Aexecuoda palavra reservada Fim encerra a execuodoalgoritmo.

    3.2. Estruturadeseleo.Este tipo de estrutura permitir a escolha de um caminho sequencial a ser executado.

    Primeiramente,elaefetuaumtestecondicionalquedefinirocaminhodeexecuodoalgoritmobaseadonoresultadodesteteste.

    Os testes condicionais so baseados na lgica convencional, podem obter o resultado deverdadeirooufalso.Estestestespodemserefetuadossobreoperaesrelacionaissimplesoucomexpresseslgicascomplexasqueresultememumvalorlgico(verdadeirooufalso).

    Asestruturasdeseleopodemserclassificadasde4formasdiferentes,sendoestaclassificaobaseadanaorganizaolgicaexistenteemcadasituao.Estaclassificaoseresumeem:

    >Seleosimples.>Seleocomposta.>Seleoencadeada.>Seleodemltiplaescolha.

    3.2.1. SeleoSimplesNeste tipo de seleo proposto um teste condicional, que sendoverdadeiro possibilitar a

    execuodeumainstruoouumconjuntodeinstrues(blococondicional)especfica.

    Portugusestruturado:

    Acompanhe a seguir as regras de representao em algoritmo para a tcnica descritiva doportugusestruturado.

    Sintaxe: : se () ento comando 1; comando 2; : : comando n; fim se;

    Projeto Ejovem Mdulo II

  • Logica de Programao 28

    Exemplo: NoVisualg:

    Declaraes inteiro IDADE; Inicio escreva("Informe sua idade: "); leia(IDADE); se (IDADE < 15) ento escreva ("Voc uma criana"); fim se;

    Fim

    EstealgoritmoserexecutadosequencialmenteatchegaraocomandoSE(comandocondicionalSE)querealizarotestecondicionalparaverificaraveracidadedovalorinformadopelousurioearmazenadonavarivelIDADE.

    Seelaforverdadeira,ouseja,formenorque15amensagem"Vocumacriana"sermostradanatela.Seovalorinformadopelousurionoatenderaotestecondicional,amensagemnoserexibidaeoblococondicionalnoserexecutado.

    Fluxograma:

    Abaixatemosnofluxogramaosimboloquerepresentaumadecisoouseleoeaseguinte:

    Assuasvrticesindicaqualasadacasoelafor verdadeiraoufalsa.

    Acompanhe a seguir a representao emalgoritmonatcnicagrficadofluxograma:

    Exercciorpido:

    1)Crieumalgoritmoqueleiaumnmeroedigaseelemaioroumenorque10.

    2) Crie um algoritmo que leia dois nmeros edeterminequalomaiorentreeles,imprimindonatela (o primeiro nmero o maior, o segundonmeroeomaior)deacordocomovalordigitado.

    Projeto Ejovem Mdulo II

  • Logica de Programao 29

    3.2.2. SeleoCompostaAseleocompostasempreexecutar umblococondicional,poisseoresultadodoteste

    condicional for verdadeiro umconjunto de instrues ou somente umaser executada e se oresultadonoforverdadeiroumoutroconjuntodeinstrues,ousomenteuma,serexecutadatambm.

    Estetipodeseleosempreidentificarumnicocaminhodeinstruesaserpercorrido,dependendosempredoresultadodaveracidadedotestescondicionalexecutado.

    Sintaxe: : se () ento comando 1; : comando n; seno comando 5; : comando m; fim se;

    Exemplo: noVisualg

    Declaraes

    inteiro idade;

    Inicio escreva("Informe sua idade: "); leia(idade);

    se (idade < 15) ento escreva ("Voc uma criana"); seno escreva("Voc adulto");

    fim se; Fim

    Seaidadeinformadaformenorque15entoamensagemaclassificarcomoumacriana,senoamensagemapresentadaserqueVocadulto.

    Projeto Ejovem Mdulo II

  • Logica de Programao 30

    Vejacomoofluxogramaquerepresentaocdigoanteriorabaixo:

    Exercciorpido:

    1) Crie umalgoritmoque leia suaidadeedigasevocdemaioridadeoudemenoridade.

    2) Crie um algoritmo que umnmero, caso ele seja menor que 0,transforme ele em positivo, se no,imprimaseuvalornatela.

    3.2.3. SeleoencadeadaAinstruodeseleo(SE)podeserencadeadaumadentrodaoutra,sejanoblocoverdadeiro

    (ento)oufalso(seno).Todasasinstruesprogramveispodemestardentrodequalquerumdosblocosdainstruodeseleo.

    Oencadeamentodestasinstruestambmchamadadeaninhamentodeinstruesdeseleooucondicionalvrias,noexistindoumlimitedequantostestescondicionaispodemestardentrodeoutro.Quemestabeleceestetipodelimiteasoluolgicapropostanoalgoritmoparaalcanarumasoluoeficiente.

    Sintaxe:

    : se () ento ; seno

    se () ento ;

    seno se () ento

    : fim se;

    fim se; fim se;

    Projeto Ejovem Mdulo II

  • Logica de Programao 31

    Exemplo: noVisualg:

    Declaraes inteiro idade;

    Incio escreva("Informe sua idade: "); leia(idade);

    se (idade < 20) ento se(idade < 15) ento escreva ("Voc criana"); seno escreva ("Voc adolescente"); fim se; seno se(idade < 50) ento escreva("Voc adulto"); seno escreva("Voc velho"); fim se; fim se;

    Fim

    Fluxograma:

    Exercciorpido:

    1)Crieumalgortimoquerecebaostrslados(A,B,C)deumtringuloedigadeele tringuloescaleno(todososladosdiferente),issceles(somentedoisladosiguais)ouequiltero(todososladosiguais).2)Dadotrsvariveis,crieumalgoritmoquedeterminequemamaior,aintermediariaeamenor.

    Projeto Ejovem Mdulo II

  • Logica de Programao 32

    3.3. Seleodemltiplaescolha.Umaoutrainstruocondicional, muitoutilizadanasavaliaesdeigualdade, aseleode

    mltiplaescolha.Elaverificasomenteaigualdadedovaloravaliado,ondesuaveracidaderesultarnaexecuodeumbloco,oudeumanicainstruoespecfica.

    Sintaxe:

    :

    escolha (X)

    caso :

    comandos;

    caso :

    comandos;

    caso :

    comandos;

    caso contrario:

    comandos;

    fim escolha;

    , , so supostos valores a serem relacionados por meio da operao deigualdade.

    Exemplo:

    Declaraes

    inteiro estao;

    Inicio

    escreva("Digite o perodo trimestral do ano em que estamos: ");

    leia(estao);

    escolha (estao) { instruo de mltipla escolha sobre estao }

    caso 1: escreva ("vero"); { testes de igualdades sobre estao } caso 2: escreva ("outono"); caso 3: escreva ("inverno"); caso 4: escreva ("primavera"); caso contrario: escreva ("perodo invlido");

    fim escolha;

    Fim

    Projeto Ejovem Mdulo II

  • Logica de Programao 33

    NoVisualg

    Temosalgumasdiferenasdesintaxe,ondeumadelasaausnciadedoispontosapscaso,aoutraocomandooutrocasoquenoportugolrepresentadoporcasocontrario.

    3.4. Estruturasderepetio.Oprocessamentodevalorespodeocorrerdiversasvezessobreumamesmalgica, pormos

    dadosaseremmanipuladospodemserdiferentes,comonocalculodatabuadadeumnmero.Estecalculorealizaamesmaoperaodemultiplicaosobreosvaloresnumricosinteirossequencias,normalmenteiniciadosemum(1)eseguindoatonmerodez(10)quandoestamosaprendendoacalcularememorizaroresultadoobtidonestaoperao.

    Sendoassim,Vamoscriarumalgoritmoqueleiaumnmeropositivoeapresenteoresultadodesuatabuadadeumadez(110).Observeoexemploproposto:

    Exemplo:

    Supondoqueovalor

    desejadoseja2ento: Soluo(algoritmodescritivo):

    2x1=2

    2x2=4

    2x3=6

    2x4=8

    2x5=10

    2x6=12

    2x7=14

    2x8=16

    2x9=18

    2x10=20

    Projeto Ejovem Mdulo II

  • Logica de Programao 34

    Paraoexemploacimafoidesenvolvidoumalgoritmoqueatendeaoproblemaapresentado,masseosvalorestivessemquesergeradosat1000?.Assimoalgoritmonoficariamaiscomplexo,poisaoperaoaserrealizadaseriaamesma,eeleficariabemmaior.Adianteveremosasoluoparaesseproblema.

    Dica:oslaosderepetiosoconhecidoseminglscomoloopsoulooping.

    3.5. Repetiocomtestenoincioenofinal.

    3.5.1. TESTEINCIOCom o intuito de controlarmos as manipulaes necessrios sobre os dados armazenados,

    tambmpodemosutilizarasinstruesderepetio,quepermitemarepetiodeumaoperaoquantasvezesforemnecessrias,baseandoestarepetionoresultadodeumtestecondicional.

    Paraissotemosaestruturaenquantofaa.

    AinstruoderepetioENQUANTO... FAApermiteaexecuodoconjuntodecomandospertencentesaoseublocoderepetio,sendoelesexecutadosapartirdeumtestecondicionalverdadeiro. Enquantoestetestepermanecer verdadeiroarepetio executadacontinuamente,sendoencerradasomentequandoacondioforfalsa.

    Sintaxe:

    : enquanto (< condio >) faa

    ; { com um ou vrios comandos }

    fim enquanto;

    Exemplo(descritivo): NoVisualg:

    Declaraes

    realnota,media;

    inteiroaux;

    Incio

    aux 1;media 0;enquantoaux

  • Logica de Programao 35

    Fluxograma:

    Observe ao lado a representao genrica em um algoritmo grfico usando oENQUANTO...FAA.

    Exercciorpido:

    1)Crieumalgortimoquecontede1at100.2)Crieumalgortimoquereceba10nmeroseimprimanatelaapscadadigitao.3)Crieumprogramaquecontede1a52.

    3.5.2. TESTEFINALParaotestefinaltemosainstruoREPITA...AT,ondepossuicaractersticasrelevantesna

    sualgicadeexecuo.

    Asprincipaiscaractersticasdessainstruoso:

    OtestecondicionalpararealizararepetiosobreoblocodeinstruesexistenteentreapalavrareservadaREPITAeATexecutadosomentenofinaldobloco,conformeorganizaosequencialdoalgoritmo

    Oblocoentreasduaspalavrasreservadasdestainstruoserexecutadonomnimoumavez

    Arepetio executadasomenteseotestecondicional for falso, poissendoeleverdadeiroarepetioencerrada.

    Sintaxe:

    : repita

    ;{ com um ou vrios comandos }

    at ();

    :

    Projeto Ejovem Mdulo II

  • Logica de Programao 36

    Exemplo (descritivo): No Visualg:

    Declaraes real nota, media; inteiro aux; Incio aux 1; media 0; repita escreva("Informe sua nota: "); leia(nota); media media + nota; aux aux + 1; at (aux > 50); escreva("Mdia da turma = ",media /50);Fim

    Usandoarepresentaogrfica,vamosobservaromesmoexemplousandoainstruoREPITA...AT.

    Oblocoderepetiovaiserexecutadoatacondioformaiorque50.

    ObserveFluxogramaaolado:

    Exercciorpido:

    1)Crieumalgortimoqueleiaumnmeroemostrevrios*nateladeacordocomessenmero.Ex:10vaiimprimir**********.2)Crieumalgoritmoqueleiadoisnmerosemostreointervaloentreeles.Ex:5e12vai mostra:6,7,8,9,10,11.

    Projeto Ejovem Mdulo II

  • Logica de Programao 37

    3.6. Repetiocomvariveldecontrole.Naestruturaderepetiovistaatagora,ocorremcasosqueficadifcildeterminaronmerosde

    vezesqueumblocovaiexecutar.Ouseja,serexecutadoenquantoacondioforsatisfatria.

    AinstruoderepetioPARA...FAAexecutaumconjuntodeinstruesporumaquantidadedevezesbemdefinidas(conhecidas).

    Sintaxe:

    : para X de i at f passo p faa

    ;

    fim para;

    onde:

    Xumavarivelinteiraqueauxiliarnacontagemdarepetioiniciadacomovaloriatovalorfinaldef,povalordoincrementodadoavarivelX.

    Oproblemadatabuada,apresentadoanteriormente,podesersolucionadocomoalgoritmoqueusaeficientementeainstruoderepetiopara...faa.

    Soluodatabuada(descritiva):

    Declaraes inteiro valor, contador;

    Incio escreva ("Informe o valor desejado: "); leia(valor); para contador de 1 at 10 passo 1 faa escreval(valor, " x ",contador," = ", ( valor * contador) ); fim para;

    Fim

    NoVisualg:

    Projeto Ejovem Mdulo II

  • Logica de Programao 38

    Vamosacompanharoutroexemplonaaplicaodestainstruoderepetio.

    Exemplo(descritivo): NoVisualg:

    Declaraes

    real nota, soma, media;

    inteiro aux;

    Incio

    soma

  • Logica de Programao 39

    3.7. Comparaoentreestruturasderepetio.

    As estruturas de repetiopossuemumaformadiferenciada para controlar a quantidadederepeties a serem executadas. Estes controles podem ser genericamente classificados emautomticooucontroladopelousuriodoprograma.

    AUTOMTICO:Umavarivelauxiliarcontardequantasvezesserexecutadooconjuntode comandos (bloco de repetio), sem interferncia direta do usurio. O bloco serrepetidosempreaquantidadedevezprevistapelodesenvolvedordoprograma.

    CONTROLADO PELO USURIO: O programa sempre respeitar a solicitao do usurio,executandoumblocoderepetioquantas vezes foremsolicitadas pelo usurio, respeitandoalgicaexistentenoprogramadesenvolvido.

    Natabelaaseguirpodemosverumcomparativodeestruturasderepetio;

    Estrutura Condio Quantidade de execues Condio de existnciaEnquanto Incio 0 ou muitas Condio verdadeiraRepita Final Minimo 1 Condio falsaPara No tem ((vf-vi) div p)+1 v

  • Logica de Programao 40

    Reparequea estrutura para a mais complexa, umavezqueacontece vrios processos nomesmo, as estruturas repita e enquantosomuito semelhantes. Adiferena est na ordemdaexpressoeao,poisemrepitaaexpressolgicatestadanofinal,ouseja,aaoexecutapelomenosumavez.

    Comparaodasintaxe:

    enquanto:

    enquanto aux < 50 faca.......fim enquanto

    repita

    repita ......at (aux > 50); para

    para aux de 1 at 50 passo 1 faa..... fim para;

    vejaumexemplodeumprogramafeitocomastrsestruturas:

    reparequeavarivel auxiniciadavariasvezespoisacadalaoderepetioincrementadoumnovovalor,nocadode1atonumero10.

    Projeto Ejovem Mdulo II

  • Logica de Programao 41

    3.8. EXERCCIOSPROPOSTOS1)Quaisostrstiposdeestruturasdedados,edigaqualaprincipaldiferenaentreelas.

    2)Quaisasestruturasdeseleo,definacadaumadelas.

    3)UsandoestruturadeseleocrieumalgoritmonoVisualgondeousuriodigite4notasdeumalunoemostrenofinalamdiadizendoaousurioseelefoiaprovadooureprovado.

    4) Usando escolha crieumalgoritmoondeousuriodigiteumnumerode1a7,aps issoimprimaaseguintefrase,ex:aopoescolhidafoiadenmero5.

    5)Crieumfluxogramaparaaquesto4deacordocomaformaresolvida.

    6)Definaqualaprincipalfinalidadedeumaestruturaderepetio.

    7)Crieumalgoritmonovisualquerecebadoisnmeros,oprimeirodeveraserdigitadoporumapessoa,ooutroporoutrapessoa,ointuitodoalgortimoeverificarseosegundousuriochutouonumeroprximodoprimeiroouno,casoeleacerteochuteimprimanatela(useaestrutura separacomparar).

    8)usandoestruturaderepetioenquanto,crieumalgortimonoVisualgquecontede1at20.

    9)Agoracomosmesmoscdigosdaquesto9,faaumalgortimoque,aochegarem20comeceacontardenovo(acrescenteaestruturaseparareinicializaravarivel).

    10)Crieumalgortimoondeousurioentrecomotempoemminutos,apsissoeleimprimanatelaumacontagemregressiva(usequalquerestruturaderepetio).

    11)Faa um algortimo onde o usurio entre com numero e imprima a tabuada daquelenumero(usequalquerestruturaderepetio).

    12) Dadaa expressoH=1/1+3/2+5/3+7/4+.....+99/50,crie umalgoritmoquemostreovalorfinaldeH.

    13)Crieumalgoritmoqueousurioentrecomumnumeroeeledigaseparouimpar(usequalquerestruturadecomparao)..

    14) Crie umprogramaque mostre toda a tabuada de 1 at 9 (use qualquer estrutura derepetio).

    Projeto Ejovem Mdulo II

  • Logica de Programao 42

    Captulo4. EstruturasdeDadosObjetivos

    Mostraramanipulaodevetoresematrizesemsuaaplicao;Mostraraplicabilidadedessasestruturasvisandosomenteoconceitoderegistros(umavezquenoexisteregistosnasverses

    atuaisdoVisualg).

    4.1. Oqueestruturasdedados.

    Soorganizaesdedadosconstrudasapartirdacomposiodostiposprimitivosjexistentes(caractere, inteiro, real, lgico). Essesnovostiposdedadospodemarmazenarumconjuntodedadosconhecidoscomovariveiscompostas. As variveis quearmazenamesses tiposdedadospodemserclassificadasem:variveiscompostashomogneasevariveiscompostasheterogneas.

    Asvariveiscompostassoestruturasdedados(armazenamumconjuntodedados)homogneosou heterogneas. Esses dados podemser armazenados emdois tiposdevariveis: as variveisunidimensionais (conhecidas comovetores) e as variveis multidimensionais (conhecidas comomatriz).

    Odiagramaabaixomostraasregrassintticas,supondoqueovaloraseratribudoumconjuntodeinformaes:

    Lembrando que estas regras podemmudar de acordo coma linguagem. Veja a formaestruturadautilizadanoVisualg.

    Declarao:

    Inicializao:

    4.2. Variveiscompostashomogneas.As estruturas de dados homogneas permitemagrupar diversas informaes dentro de uma

    mesmavarivel.Esteagrupamentoocorrerobedecendosempreaomesmotipodedado,eporestarazoqueestasestruturassochamadashomogneas. A utilizao deste tipo deestrutura de dados recebe diversos nomes, como: variveis indexadas, variveis compostas,variveissubscritas,arranjos,vetores,matrizes,tabelasemmemriaouarrays.Osnomesmaisusadosparaessasestruturashomogneasso:matrizes(genrico)evetores(matrizdeumalinhaevriascolunas).

    Exemplos:

    Alcateia(vrioslobos),conjuntodenmerosinteiros,listadecontatos,timedefutebol,ovetornotas,quearmazenaoconjuntodenotasdaprimeiraeoutros.

    Projeto Ejovem Mdulo II

  • Logica de Programao 43

    4.3. Variveiscompostasunidimensionais.Sovariveisquenecessitamdeapenasumndiceparaindividualizarumelementodoconjunto

    quesochamadode vetores.Osvetoressousadosnoscasosemqueumconjuntodedadosdomesmotipoprecisaserarmazenadoemumamesmaestrutura.

    Exemplo:

    1. Guardar20nmerosdiferentesemummesmotipodevarivel.

    2. Listadepalavrasemumamesmotipodevarivel.

    3. 50Mdiasdealunosemummesmotipodevarivel.

    Diagrama:

    DiagramadaestruturanoVisualg:

    onde:

    Li=representaolimiteinicialdovetor.

    Lf=representaolimitefinaldovetor.

    Tipoprimitivo:representaqualquerunsdostiposbsicosdedados.

    Projeto Ejovem Mdulo II

  • Logica de Programao 44

    4.4. Declaraoemanipulao(unidimensional).Aoimaginaroelevadordeumprdiosabemosqueestecapazdeacessarqualquerumde

    seusandares.Entretanto,nobastasaberqueandardesejamosatingirsenosoubermosonomedoedifcio,poisqualquerumpossuiandares.Oqueprecisamosdeantemosaberonomedoedifcioesentonospreocuparmosparaqualdaquelesandaresqueremosir.Omesmoacontececomosvetores,vistoquesocompostospordiversasvariveise,comopodemexistirmuitosvetores,tornasenecessriodeterminarqualvetorcontmodadodesejadoedepoisespecificaremqualposioesteseencontra.Onomedovetordeterminadopormeiodoidentificadorquefoiutilizadonadefiniodevariveis,eaposio,pormeiodaconstante,expressoaritmticaouvarivelqueestiverdentrodoscolchetes,tambmdenominadandice.Apsisolarumnicoelementodovetor,poderemosmanipulloatravsdequalqueroperaodeentrada,sadaouatribuio.

    Asintaxedocomandodedefiniodevetoresaseguinte:

    Portugol: :[nomedavarivel];

    Padro Visualg: [nome da varivel] : vetor[] de [ tipo de varivel]

    Observe:

    Declarao convencional : tipo: nome[n];Declarao no Visualg: nome : identificador[n]de tipo

    notamanhodovetor.

    Exemplo:

    real:media[40];inteiro:valor[100];alunos:vetor[0..50]decaracterdias:vetor[0..31]deinteiros

    4.4.1. LeituradeDadosdeUmaMatrizdoTipoVetorAleituradeumvetorfeitapassoapasso,ouseja,umdeseuscomponentesporvezusandoa

    mesmasintaxedainstruoprimitivadaentradadedados,ondealmdonomedavarivel,deveserexplicitadaaposiodocomponentelido.

    Sintaxe:

    leia( [ ]);

    Vejaumafiguraonderepresentamosumvetorde10posiesondecadaumaguardaumanotadiferente.Pararecuperarmosovalorguardado,devemosfazerumachamadadonomedovetorpassandopraelequalaposioqueremos.Vale lembrarquesepassarmosum ndice invlidoocorrerumerronoalgoritmo.

    notas : vetor[1..10] de realescreva(notas[6])

    Projeto Ejovem Mdulo II

  • Logica de Programao 45

    Umaobservaoimportanteaser feita a utilizaodaconstruo para afimdeefetuaraoperaodeleiturarepetidasvezesemcadaumadelas,lendoumdeterminadocomponentedovetor.Defatoestaconstruomuitocomumquandoseoperacomvetores,devidonecessidadedeserealizarumamesmaoperaocomosdiversoscomponentesdosmesmos.Naverdade,sorarasassituaesquesedesejaoperarisoladamentecomumnicocomponentedovetor.

    Umvetorumaestruturadedadosindexada,ouseja,cadavalorpodeseracessadoatravsdeumndice,oqualcorrespondeaumaposionovetorosndicessovaloresinteirosepositivos(0,1,2,3,...);emoutraspalavras,umaposioespecficadovetorpodeseracessadadiretamenteatravsdoseundice.

    Abaixotemosoexemplodeumaoperaocompara,ondetemosumvetornotasde5posiesecadaumaseratribudaovalorde1*10at5*10logoapsaleitura:

    atribuio: leitura:

    4.5. Variveiscompostasmultidimensionais.So as variveis que necessitam mais de um ndice para a individualizao de seus

    elementos.Asvariveismultidimensionaispodemserbidimensionais, ondeoprimeiroelementorepresenta a linha e o segundo a coluna. Podemainda ser tridimensionais, onde o elementorepresentaapgina(face).

    Diagrama:

    DiagramadaestruturanoVisualg:

    Projeto Ejovem Mdulo II

  • Logica de Programao 46

    onde:

    Li = representa o limite inicial do vetor.Lf = representa o limite final do vetor.V = vetor.Vn = nmeros de vetores.Tipo primitivo: representa qualquer uns dos tipos bsicos de dados.

    Dica:Cadavetorseparadoporvirgula,comissoformamosumamatriz.

    4.6. Declaraoemanipulao(multidimensionais).Paradeclararumamatrizmultidimensionaltemosquedefinirquantasdimensesamesma

    vaipossuir.Cadamatrizvaisercompostapordoisoumaisvetores.

    Sintaxedadeclarao:

    tipo IDENTIFICADOR = matriz [LI1..LF1, LI2..LF2, ..., LIn..LFn] de ;

    Onde:

    LI1..LF1,LI2..LF2,...,LIn..LFn:Sooslimitesdosintervalosdevariaodosndicesdavarivel,ondecadapardelimitesestassociadoaumndice;: representaqualquerumdostiposbsicosoutipoanteriormentedefinido;listadevariveis:listadevariveis(separadasporvrgula)queteroomesmotipodenotadoporIDENTIFICADOR.

    Exemplo:

    tipo SALA = matriz [1..4, 1..4] de inteiro;tipo M = matriz [1..3, 1..5, 1..4] de inteiro;

    NoVisualg:

    notas : vetor [1..2,1..5] de inteiroalunos : vetor[1..3,1..20] de caracter

    VejaumExemploondetemososeguintecdigo:

    Projeto Ejovem Mdulo II

  • Logica de Programao 47

    Observequenocdigotemosumamatrizcomduasdimensesondecadadimensoumvetor.Almdisso,essamatrizguardadaemumavarivelchamadadados,ondeelarepresentatantoonomecomoaruadeumadeterminadapessoa.

    4.7. Variveiscompostasheterogneas.J sabemos queumconjunto homogneode dados composto de variveis domesmotipo

    primitivo,pormsetivssemosumconjuntoemqueoselementosnosodomesmotipo,teramosentoumconjuntoheterogneodedados.

    Considerandoqueosandaresdeumprdiosodivididosemapartamentostemosumaestruturamultidimensional. Para localizarmosumindivduo4neste prdioprecisaremosdeseunome,oandareonmerodoapartamento.Considerandoumaestruturabidimensional(doisndices:andareapartamento),oprimeirondiceindicaalinhaeosegundo,acoluna.

    OelementohachuradoreferenciadoporMSALA[2,3].

    4.8. Registros(declaraoemanipulao).Umadasprincipaisestruturasdedadosoregistro.Paraexemplificar,imagineumapassagemde

    nibus, que formada por um conjunto de dados logicamente relacionados, pormde tiposdiferentes,taiscomonmerodapassagem(inteiro),origemedestino(caractere),data(caractere),horrio(caractere),poltrona(inteiro),distncia(real),quesosubdivisesdoregistro(elementosdoconjunto),tambmchamadasdecampos.Logo,umregistrocomposto porcamposquesopartesqueespecificamcadaumdosdados.

    Observeoseguinteformulrioabaixo:

    Umadasprincipaisestruturasdedadosoregistro.Paraexemplificarimagineumaidentificaodepassageiro,ouseja,aqueleformulriodeinformaesqueopassageiroentregaaomotoristaantesdeembarcarnonibusjuntocomapassagem.Elaformadaporumconjuntodeinformaeslogicamenterelacionadas, pormdetiposdiferentestaiscomonmerosdepassageiros(inteiro),idade(inteiro)eonomedopassageiro(caracteres)quesosubdivisesdoregistro(elementosdoconjunto),tambmchamadasdecampo.

    Umregistrocompostoporcamposquesopartesqueespecificamcadaumadasinformaesqueocompe.Umavariveldotiporegistroumavarivelcomposta,poisenglobaumconjuntodedadoseheterognea(cadacampopodeserdeumtipoprimitivodiferente).

    Projeto Ejovem Mdulo II

  • Logica de Programao 48

    Diagrama:

    Dica:NoexisteregistronoVisualg,portantoparaprogramaodomesmousaseoutraslinguagensqueserovistonosmdulosmaisadiante.

    4.9. Registrosdeconjuntos(declaraoemanipulao).Parausarmosumregistroprecisamosprimeiramentedefiniremdetalhescomoconstitudoo

    tipoconstrudo,especificandotodososcamposedepois,declararumaoumaisvariveis,associandoos identificadores de variveis ao identificador do tipo registro. Nas estruturas compostahomogneas(vetoresematrizes)utilizamostiposdedadosprimitivoscomosendooselementosdessas estruturas. Agora utilizaremos como componentes dessa estrutura no apenas um tipoprimitivomastambmostiposconstrudos,nestecasoosregistros.

    Sintaxedadeclarao:

    tipo IDENTIFICADOR = registro tipo1 : campo1;tipo2 : campo2; . . . . tipon :campon;

    fimregistro;INDENTIFICADOR : lista de variveis;

    Onde:

    IDENTIFICADOR:representaonomeassociadoaotiporegistroconstrudo;tipo1,tipo2,tipon:representamqualquer umdos tipos bsicos ou tipo anteriormente definido; campo1, campo2,campo : representamnomesassociados a cadacampodo registro; lista devariveis : lista devariveis(separadasporvrgula)queteroomesmotipodenotadoporIDENTIFICADOR.

    Declarao:Comopossumosumvetorcompostoderegistros,nopodemosdeclararessevetorsemantesterdefinidoaestruturadedadosdeseuselementos(registros);devemosentodefinirprimeirootipoconstrudoregistroedepoisovetor.

    Exemplo:

    tipo REGPASSAGEM = registro inteiro : numero, poltrona;caractere: origem, destino,

    data, horrio;real: distncia;

    fimregistro;REGPASSAGEM : PASSAGEM;

    Projeto Ejovem Mdulo II

  • Logica de Programao 49

    OexemplocorrespondedefiniodeummodeloREGPASSAGEMdeumregistroecriaodeumareadememriachamadaPASSAGEM,capazdecontersetesubdivises.

    Manipulao:

    Amanipulaodeumregistrodeconjuntosdeveobedecerasmanipulaesprpriasdecadaestruturadedadosanteriormentedefinida.

    Para utilizar um campo especfico do registro, devemos diferenciar esse campo. Para talutilizamosocaractere.(ponto)paraestabeleceraseparaoentreonomedoregistroeonomedocampo.

    Podemosaplicarumaleituraouumaescritadiretanoregistro:

    leia(PASSAGEM);escreva(PASSAGEM);

    ExemploutilizandooregistroPASSAGEM:

    incio{definies anteriores}..leia(PASSAGEM.numero);leia(PASSAGEM.origem);..escreva(PASSAGEM);

    fim

    4.10. EXERCCIOSPROPOSTOS1)Digacomsuaspalavrasqualaprincipalfinalidadedeumaestruturadedados.

    2)Qualadiferenadevariveiscompostashomogneasparavariveiscompostasheterogneas.

    3)Qualadiferenadevariveiscompostasunidimensionaisparavariveiscompostas

    multidimensionais.

    4)Comopodemosdefiniroconceitoderegistro.

    5)Crieumalgoritmosqueleiaumvetorcom20nmerosde1...20eescrevanatelacadaumdeles,useescreval(escrevercomquebradelinha).

    6)Crieumalgoritmoqueleia30nmerosde1...30egereumsegundovetorparareceberosmesmos,pormdemaneirainvertida,mostrenatelaosdoisvetores.

    7) Crie umalgortimoque leia 10nmeros digitadospelousurioe diga qual foi o maiornumero,usedoisvetoresdemesmotipo.

    8)Crieumalgoritmoquetenhaumamatriz2x3combasenissofaa:

    a)Opreenchimentodecadalinhadigitadapelousurio.

    b)Asomadas2linhasseparadamente.

    c)Asomadas3colunasseparadamente.

    d)Asomatotaldamatriz.

    10)Observeoseguinteregistro:

    Projeto Ejovem Mdulo II

  • Logica de Programao 50

    responda:

    a)Quantoscamposdotipointeirooregistropossui.

    c)Quantoscamposdotipocaracteroregistropossui.

    d)Declareaformadesseregistroemcdigo.

    c)Comumafolhadepapelcriemumalgortimoondeousuriodigitetodasessasinformaeselogoapseleescrevaessasinformaesnatela.

    4.11. Referencias:

    http://www.brasilescola.com/filosofia/o-que-logica.htmhttp://www.ucb.br/programar/algoritmo/www.apostilando.comLogica de Programao(A contruo de Algoritmos e estrutura de dados) 3 edio.Autores: Andr Luiz Villar Forbellone e Henri Frederico Eberspacher

    Projeto Ejovem Mdulo II

  • CaroAluno(a),

    EstematerialtemcomoobjetivoabordarousodatecnologiadeprogramaowebPHPeabase de dados MYSQL. Almdisso, mostrar a sintaxee exemplos prticos dos principaiscomandos.

    Serdivididoocontedoemdezcaptulos,onde,setedelessodedicadosatecnologiaPHP,umdirecionadoatecnologiaHTMLcomPHP,umacomandosSQLvoltadosparabancodedadosMYSQL,eoutroparaassociaodastrstecnologias.Almdissoemalgunscaptulostemosexercciosrpidosparafixaodocontedovistoeaofinaldecadacaptulo,umalistadeexercciospropostos.

    Nofalaremosdeferramentasdeedio,ondeficaacritriodoalunoescolherjuntamentecom o seu instrutor qual a ferramenta mais adequada, porem informamos que todas asimagensetestesexecutadosemnessaapostilatevecomobaseousodaferramentanetbeansparaPHP.

  • PHP e MySQL 53

    Captulo5. IntroduoaPHPObjetivos

    FazerumaapresentaodalinguagemPHPeumpoucodahistoria;Mostrarquaisrequisitos necessriosparainstalaoeconfiguraodeumservidorwebparaPHPebancodedadosMYSQL.

    5.1. OquePHPPHPsignifica: HypertextPreprocessor .OprodutofoioriginalmentechamadodePersonalHome

    PageTools,mascomoseexpandiuemescopoumnomenovoemaisapropriadofoiescolhidoporvotaodacomunidade.VocpodeutilizarqualquerextensoquedesejarparadesignarumarquivoPHP, mas os recomendados foram*.php , *.phtml. O PHP est atualmente na verso 5.3.3,chamadodePHP5ou,simplesmentedePHP,masosseusdesenvolvedoresestotrabalhandoparalanamentodaverso6,quecausaumapreocupaoparaosprogramadoresdomundotodo,umavezque,algumasfuncionalidadesantigasdeixamdefuncionarquandopassaramdaverso4paraa5.

    PHP uma linguagem de criao de scripts embutida em HTML no servidor. Os produtospatenteadosnessenichodomercadosoasActiveServerPages(ASP)daMicrosoft,oColdfusiondaAllaireeasJavaServerPagesdaantigaSunquefoicompradapelaOracle.PHPsvezeschamadode o ASP de cdigofonte aberto porque sua funcionabilidade to semelhante aoproduto/conceito,ouoquequerqueseja,daMicrosoft.

    Exploraremosacriaodescriptnoservidor,maisprofundamente,nosprximoscaptulos,mas,nomomento,vocpodepensarnoPHPcomoumacoleodesupertagsdeHTMLquepermitemadicionarfunesdoservidorssuaspginasdaWeb.Porexemplo,vocpodeutilizarPHPparamontar instantaneamente uma complexa pgina da Web ou desencadear um programa queautomaticamenteexecuteodbitonocartodecrditoquandoumclienterealizarumacompra.ObserveumarepresentaodecomoPHPeHTMLsecomportam:

    Projeto Ejovem Mdulo II

  • PHP e MySQL 54

    OPHPtempoucarelaocomlayout,eventosouqualquercoisarelacionadaaparnciadeumapginadaWeb.Defato,amaiorpartedoqueoPHPrealizainvisvelparaousuriofinal.AlgumvisualizandoumapginadePHPnosercapazdedizerquenofoiescritaemHTML,porqueoresultadofinaldoPHPHTML.

    OPHPummdulooficialdoservidorhttpApache,olderdomercadodeservidoresWeblivresqueconstituiaproximadamente55porcentodaWorldWideWeb.IssosignificaqueomecanismodescriptdoPHPpodeserconstrudonoprprioservidorWeb,tornandoamanipulaodedadosmaisrpida.AssimcomooservidorApache,oPHPcompatvelcomvriasplataformas,oquesignificaqueeleexecutaemseuformatooriginalemvriasversesdoUNIXedoWindows.Todosos projetos daApacheSoftwareFoundation incluindoo PHPsosoftwaredecdigofonteaberto.

    5.1.1. UmpoucodaHistriadoPHP.RasmusLerdorf,engenheirodesoftware,membrodaequipeApacheocriadoreaforamotriz

    originalportrsdoPHP.AprimeirapartedoPHPfoidesenvolvidaparautilizaopessoalnofinalde 1994. Tratavase de um wrapper de PerlCGI que o auxiliava a monitorar as pessoas queacessavamoseusitepessoal.Noanoseguinte,elemontouumpacotechamadodePersonalHomePageTools(tambmconhecidocomoPHPConstructionKit)emrespostademandadeusuriosqueporacasoouporrelatosfaladosdepararamsecomoseutrabalho.Averso2foilogolanadasobottulodePHP/FIeincluaoFormInterpreter,umaferramentaparaanalisarsintaticamenteconsultasdeSQL.

    Em meados de 1997, o PHP estava sendo utilizadomundialmente em aproximadamente 50.000 sites. Obviamenteestava se tornando muito grande para uma nica pessoaadministrar,mesmoparaalgumconcentradoecheiodeenergiacomo Rasmus. Agora uma pequena equipe central dedesenvolvimento mantinha o projeto sobre o modelo de juntabenevolente do cdigofonte aberto, com contribuies dedesenvolvedoreseusuriosemtodoomundo.ZeevSuraskieAndiGutmans, dois programadores israelenses quedesenvolveramosanalisadores de sintaxePHP3ePHP4, tambmgeneralizarameestenderamseustrabalhossobarubricadeZend.com(Zeev,Andi,Zend,entendeu?).

    Oquartotrimestrede1998iniciouumperododecrescimentoexplosivoparaoPHP,quandotodasastecnologiasdecdigofonteabertoganharamumapublicidadeintensa.Emoutubrode1998,deacordocomamelhorsuposio,mai