Você está na página 1de 7
Receba o seu minicurso de légica de programagio GRA 'S! Clique Aqui Aula (10/10) Fungées e Procedimentos Ola! Tudo bem? Chegamos & aula #10 do minicurso GRATIS de légica de programagao! Nesta aula vamos aprender uma forma de melhorar a sua programagao. Utilizando fungées e procedimentos nés podemos reaproveitar cédigo, melhorar a leitura dos algoritmos e criar cédigos mais limpos e legiveis. Nesta aula vamos ver um pouquinho de geometria basica. S6 pra relembrar um pouquinho a escola. Mas ndo se assuste, vai ser facil Duraco da aula: aproximadamente 25 minutos. O que séo Fungées e Procedimentos A primeira coisa que vocé tem que entender é que eu estou falando. Afinal, que raios so fungdes e procedimentos? Bom, ja adianto que vocé j4 usou procedimentos e nem percebeu! Lembra quando vocé quis mostrar algum texto na tela? Vocé usou o procedimento ESCREVA e passou um texto como pardmetro, justamente o texto que vocé queria que aparecesse na tela. ESCREVA(“Ol4 mundo!”) Vocé saberia mostrar um texto na tela sem usar esse procedimento? Nao né. Outra pergunta: Vocé saberia fazer um algoritmo para calcular a raiz quadrada de um numero? Reflita um pouquinho sobre a complexidade de tal algoritmo. E um algoritmo para gerar ur numero aleatério? Vocé saberia fazer? Imprimir um texto na tela, raiz quadrada, geracdo de numero aleatério, entre outros, so fungdes e procedimentos cléssicos que um programador usa, mas nao precisa implementar na unha. Pra qué re-inventar a roda??? Alguém ja fez esses algoritmos e a gente apenas usa. O que precisamos é apenas solicitar a execuco desses algoritmos dentro do nosso algoritro. Qual a diferenca entre funco e procedimento? A.tinica diferenca entre uma funcdo (function) e um procedimento (procedure) é que a funcao retorna um valor (por exemplo uma fungdo que calcula raiz quadrada retorna um ntimero) e © procedimento nao retorna nada (por exemplo o procedimento escreva que ja falei). A figura abaixo exemplifica como acontece a utilizagéo de uma funco, o procedimento é a mesma coisa, menos na atribuicao do resultado a varidvel “a”. Diecas de _ Pregramacde Fungées (e procedimentos) podem ou nao receber pardmetros. No caso da funcao de raiz quadrada, é necessdrio passar como parametro o numero que se deseja calcular a raiz, 0 procedimento ESCREVA, requer um texto corno pardmetro para apresentar na tela do usuario. Agora que ja sabemos 0 que sao e pra qué servern. Vamos para a pratica! Hora de praticar: Utilizando fungdes e procedimentos Vocé lembra como calcular a hipotenusa de um tridngulo retangulo? Primeiro, vou te relembrar o que é um tridngulo-reténgulo. Um tridngulo em que um dos Angulos tem 90°. Ou seja, dois lados do triangulo so perpendiculares entre si. Esses lados que formam o Angulo de 90% (ou Angulo reto) so chamados de “catetos". E 0 lado oposto ao angulo reto é a hipotenusa. cateto Quando conhecemos o tamanho dos catetos nés conseguimos calcular 0 tamanho da hipotenusa. Estou falando do famoso teorema de Pitagoras que diz: A soma dos quadrados dos catetos equivale ao quadrado da hipotenusa. A imagem abaixo ilustra bem isso. Entdo para descobrir o valor da hipotenusa, temos que encontrar a raiz quadrada de ( b? + @ ). Com base neste calculo, vamos fazer um algoritmo que solicita ao usuario o valor dos dois catetos, calcula e apresenta na tela o valor da hipotenusa do tridngulo retangulo. Para isso precisaremos usar a funcao RAIZQ do Visualg para calcular a raiz quadrada pra gente. 1 algoritmo “Hipotenusa” 2 var 3a, by c: REAL 4 inicio 5 6 ESCREVA C"Digite 0 valor do primeiro cateto do tridngulo reténgulo: ") 7 LEIA (b) 8 ESCREVA ("Digite 0 valor do segundo cateto do tridngulo reténgulo: ") 9 LEIA Cc) 0 rte a := RAIZQ ( bYb + ce )//Calculo da hipotenusa utilizando a FUNCAO RAIZQ, 2 B ESCREVA ("0 valor da hipotenusa é: ", a) 4 15_fimalgoritmo Observe que utilizarnos a funcao RAIZQ para calcular a raiz quadrada do valor que passamos como parametro (valor entre parénteses) “b*b + c*c’, o valor retornado por essa fungdo armazenamos na variavel “a” Como criar as suas proprias fungdes e procedimentos Vocé também pode criar as suas préprias funcées e procedimentos. Entre as vantagens de criar as préprias funcées e procedimentos cito duas, melhora a legibilidade do cédigo, tirando complexidades de dentro do fluxo principal do seu algoritmo e remove repetigo de cédigo. Abaixo a sintaxe para cria¢ao das suas préprias fungdes e procedimentos no Visualg. Funcao [()]: // Secao de Declaragées Internas inicio /7 Sesto de Comandos Fimfuncao procedimento [()] 7/ Secdo de Declaragées Internas inicio // Sesdo de Comandos Fimprocedimento RE Beevaueunn| Vamos criar e usar uma fungdo pra praticar. Vamos criar uma fungéo que recebe um numero inteiro e retorna o fatorial deste numero. Fatorial é a multiplicagao de todos os numeros entre 1 e o numero especificado. Exemplo: Fatorial de 5 (ou 5!) corresponde a: 1*2*3*4*5=120 Entdo vamos ver como ficaria esta fungao. 1 funcao calcutaFatorial(numero: inteiro): inteiro 2 var 3 fatorial: inteiro 4 contador: inteiro 5 inicio 6 fatorial <1 ? ENQUANTO numero > 1 FACA 8 fatorial <- fatorial * numero 9 numero <- numero - 1 10 FIMENQUANTO i retorne fatorial 12 Fimfuncao 0 fluxo principal do nosso Algoritmo poderia ser assim. T ESCREVAC"Informe 0 némero para o cdlculo do Fatorial: “) 2 LEIACnumeroParaFatorial) 3 ESCREVAC"O fatorial de", numeroParaFatorial, " é: ", calculafatorial (numeroParaFatorial Esse é 0 algoritmo completo, com a fungao e 0 fluxo principal. 1 algoritmo "Cacula Fatorial” 2 var 3 4 numeroPararatorial: inteiro 5 6 — funcao calculaFatorial(numero: inteiro): inteiro 7 var 8 fatorial: inteiro 9 contador: inteiro 10 inicio un fatorial <1 12 ENQUANTO numero > 1 FACA B fatorial <- fatorial * numero 14 numero <- numero - 1 15 FIMENQUANTO 16 retorne fatorial 17 fimfuncao 18 19 inicio 20 21 ESCREVAC"Informe 0 niimero para 0 cdlculo do Fatorial: ") 22 LETACnumeroParaFatorial) 2B ESCREVAC"O fatorial de ", numeroParaFatorial, " é: ", calculaFatorialCnumeroParaFatoria| 24. 25_ fimalgoritmo Resumindo Vimos nesta aula que Fungées e procedimentos sdo “subalgoritmos" que podem ser chamadbos dentro de outros algoritmos. So utilizados com muita frequéncia em desenvolvimento de softwares. Existem varios beneficios como: evita duplicagao de cédigo quando precisamos executar a mesma operacao varias vezes, deixa 0 entendimento do algoritmo mais intuitivo, pois tiramos a parte complexa do cédigo do fluxo principal do algoritmo, ete, Importante: em linguagens orientada a objeto como java, C++ e C#, fungdes e procedimentos so chamados de METODO. Mais por uma questo de conceito de Orientacao a Objetos, mas no fundo a mesma coisa, podem receber parametros e retornam ou nao um resultado. Para finalizar, lembra do Jogo da Velha que fizemos na aula passada e eu te mandei o meu algoritmo (somente se vocé estiver inscrito neste minicurso gratuito). Pense como vocé poderia criar fungées e procedimentos para melhorar ele. Amanha eu vou mandar o mesmo algoritmo, sé que utilizando fungées e procedimentos para melhorar a legibilidade do algoritmo e tirar uma duplicag3o de cédigo que tem nele. Mas tente fazer vocé mesmo, antes de receber 0 meu algoritmo. Até la! indice das 10 aulas do Minicurso de légica de programagao Aute-+-Porqtié- aprender programacse? (Aula completa) Aula 2-Crlande-os- seus primeires-pregraminhas: (Aula completa) Atle 3-Varlaveis-constantes-etipes de dades (Aula completa) Aule-4-Operaderes (Aula completa) Aula S-Fomande-deciséest (Aula completa) Aula-6-tomande-decisées entre muitas-opeées: (Aula completa) Aule-#_teeps-béstees! (Aula completa) Aule-8-Loops pré-definides (Aula completa) Auule-9-Vetores-e Matrizes tArrays) (Aula completa) Aula 10. Fungées e Procedimentos (Vocé esta aqui!) PS. Se vocé esta gostando desse Minicurso ajude-nos a divulga-lo. ¥ | Divulge no Twitter! | Compartilhe no Facebook! & | Compartilhe no GoogleH! in | Compartilhe no LinkedIn! (Vocé ainda poderd editar a mensagem antes de publicé-la.) P.S.S Chegou aqui através do Twitter, Facebook ou link de um amigo? Esta é a aula #10 do minicurso de légica de programagao com 10 aulas gratis para voc aprender a programar. Aqui vocé encontrar contetido simples, praticos e que vai te ensinar os conceitos basicos por tras da programagao, ao final serd capaz de criar pequenos programas e estaré pronto para aprender qualquer linguagem de programagao sem dificuldades. Inscreva-se neste Minicurso. E GRATIS! Clique no Botao abaixo: Quero me inscrever!

Você também pode gostar