Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
30/09/2008 Aula 08 - Funções(1) * Funções Aula nº 10 Definição de Funções Protótipos de Funções Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Objetivos Construir programas modularmente usando funções; Ser capaz de criar novas funções; Entender os mecanismos para passar informações entre funções; Aprender técnicas de simulação com geração aleatória de números; Entender a visibilidade dos identificadores; Entender e escrever funções que chamam a si mesmas. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Introdução Uma função é um componente capaz de executar uma ou mais tarefas; Contribui para a resolução de um problema a ser resolvido por um programa; Um programa pode chamar várias funções, cada uma das quais com um objetivo específico. Funções da Biblioteca padrão do Python; Funções definidas pelo programador; Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Introdução main ajudante 1 ajudante 2 ajudante 3 ajudante 4 ajudante 5 Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Introdução Construir programas a partir de pequenas partes ou componentes – dividir para conquistar; Uma função é invocada (ou chamada) por uma chamada de função; A chamada especifica o nome da função e provê informações – argumentos. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Biblioteca Matemática import math Exemplo: >>> math.sqrt (900.0); Calcula a raiz quadrada de 900.0 Argumentos podem ser constantes, variáveis ou expressões; Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Ei! sqrt! Me dá o valor da raiz quadrada de 900 ! Estou calculando ... 30 ! Obrigado ! Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * ... math.sqrt (900.0); ... Neste ponto, a execução do programa pára, chama a função e aguarda o retorno dela A função sqrt calcula a raiz quadrada de 900.0 e retorna o resultado para main Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * ... math.sqrt (900.0); ... 900.0 30.0 Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Funções Modularização – vantagens: Código mais administrável; Reutilização de software; Evita repetição de código num programa. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Funções definidas pelo programador Funções podem ser definidas no programa; Ao invés de usarmos funções da biblioteca padrão, nós criamos as funções necessárias no nosso programa; Inserimos, então, chamadas à função no nosso programa. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Variáveis em funções Variáveis declaradas nas funções – locais. Parâmetros provêem um meio de passar informações para funções – locais. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Funções Cada função deve se limitar a realizar uma tarefa simples e bem definida; Em um programa com muitas funções, o programa principal deveria ser implementado como um grupo de chamadas a funções que executam o “grosso” do trabalho do programa. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Definição de função Considere um programa que use a função quadrado para calcular quadrados dos números inteiros de 1 a 10. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Exemplo # função quadrado def quadrado (x): return x*x # programa principal n=int(raw_input('Digite um número: ')) print "O quadrado do número é ", quadrado(n) Primeiro escrevemos a função quadrado Agora escrevemos o programa que vai usar a função Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * # função quadrado def quadrado (x): return x*x # programa principal c = 1 while c<=10: print quadrado(c) c += 1 1 1 2 4 3 9 O processo continua até ... 10 100 Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Definição de funções def nome da função (lista de parâmetros) : declarações e comandos return valor/expressão def quadrado( int x) return (x * x); Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Função definida pelo programador para calcular o máximo de três valores Exemplo 2 Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * 3 8 5 Exemplo de execução Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * 3 Definição da Função def maximo (int x, int y, int z): max = x if (y > max): max = y if (z > max): max = z return max 3 8 5 max 8 Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * def maximo (int x, int y, int z): max = x; if (y > max) max = y; if (z > max) max = z; return max; print “Forneça três inteiros: ” ; a = raw_input () b = raw_input () c = raw_input () print “O maior é: ”, maximo(a,b,c) 8 Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Exercícios Faça um programa para imprimir: 1 2 2 3 3 3 ... n n n n n n ... n para um n informado pelo usuário. Use uma função que receba um valor n inteiro e imprima até a n-ésima linha. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Exercícios Faça um programa para imprimir: 1 1 2 1 2 3 ... 1 2 3 ... n para um n informado pelo usuário. Use uma função que receba um valor n inteiro imprima até a n-ésima linha. Aula 08 - Funções(1) 30/09/2008 Aula 08 - Funções(1) * 30/09/2008 Aula 08 - Funções(1) * Exercícios Faça um programa, com uma função que necessite de três argumentos, e que forneça a soma desses três argumentos. Faça um programa, com uma função que necessite de um argumento. A função retorna o valor de caractere ‘P’, se seu argumento for positivo, e ‘N’, se seu argumento for zero ou negativo. Aula 08 - Funções(1) * * * * * * * * * * * * * * * * * * * * *
Compartilhar