In [ ]:
"""
IPython Notebook v4.0 para python 2.7
Librerías adicionales: Ninguna.
Contenido bajo licencia CC-BY 4.0. Código bajo licencia MIT. (c) Sebastian Flores.
"""
# Configuracion para recargar módulos y librerías
%reload_ext autoreload
%autoreload 2
from IPython.core.display import HTML
HTML(open("style/iwi131.css", "r").read())
In [ ]:
from math import exp, cos, pi, sin
from random import randrange, choice
from turtle import * # Evitar
print exp(5.5)
print cos(pi / 2)
print randrange(10)
print choice(['Lunes', 'Martes', 'Viernes'])
In [ ]:
import math
import random
print math.exp(5.5)
print math.cos(math.pi / 2)
print random.randrange(10)
print random.choice(['Lunes', 'Martes', 'Viernes'])
Cree un módulo que calcule el área de figuras geométricas. Utilizando el módulo realice los siguientes programas:
(Ver archivos adjuntos)
In [ ]:
def convertir_segundos(segundos):
horas = segundos / (60 * 60)
minutos = (segundos / 60) % 60
segundos = segundos % 60
return horas, minutos, segundos
h, m, s = convertir_segundos(9814)
print s
In [ ]:
def minmax():
N = int(raw_input("Cuantos números: "))
j = 1
# FIX ME
while j<=N:
x = float(raw_input("Numero "+str(j)+": "))
# FIX ME
j += 1
return mmin, mmax
# FIX ME
print "Minimo:", mimin
print "Maximo:", mimax
In [ ]:
def minmax():
N = int(raw_input("Cuantos números: "))
j = 1
mi_min = +float("inf")
mi_max = -float("inf")
while j<=N:
x = float(raw_input("Numero "+str(j)+": "))
mi_min = min(x,mi_min)
mi_max = max(x,mi_max)
j += 1
return mi_min, mi_max
mmin, mmax = minmax()
print "Minimo:", mmin
print "Maximo:", mmax
In [ ]:
def imprimir_datos(nombre, apellido, rol, dia, mes, anno):
print ''
print 'Nombre completo:', nombre, apellido
print 'Rol:', rol
print 'Fecha de nacimiento:',
print dia, '/', mes, '/', anno
imprimir_datos('Perico', 'Los Palotes', '201101001-1', 3, 1, 1993)
imprimir_datos('Yayita', 'Vinagre', '201101002-2', 10, 9, 1992)
imprimir_datos('Fulano', 'De Tal', '201101003-3', 14, 5, 1990)
Crear una función codigo_palabra(codigo) que reciba un código encriptado de sólo letras e imprima el mensaje desencriptado. La regla de desencriptación es la siguiente: la palabra desencriptada se obtiene recorriendo desde el final de la palabra hasta el comienzo, considerando solo las letras en ubicaciones impares. Empezando desde la ultima letra.
codigo_palabra('aczaarltp')
plaza
codigo_palabra('axruatgrrreov')
vergara
In [ ]:
def codigo_palabra(palabra):
codigo=''
# FIX ME
while i<=len(palabra):
# FIX ME
print codigo
codigo_palabra('aczaarltp')
codigo_palabra('axruatgrrreov')
In [ ]:
def codigo_palabra(palabra):
n = len(palabra)-1
codigo = ""
while n>=0:
codigo += palabra[n]
n -= 2
print codigo
codigo_palabra('aczaarltp')
codigo_palabra('axruatgrrreov')
In [ ]:
def codigo_palabra(palabra):
j = 1
codigo = ""
while j<=len(palabra):
codigo += palabra[-j]
j += 2
print codigo
codigo_palabra('aczaarltp')
codigo_palabra('axruatgrrreov')
In [ ]:
def f(a, b=2, c="toma b"):
if c=="toma b":
c = b
return a + b*c
print f(10, b=1, c="toma b") # Probar f(10), f(10,2), f(10,15), etc.
Cree una función que regresa el perimetro de un polígono en función del radio $r$ y el número de lados $n$: $$P = 2 \ n \ r \tan\Big(\frac{\pi}{n}\Big)$$
In [ ]:
# Import library
# Definir funcion
# Casos a utilizar
print perimetro(0.5, 2)
print perimetro(0.5, 3)
print perimetro(0.5, 4)
print perimetro(0.5, 10)
print perimetro(0.5, 20)
print perimetro(0.5, 1000)
print perimetro(0.5)
In [ ]:
# Importar modulos necesarios
import math
# Definir funcion
def perimetro(r, n="c"):
if n=="c":
return 2*math.pi*r
elif n<=2:
print "Numero incorrecto de lados"
else:
return 2*r*n*math.tan(math.pi/n)
# Casos a utilizar
print perimetro(0.5, 2)
print perimetro(0.5, 3)
print perimetro(0.5, 4)
print perimetro(0.5, 10)
print perimetro(0.5, 20)
print perimetro(0.5, 1000)
print perimetro(0.5)
In [ ]:
def sumar(n, f):
s = 0
i = 0
while i<=n:
s = s + f(i)
i += 1
return s
def identidad(x):
return x
def cuadrado(x):
return x ** 2
def cubo(x):
return x ** 3
print sumar(1000, identidad)
print sumar(1000, cuadrado)
print sumar(1000, cubo)
In [ ]:
def aplicar_funcion(a, b, c, funcion):
# FIX ME
# FIX ME
return
def suma(x,y):
return x+y
def multiplicar(x,y):
return x*y
print aplicar_funcion(1, 2, 3, suma)
print aplicar_funcion(1, 2, 3, multiplicar)
print aplicar_funcion("a", "b", "c", suma)
print aplicar_funcion("a", 2, 3, multiplicar)
In [ ]:
def aplicar_funcion(a, b, c, funcion):
ab = funcion(a,b)
abc = funcion(ab, c)
return abc
def suma(x,y):
return x+y
def multiplicar(x,y):
return x*y
print aplicar_funcion(1, 2, 3, suma)
print aplicar_funcion(1, 2, 3, multiplicar)
print aplicar_funcion("a", "b", "c", suma)
print aplicar_funcion("a", 2, 3, multiplicar)
In [ ]:
def factorial(n):
if n <= 0:
return 1
else:
return factorial(n - 1) * n
print factorial(2)
print factorial(10)
In [ ]:
def suma_digitos(n):
n_str = str(n)
if len(n_str)==1:
# FIX ME
else:
# FIX ME
print suma_digitos(234)
In [ ]:
def suma_digitos(n):
n_str = str(n)
if len(n_str)==1:
return n
else:
primer_digito = n_str[0]
otros_digitos = n_str[1:]
return int(primer_digito) + suma_digitos(int(otros_digitos))
print suma_digitos(234)
Realizar al menos 1 ejercicio de Diseño De Algoritmos
Realizar al menos 1 ejercicio de Funciones y Módulos
Enviar por correo, indicando: