Conteúdo de hoje... Your Logo Here Funções Prof. Lucas Amorim lucas@ic.ufal.br Definindo e executanto funções Funções que retornam valores Variáveis e parâmetros são locais Funções podem chamar outras funções Introdução à Computação Funções Funções Definindo uma Função Servem para ajudar a organizar os programas. Sintaxe de uma definição de função: Soluções por partes: dividir para conquistar. Exemplo: No exercício do símbolo olímpico da Aula 6, quais partes poderiam ser separadas em funções?
Definindo e Executando uma Função Definindo e Executando uma Função Definição e chamada da função desenhaquadrado: Obs.: docstrings Funções que retornam valores Funções que retornam valores Assim como uma função recebe dados de entrada como argumentos, também pode retornar dados de saída: Para que uma função retorne um valor, usamos o comando return Ex.: A função prédefinida abs, retorna o valor absoluto de um número: Podemos criar nossa própria função com retorno? Como? Verificar o funcionamento dessa função no codelens.
Variáveis e parâmetros são locais Variáveis e parâmetros são locais As variáveis criadas dentro de uma função, existem somente dentro daquela função (escopo local). Por outro lado, variáveis criadas fora da função, chamadas de variáveis globais, também existem dentro da função (escopo global). Mas isso é uma péssima prática de programação! O melhor seria passar expoente como parâmetro Funções podem chamar outras funções Funções podem chamar outras funções Toda função que escrevemos pode chamar outra função predefinida ou definida por nós. Isso permite que possamos quebrar um problema grande em vários problemas menores: Decomposição funcional. Ex.: Problema: escrever a soma do quadrado de três variáveis: a, b, e c. Parte 1: Calcular os quadrados. Parte 2: Somar os resultados da parte 1.
Desenvolvimento Incremental Desenvolvimento Incremental Programas mais complexos tendem a ser mais propensos a erros durante a programação. Neste caso os dois pontos forma a entrada, que representaremos por meio de quatro parâmetros. O valor retornado é a distância, que é um valor real (float). Para evitar longas sessões de depuração de erros, o desenvolvimento incremental é uma prática bastante indicada. Ex.: Escrever um programa em Python para calcular a distância entre dois pontos no plano cartesiano dadas suas cordenadas x e y, usando o Teorema de Pitágoras*: distância= (x 2 x 1 ) 2 +( y 2 y 1 ) 2 Esta função ainda não calcula distâncias, mas está sintaticamente correta. Podemos testá-la: 1º Passo: Escrever o esboço da função distancia. Quais são as entradas (parâmetros) e qual a saída (valor retornado)? * A distância entre dois pontos pode ser vista como a hipotenusa de um triângulo retângulo. Desenvolvimento Incremental Desenvolvimento Incremental Passo 2: Confirmada a corretude sintática da função, podemos adicionar mais linhas de código. Passo 3: Podemos então finalizar a função e realizar o teste: Vamos primeiramente encontrar os catetos do triângulo, as diferenças entre as abscissas e as ordenadas, armazenando-as em variáveis intermediárias, dx e dy: Em seguida, podemos calcular a o quadrado da distância: Note que utilizamos valores que resultarão em um triângulo com catetos 3 e 4, assim já sabemos que o resultado da função deverá ser 5 (triângulo 3-4-5).
Desenvolvimento Incremental Composição Principais aspectos do processo de Desenvolvimento Incremental: 1) Começe com um esqueleto funcional do programa e faça pequenas mudanças incrementais. A qualquer momento, caso ocorrer um erro, você sabe exatamente onde ele se encontra. O recurso de composição permite resolver problemas a partir de chamadas de funções dentro de outras funções: 2) Use variáveis temporárias para manter valores intermediários. Dessa forma é fácil inspecionar os seus valores. 3) Uma vez que o programa esteja funcionando, você pode consolidar vários comandos em expressões compostas. Mas faça isso apenas quando a alteração não torne o programa mais difícil de ler. Também poderíamos te escrito a função area2 sem armazenar valores intermediários: Programando com estilo Referências Legibilidade: É muito importante deixar os programas fáceis de ler, já que, na prática, programas são lidos e modificados com muito mais frequencia com que são escritos. Conforme nossos programas forem se tornando mais complexos, retornaremos a este tópico, mas já podemos considerar alguns pontos: MILLER, Brad. RANUM, David, How to Think Like a Computer Scientist: Interactive Version. (Link). - Tradução para o português: Como pensar como um Cientista da Computação. (Link). Use 4 espaços para tabulação. imports devem ser colocados no início do arquivo. As definições de funções devem ser separadas por linhas em branco. Mantenha as definições de funções juntas no início do arquivo. Mantenha os comandos do programa principal (ou nível mais alto), incluindo as chamadas de funções, juntas no final do arquivo.
Outras formas de interação Email: lucas@ic.ufal.br Site: www.ic.ufal.br/professor/lucas Obrigado!