You are on page 1of 43

Aula 3 - Funo

Funo
Exerccio: Calcule a rea da coroa circular (anel) formada por dois
crculos de raios r1 e r2 (r1 > r2 e Pi = 3.14).

def coroa(r1,r2): return (3.14*r1**2) - (3.14*r2**2)

Computao I - aula 2 - 2012/2

Funo
Exerccio: Calcule a rea da coroa circular (anel) formada por dois
crculos de raios r1 e r2 (r1 > r2 e Pi = 3.14).

def coroa(r1,r2): return (3.14*r1**2) - (3.14*r2**2)

Exerccio: Calcule a rea de um crculo de raio r1.

Computao I - aula 2 - 2012/2

Funo
Exerccio: Calcule a rea da coroa circular (anel) formada por dois
crculos de raios r1 e r2 (r1 > r2 e Pi = 3.14).

def coroa(r1,r2): return (3.14*r1**2) - (3.14*r2**2)

Exerccio: Calcule a rea de um crculo de raio r1.


def areac(r1): return 3.14*r1**2

Computao I - aula 2 - 2012/2

Funo
Exerccio: Calcule a rea da coroa circular (anel) formada por dois
crculos de raios r1 e r2 (r1 > r2 e Pi = 3.14).

def coroa(r1,r2): return (3.14*r1**2) - (3.14*r2**2)

Exerccio: Calcule a rea de um crculo de raio r1.


def areac(r1): return 3.14*r1**2 O que estes programas tm em comum?
Computao I - aula 2 - 2012/2 5

Funo

def coroa(r1,r2): return (3.14*r1**2) - (3.14*r2**2)

def areac(r1): return 3.14*r1**2

Computao I - aula 2 - 2012/2

Funo

def coroa(r1,r2): return areac(r1) - areac(r2)

Posso chamar uma funo a partir de outra !


def areac(r1): return 3.14*r1**2

Computao I - aula 2 - 2012/2

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

coroa(3,2)

def areac(r1): return 3.14*r1**2

Computao I - aula 2 - 2012/2

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

coroa(3,2) areac(3) areac(2)

def areac(r1): return 3.14*r1**2

Computao I - aula 2 - 2012/2

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

coroa(3,2) areac(3) areac(2)

def areac(r1): return 3.14*r1**2

Computao I - aula 2 - 2012/2

10

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

coroa(3,2) areac(3) areac(2)

def areac(r1): return 3.14*r1**2

areac(3) 3.14*3**2= =28.26 return 28.26

Computao I - aula 2 - 2012/2

11

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

coroa(3,2) areac(3) areac(2)

def areac(r1): return 3.14*r1**2

areac(3) 3.14*3**2= =28.26 return 28.26

Computao I - aula 2 - 2012/2

12

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

coroa(3,2) areac(3) areac(2)

def areac(r1): return 3.14*r1**2

areac(3) 3.14*3**2= =28.26 return 28.26

areac(2) 3.14*2**2= =12.56 return 12.56

Computao I - aula 2 - 2012/2

13

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

coroa(3,2) areac(3) areac(2) 15.70

def areac(r1): return 3.14*r1**2

areac(3) 3.14*3**2= =28.26 return 28.26

areac(2) 3.14*3**2= =12.56 return 12.56

Computao I - aula 2 - 2012/2

14

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

def areac(r1): return 3.14*r1**2

Podemos usar a funo quadrado que definimos na aula anterior

Computao I - aula 2 - 2012/2

15

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

def areac(r1): return 3.14*r1**2

def quadrado(x): return x**2

Podemos usar a funo quadrado que definimos na aula anterior

Computao I - aula 2 - 2012/2

16

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

def areac(r1): return 3.14*quadrado(r1)

def quadrado(x): return x**2

Podemos usar a funo quadrado que definimos na aula anterior

Computao I - aula 2 - 2012/2

17

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

Pi bastante usado. Por que no definimos uma funo para ele ?

def areac(r1): return 3.14*quadrado(r1)

def quadrado(x): return x**2

Computao I - aula 2 - 2012/2

18

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

Pi bastante usado. Por que no definimos uma funo para ele ?

def areac(r1): return 3.14*quadrado(r1)

def pi(): return 3.14

def quadrado(x): return x**2

Pi uma funo constante.


Computao I - aula 2 - 2012/2 19

Funo
def coroa(r1,r2): return areac(r1) - areac(r2)

Pi bastante usado. Por que no definimos uma funo para ele ?

def areac(r1): return pi()*quadrado(r1)

def pi(): return 3.14

def quadrado(x): return x**2

Pi uma funo constante.


Computao I - aula 2 - 2012/2 20

Funo
def pi(): return 3.14 def quadrado(x): return x**2 def areac(r1): return pi()*quadrado(r1) def coroa(r1,r2): return areac(r1) - areac(r2)
Agora que j temos estas funes, podemos us-las sempre que precisarmos.

Computao I - aula 2 - 2012/2

21

Funo
Exerccio: Defina uma funo que dados dois inteiros x e y, retorna xy.

Computao I - aula 2 - 2012/2

22

Funo
Exerccio: Defina uma funo que dados dois inteiros x e y, retorna xy. Temos a funo que eleva um nmero ao quadrado. def quadrado(x): return x**2

Computao I - aula 2 - 2012/2

23

Funo
Exerccio: Defina uma funo que dados dois inteiros x e y, retorna xy. Temos a funo que eleva um nmero ao quadrado. def quadrado(x): return x**2 Poderamos facilmente definir a funo potencia:

Computao I - aula 2 - 2012/2

24

Funo
Exerccio: Defina uma funo que dados dois inteiros x e y, retorna xy. Temos a funo que eleva um nmero ao quadrado. def quadrado(x): return x**2 Poderamos facilmente definir a funo potencia: def potencia(x,y): return x**y Na verdade, podemos ficar s com esta funo: potencia(x,2)
Computao I - aula 2 - 2012/2 25

Funo
Exerccio: Defina uma funo que dados dois inteiros x e y, retorna xy. Podemos definir a funo potencia de outra forma: def potencia(x,y=2): return x**y O que fizemos foi definir um argumento default, ou seja, no exemplo, se o usurio no fornecer o segundo parmetro, a funo considera seu valor igual a 2. >>> potencia(5) 25 >>> potencia(5,3) 125
Computao I - aula 2 - 2012/2 26

Funo
Argumentos Default Permitem que valores default sejam utilizados quando nenhum valor especificado em um certo parmetro. Formato: def nome-funo (arg0,...,argN, argN+1=default1, ..., argM=defaultM)

Argumentos sem valores default.

Argumentos com valores default. Devem ser sempre os ltimos argumentos

Computao I - aula 2 - 2012/2

27

Funo
def pi(): return 3.14 def potencia(x,y=2): return x**y def areac(r1): return pi()*potencia(r1) def coroa(r1,r2): return areac(r1) - areac(r2)

Computao I - aula 2 - 2012/2

28

Tipos Numricos
Tipo inteiro (int) : 10 Tipo inteiro longo (long) : 10000L Tipo ponto flutuante (float): 10.5 , -19000.00005 , 15e-5 Tipo complexo (complex) : 3+2j , 20j

Computao I - aula 2 - 2012/2

29

Tipos Numricos

Nmeros Inteiros: Int / Long

Os inteiros (int) tm preciso fixa ocupando tipicamente uma palavra de memria Em PC's so tipicamente representados com 32 bits (de 2311 a 232) Os nmeros inteiros de preciso arbitrria (long) tem tantos dgitos Quanto a memria permitir em termos de espao Constantes do tipo long tm o sufixo L ou l Longs so manipulados bem mais lentamente que ints Quando necessrio, clculos usando ints so convertidos para longs
Computao I - aula 2 - 2012/2 30

Tipos Numricos

Ponto Flutuante: Float

Constantes tm que possuir um ponto decimal ou serem escritas em notao cientfica com a letra e (ou E) precedendo a potncia de 10 10 10.0 int float

Computao I - aula 2 - 2012/2

31

Tipos Numricos

Nmeros Complexos: Complex

Representados com dois nmeros de ponto flutuante: um para a parte real e outro para a parte imaginria Constantes so escritas como uma soma sendo que a parte imaginria tem o sufixo j ou J 2+3j 7j 5+0j

Computao I - aula 2 - 2012/2

32

Funo
Exerccio 1: Defina funes que calcula as reas da base, da lateral e total de um cilindro reto. Exerccio 2: Dado o valor de uma conta, faa um programa que calcule o valor da conta com a gorjeta includa. Considere que possvel que a gorjeta seja maior ou menor que 10%. Use uma funo para calcular a gorjeta e outra para calcular o valor total da conta. Exerccio 3: Faa trs funes que : a. Dada uma quantidade em horas, a transforma para minutos. b. Dada uma quantidade de minutos, a transforma em segundos. c. Dada uma quantidade de horas, a transforma em segundos usando os itens a e b. Exerccio 4: Use as funes definidas no exerccio 3 e refaa o problema da maratona da aula anterior.
Computao I - aula 2 - 2012/2

33

Mdulos
Mdulos Python Funes que realizam tarefas comuns tais como clculos matemticos, manipulaes de strings, manipulao de caracteres , programao Web, programao grfica, etc. Bibliotecas: coleo de mdulos

Computao I - aula 2 - 2012/2

34

Mdulo math
Mdulo que permite que o programador realize certos clculos matemticos. Para usar uma funo que est definida em um mdulo, primeiro o programa deve importar o mdulo usando o comando import >>> import math Aps ter importado o mdulo, o programa pode chamar as funes daquele mdulo da seguinte forma: NomeDoModulo.NomeDaFuno(arg0,...,argn) Exemplo >>> math.sqrt(81) 9.0
Computao I - aula 2 - 2012/2 35

Mdulo math
Mdulo que permite que o programador realize certos clculos matemticos. Para usar uma funo que est definida em um mdulo, primeiro o programa deve importar o mdulo usando o comando import >>> import math Aps ter importado o mdulo, o programa pode chamar as funes daquele mdulo da seguinte forma: NomeDoModulo.NomeDaFuno(arg0,...,argn) Exemplo >>> math.sqrt(81)
mdulo funo
Computao I - aula 2 - 2012/2 36

parmetro

Mdulo math
Mdulo que permite que o programador realize certos clculos matemticos. Para usar uma funo que est definida em um mdulo, primeiro o programa deve importar o mdulo usando o comando import >>> import math Podemos importar parte dos mdulos: from math import * : importa todos os elementos do mdulo math from math import nome-funo : importa apenas a funo nome-funo Exemplos >>> from math import * >>> from math import sin
Computao I - aula 2 - 2012/2 37

Mdulo math
Exemplos
>>> import math >>> sin(30) Traceback (most recent call last): File "<stdin>", line 1, in ? NameError: name 'sin' is not defined >>> math.sin(30) -0.988031624093 >>> import math >>> sin(radians(30)) Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> sin(radians(30)) NameError: name 'sin' is not defined >>> math.sin(radians(30)) Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> math.sin(radians(30)) NameError: name 'radians' is not defined >>> math.sin(math.radians(30)) 0.49999999999999994

Computao I - aula 2 - 2012/2

38

Mdulo math
Exemplos
>>> from math import sin >>> sin(30) -0.988031624093 >>> from math import * >>> sin(radians(30)) Traceback (most recent call last): >>> sin(radians(30)) File "<pyshell#4>", line 1, in <module> 0.49999999999999994 sin(radians(30)) NameError: name 'radians' is not defined >>> sin(math.radians(30)) Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> sin(math.radians(30)) NameError: name 'math' is not defined

Computao I - aula 2 - 2012/2

39

Mdulo
Para ter acesso aos mdulos do python: >>> help() help> modules Para saber sobre um mdulo especfico, basta digitar o nome: help> math
Help on built-in module math: NAME math FILE (built-in) DESCRIPTION This module is always available. It provides access to the mathematical functions defined by the C standard. FUNCTIONS acos(...) acos(x) Return the arc cosine (measured in radians) of x.

>>> import math >>> help(math.cos)


Help on built-in function cos in module math: cos(...) cos(x) Return the cosine of x (measured in radians).

Pressionase q para retornar ao interpretador.

Computao I - aula 2 - 2012/2

40

Mdulo math
Exerccio 5: Redefina a funo que calcula a rea do crculo usando o valor de pi definido no mdulo math. Exerccio 6: Escreva uma funo que determina o nmero de arranjos simples de n elementos agrupados k a k. An,k = n! / (n-k)! Exerccio 7: Escreva uma funo que determina o nmero de combinaes simples de n elementos agrupados k a k. Use a funo definida no exerccio 6. Cn,k = n!/k!(n-k)! Exerccio 8: Escreva uma funo que determina o nmero de combinaes simples de n elementos k a k em que aparea, pelo menos, um dentre c elementos escolhidos.Use a funo definida no exerccio 7.
Computao I - aula 2 - 2012/2 41

Exerccio 9: Escreva uma funo que determina o nmero de combinaes simples de n elementos k a k em que apaream c elementos determinados. Use a funo definida no exerccio 7. Exerccio 10: Escreva uma funo que retorne a probabilidade de ao jogarmos um dado n vezes, obtermos exatamente k vezes o valor 6. Considere k n e que o dado honesto. Use a funo definida no exerccio 3. Exerccio 11: Reformule a funo anterior para que a probabilidade de se tirar 6 em uma jogada possa ser qualquer valor entre 0 e 1 (inclusive).

Mdulo math

Computao I - aula 2 - 2012/2

42

Aula 3 - Funo

Computao I - aula 2 - 2012/2

43

You might also like