apostila de portugol utilizando visualg 2.0

Upload: alamenha

Post on 08-Jul-2015

1.379 views

Category:

Documents


6 download

TRANSCRIPT

.: NAPRO :. NCLEO DE APOIO APRENDIZAGEM DE PROGRAMAO ELABORADO POR BRUNO TONET & CRISTIAN KOLIVER Introduo aosIntroduo aosIntroduo aosIntroduo aos algoritmos algoritmos algoritmos algoritmos Bruno Tonet Cristian Koliver .: NAPRO :. NCLEO DE APOIO APRENDIZAGEM DE PROGRAMAO ELABORADO POR BRUNO TONET & CRISTIAN KOLIVER SUMRIO INTRODUO AOS ALGORITMOS ................................................1 1 -ALGORITMOS NO COMPUTACIONAIS ......................................3 2 -ALGORITMOS COMPUTACIONAIS ..........................................4 3 -LINEARIZAO DE EXPRESSES .........................................5 4 -FORMA GERAL DE UM ALGORITMO ........................................7 5 -VARIVEIS ..........................................................8 7 -LINHAS DE COMENTRIO ..............................................10 8 -COMANDOS DE E/S (ENTRADA/SADA) ...................................10 9 -CONSTRUINDO OS PRIMEIROS ALGORITMOS:ESTRUTURAS SEQENCIAIS ......13 10 -ESTRUTURA CONDICIONAL ...........................................15 11 -TESTANDO O ALGORITMO ............................................19 12 -ESTRUTURA DE REPETIO ..........................................20 13 -COMANDO REPITA...ATE ............................................21 14 -COMANDO ENQUANTO..FACA ..........................................24 15 -COMANDO PARA..FACA ..............................................25 16 -VARIVEIS COMPOSTAS HOMOGNEAS ..................................27 16.A VARIVEIS INDEXADAS UNIDIMENSIONAIS (VETORES) ............................27 16.B VARIVEIS INDEXADAS BIDIMENSIONAIS (MATRIZES) ............................28 17 -SUBALGORITMOS ...................................................30 17.AFUNES...........................................................30 Funes Predefinidas do Visualg .....................................30 Criando Funes .....................................................32 17.BPROCEDIMENTO (SUB_ROTINAS)...........................................33 18 -FUNES DEFINIDAS RECURSIVAMENTE ................................34 19 -REFERNCIAS .....................................................37 CAPITULO 1 8 EXERCCIOS ...............................................38 CAPITULO 9 EXERCCIOS ...................................................40 CAPITULO 10 E 11 EXERCCIOS .............................................42 CAPITULO 12 E 15 EXERCCIOS .............................................43 CAPITULO 16 VETOR EXERCCIOS ............................................44 CAPITULO 16 MATRIZ EXERCCIOS ...........................................45 CAPITULO 17 SUBALGORITMO EXERCCIOS .....................................46 CAPITULO 18 RECURSO EXERCCIOS .........................................48 .: NAPRO :. NCLEO DE APOIO APRENDIZAGEM DE PROGRAMAO ELABORADO POR BRUNO TONET & CRISTIAN KOLIVER 3 1 - Algoritmos No Computacionais Um algoritmo uma seqncia de instrues finita e ordenada deforma lgica para a resoluo de uma determinada tarefa ou problema. So exemplos de algoritmos instrues de montagem, receitas, manuais de uso, etc. Um algoritmo no a soluo do problema, pois, se assimfosse,cadaproblemateriaumnicoalgoritmo;umalgoritmoumcaminhoparaa soluodeumproblema.Emgeral,existemmuitos(senoinfinitos)caminhosquelevama uma soluo satisfatria.Um algoritmo no computacional um algoritmo cuja seqncia de passos, a princpio, nopodeserexecutadaporumcomputador.Abaixoapresentadoumalgoritmono computacionalcujoobjetivousarumtelefonepblico.Provavelmentevocexecutouo algoritmodesteexemplodiversasvezes.OtermoalgoritmoestmuitoligadoCinciada Computao, mas, na realidade, ele pode ser aplicado a qualquer problema cuja soluo possa ser decomposta em um grupo de instrues. Exemplo 1.1 Um outro exemplo tpico de algoritmo uma receita culinria, como no exemplo abaixo. Exemplo 1.2 Algoritmo para fritar um ovo 1.Colocar um ovo na frigideira 2.Esperar o ovo ficar frito 3.Remover o ovo da frigideira Oalgoritmoacima,noentanto,poderiasermaisdetalhadoecompleto.Umaverso mais aceitvel seria: .: NAPRO :. NCLEO DE APOIO APRENDIZAGEM DE PROGRAMAO ELABORADO POR BRUNO TONET & CRISTIAN KOLIVER 4 Exemplo 1.3 Algoritmo para fritar um ovo 1.Retirar um ovo da geladeira 2.Colocar a frigideira no fogo 3.Colocar leo 4.Esperar at o leo ficar quente 5.Quebrar o ovo separando a casca 6.Colocar o contedo do ovo na frigideira 7.Esperar um minuto 8.Retirar o ovo da frigideira 9.Apagar o fogo Essasegundaversomaiscompletaedetalhadaqueaanterior.Nela,vriasaes queestavamsubentendidasforamexplicitadas.Noentanto,paraqueoalgoritmopossaser til, necessrio ainda que quem faz uso dele conhea os termos utilizados nas instrues. O algoritmodoexemplossertilparaalgumquesejafluentenalnguaportuguesae conheaosignificadodosverbosRetirar,Colocar,Esperarassimcomodossubstantivos utilizados no contexto de uma receita culinria. Em outras palavras, preciso que a linguagem utilizadanoalgoritmosejaconhecidatantoporquemoescreveuquantoporquemvai execut-lo. Paraqueoalgoritmopossaserexecutadoporumamquinaimportantequeas instrues sejam corretase semambigidades. Portanto, aforma especial de linguagem que utilizaremos bem mais restrita que o Portugus e com significados bem definidos para todos ostermosutilizadosnasinstrues.EssalinguagemconhecidacomoPortugus Estruturado (s vezes tambm chamada de Portugol). O portugus estruturado , na verdade, umasimplificaoextremadoPortugus,limitadaaumaspoucaspalavraseestruturasque tmumsignificadomuitobemdefinido.Aoconjuntodepalavraseregrasquedefinemo formatodassentenasvlidaschamamossintaxedalinguagem.Duranteestetexto,a sintaxedoPortugusEstruturadoserapresentadaprogressivamenteeautilizaremosem muitos exerccios de resoluo de problemas. Aprenderaspalavraseregrasquefazempartedessasintaxefundamental;no entanto, no o maior objetivo deste curso.O que realmente exigir um grandeesforo por partedoestudanteaprenderaresolverproblemasutilizandoalinguagem.Paraisso,h somenteumcaminho:resolvermuitosproblemas.Oprocessosemelhanteaodetornar-se competenteemumjogoqualquer:aprenderasregrasdojogo(asintaxe)soprimeiro passo, tornar-se um bom jogador (programador) exige tempo, muito exerccio e dedicao. Emborao PortugusEstruturadoseja uma linguagem bastante simplificada,ela possui todososelementosbsicoseumaestruturasemelhantedeumalinguagemtpicapara programaodecomputadores.Almdisso,resolverproblemascomportugusestruturado, pode ser uma tarefa to complexa quanto a de escrever um programa em uma linguagem de programao qualquer. Portanto, neste curso,estaremos na verdadeprocurando desenvolver as habilidades bsicas que sero necessrias para adquirir-se competncia na programao de computadores.Para praticar nossa sintaxee testar nossos problemas, utilizaremos osoftware Visualg desenvolvida por Cludio Morgado de Souza. E-mail: [email protected]. 2 - Algoritmos Computacionais Ocomputador,aprincpio,noexecutanada.Paraqueelefaaumadeterminadatarefa- calcular uma folha de pagamento, por exemplo -, necessrio que ele execute um programa. Umprogramaumconjuntodemilharesdeinstruesqueindicam aocomputador,passoa passo,oqueeletemquefazer.Logo,umprogramanadamaisdoqueumalgoritmo computacional descrito em uma linguagem de programao. Uma linguagem de programao contmoscomandosquefazemocomputadorescreveralgonatela,realizarclculos .: NAPRO :. NCLEO DE APOIO APRENDIZAGEM DE PROGRAMAO ELABORADO POR BRUNO TONET & CRISTIAN KOLIVER 5 aritmticos, receber uma entrada de dados via teclado, e milhares de outras coisas, mas estes comandos precisam estar em uma ordem lgica.Otermoprocessamentodedadosmuitasvezesutilizadoemconjuntocom computadores, pois, em geral, isto o que eles fazem: processar dados. Da podem extrair os doiscomponentesbsicosdeumalgoritmocomputacional(deagoraemdiante,estapalavra sempreutilizadanocontextodealgoritmoscomputacionais):dadosecdigo.Dadossoos valores (nmeros, nomes, etc.) de que precisamos para resolver o problema, e cdigo so os comandos ou instrues que usaremos para manipular e "processar" os dados.3 - Linearizao de Expresses Para a construo de algoritmos que realizam clculo matemticos, todas as expresses aritmticas devem ser linearizadas, ou seja, colocadas em linhas, devendo tambm ser feito o mapeamento dos operadores da aritmtica tradicional para os do Portugus Estruturado. Exemplo 3.1 ( )25 3 1.53 ( + ` ( ) ((2/3-(5-3))+1)*5 Tradicional Computacional AstabelasseguintesmostramosoperadoresaritmticosdisponveisnoPortugus Estruturado. OPERADORES ARITMTICOSPORTUGUS ESTRUTURADO Adio+ Subtrao- Multiplicao* Diviso/ Diviso Inteira\ Exponenciao^ ou Exp (,)Mdulo (resto da diviso)% Osoperadoresrelacionaisrealizamacomparaoentredoisoperandosouduas expresses e resultam em valores lgicos (VERDADEIRO ou FALSO). OPERADORES RELACIONAISPORTUGUS ESTRUTURADO Maior > Menor < Maior ou igual >= Menor ou igual 4 resulta VERDADEIRO 33 resulta FALSO Osoperadores lgicosatuam sobre expresses e tambm resultam em valores lgicos VERDADEIRO ou FALSO. OPERADORES LGICOS PORTUGUS ESTRUTURADO SIGNIFICADO Multiplicao lgica EResulta VERDADEIRO se ambas as partes forem verdadeiras. Adio lgica OuResulta VERDADEIRO se uma das partes verdadeira. Negao Nao Nega uma afirmao, invertendo o seu valor lgico: se for VERDADEIRO torna-se FALSO, se for FALSO torna-se VERDADEIRO. A tabela abaixo chamada tabela-verdade mostra os resultados das aplicaes dos operadores lgicos conforme os valores dos operadores envolvidos. ABA E BA OU BNO ANO B VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIROFALSOFALSO VERDADEIROFALSOFALSOVERDADEIROFALSOVERDADEIRO FALSOVERDADEIROFALSOVERDADEIRO VERDADEIROFALSO FALSOFALSOFALSOFALSOVERDADEIRO VERDADEIRO Deacordocomanecessidade,asexpressespodemserunidaspelosoperadores lgicos. Exemplo 3.3 (2+5>4) e (33) resulta FALSO, pois VERDADEIRO e FALSO resulta FALSO. Amodularizaoadivisodeumaexpressoempartes,proporcionandomaior compreensoedefinindoprioridadesparaaresoluodamesma.Comopdeserobservado no exemplo anterior, em expresses computacionais utilizamos somente parnteses"()" para modularizao.NasintaxedoPortugusEstruturadopodemosterparntesesdentrode parnteses, como seriam os colchetes e as chaves na matemtica.Osparntesesindicamquaissub-expresses,dentrodeumaexpresso,sero executadosprimeiro.Aprincpio,aexecuodaesquerdaparadireita,masalmdos parnteses, existem prioridades entre os operadores envolvidos na expresso. Tais prioridades so mostradas nas tabelas seguintes. OPERADOR ARITMTICOPRIORIDADE Exponenciao3 (maior) Multiplicao2 Diviso2 Adio1 Subtrao1 (menor) .: NAPRO :. NCLEO DE APOIO APRENDIZAGEM DE PROGRAMAO ELABORADO POR BRUNO TONET & CRISTIAN KOLIVER 7 Exemplo 3.4 (2 + 2)/2 resulta 2 e 2 + 2/2 resulta3 OPERADOR LGICOPRIORIDADE e3 ou2 nao1 Exemplo 3.5 (2>3) ou (3