Upload
sodregtr
View
135
Download
13
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