07-funciones-diapos

11
Funciones Programaci ´ on http://progra.usm.cl

Upload: nachoulloa4

Post on 08-Jul-2016

219 views

Category:

Documents


7 download

DESCRIPTION

funciones programacion

TRANSCRIPT

Page 1: 07-funciones-diapos

Funciones

Programacionhttp://progra.usm.cl

Page 2: 07-funciones-diapos

Uso de funciones

Calculo del valor absolutode x usando la defincion:

Calculo del valor absolutode x usando la funcion abs:

x = float(raw_input())

if x < 0:a = -x

else:a = x

print a

x = float(raw_input())

a = abs(x)

print a

Page 3: 07-funciones-diapos

Uso de funciones

Calculo del factorialn! = 1 · 2 · · · · · n:

Nos gustarıa poder hacerloası:

n = int(raw_input())

f = 1for i in range(1, n + 1):

f = f * i

print f

n = int(raw_input())f = factorial(n)print f

Page 4: 07-funciones-diapos

Definicion de funciones

def factorial(n):prod = 1for i in range(1, n + 1):

prod = prod * ireturn prod

n = int(raw_input())f = factorial(n)print f

Page 5: 07-funciones-diapos

Conceptos

ParametrosVariables locales de factorialVariables globalesValor de retorno

def factorial(n):prod = 1for i in range(1, n + 1):

prod = prod * ireturn prod

n = int(raw_input())f = factorial(n)print f

Page 6: 07-funciones-diapos

Ruteo

Globales Localesn f n i prod

44

11

12

23

64

24

24

def factorial(n):prod = 1for i in range(1, n + 1):

prod = prod * ireturn prod

n = int(raw_input())f = factorial(n)print f

Page 7: 07-funciones-diapos

Probar funciones en la consola

>>> def factorial(n):... prod = 1... for i in range(1, n + 1):... prod = prod * i... return prod...>>> factorial(5)120>>> factorial(8)40320>>> factorial(0)1

Page 8: 07-funciones-diapos

Ejercicio: coeficiente binomial

Escriba un programa que calcule el coeficiente binomial:(nk

)=

n!(n − k)! k!

n: 6k: 3(n k) = 20

Page 9: 07-funciones-diapos

Solucion

def factorial(n):prod = 1for i in range(1, n + 1):

prod = prod * ireturn prod

def coef_binomial(n, k):fn = factorial(n)fk = factorial(k)fnk = factorial(n - k)return fn / (fnk * fk)

n = int(raw_input('n: '))k = int(raw_input('k: '))print '(n k) =', coef_binomial(n, k)

Page 10: 07-funciones-diapos

Ejercicio: contar letras

Escriba la funcion contar para completar este programa:oracion = str(raw_input('Ingrese oracion'))vocales = 'aeiou'for i in range(5):

v = vocales[i]c = contar(v, oracion)print v, 'aparece', c, 'veces'

Ingrese oracion: viva la programaciona aparece 4 vecese aparece 0 vecesi aparece 2 veceso aparece 2 vecesu aparece 0 veces

Page 11: 07-funciones-diapos

Solucion

def contar(letra, oracion):c = 0n = len(oracion)for i in range(n):

if oracion[i] == letra:c = c + 1

return c

oracion = str(raw_input('Ingrese oracion'))vocales = 'aeiou'for i in range(5):

v = vocales[i]c = contar(v, oracion)print v, 'aparece', c, 'veces'