In [1]:
"""
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())
Out[1]:
Escriba un programa que pida al usuario ingresar sus tres notas, calcule el promedio (redondeado a entero) y lo felicite solamente si su promedio es mayor a 80, pero siempre le indique su promedio.
Nota 1: 45
Nota 2: 78
Nota 3: 68
Su promedio es 64
Nota 1: 79
Nota 2: 91
Nota 3: 74
Felicitaciones!
Su promedio es 81
In [19]:
def prom(n1, n2, n3):
suma = n1 + n2 + n3
return int(round(suma / 3.0))
n1 = int(raw_input('Nota 1: '))
n2 = int(raw_input('Nota 2: '))
n3 = int(raw_input('Nota 3: '))
promedio = prom(n1, n2, n3)
print 'Su promedio es', promedio
if promedio > 80:
print 'Felicitaciones!'
if promedio < 20:
print 'Nos vemos el proximo semestre'
In [24]:
# Solucion 1
def prom(n1, n2, n3):
suma = n1 + n2 + n3
return int(round(suma / 3.))
n1 = float(raw_input('Nota 1: '))
n2 = float(raw_input('Nota 2: '))
n3 = float(raw_input('Nota 3: '))
promedio = prom(n1, n2, n3)
if promedio < 55:
print 'Usted reprobo con', promedio
else:
print 'Usted aprobo con', promedio
In [25]:
# Solucion 2
def prom(n1, n2, n3):
suma = n1 + n2 + n3
return int(round(suma / 3.0))
n1 = int(raw_input('Nota 1: '))
n2 = int(raw_input('Nota 2: '))
n3 = int(raw_input('Nota 3: '))
promedio = prom(n1, n2, n3)
if 55 <= promedio <= 100: # 50 < prom <= 30
print 'Usted aprobo con', promedio
else:
print 'Usted reprobo con', promedio
Escriba un programa que pida al usuario ingresar sus tres notas, e indique si su promedio (redondeado a entero) es pésimo (menor a 30), mediocre (30 a 54), aceptable (55 a 79) o excelente ( mayor o igual a 80).
Nota 1: 32
Nota 2: 89
Nota 3: 91
Su promedio 71 es aceptable
Nota 1: 77
Nota 2: 100
Nota 3: 91
Su promedio 89 es excelente!
In [28]:
# Solucion 1
def prom(n1, n2, n3):
suma = n1 + n2 + n3
return int(round(suma / 3.0))
n1 = int(raw_input('Nota 1: '))
n2 = int(raw_input('Nota 2: '))
n3 = int(raw_input('Nota 3: '))
promedio = prom(n1, n2, n3)
print 'Su promedio', promedio, 'es',
if promedio < 30:
print 'pesimo'
elif promedio < 55:
print 'mediocre'
elif promedio < 80:
print 'aceptable'
else:
print 'excelente!'
In [ ]:
# Solucion 2
def prom(n1, n2, n3):
suma = n1 + n2 + n3
return int(round(suma / 3.0))
n1 = int(raw_input('Nota 1: '))
n2 = int(raw_input('Nota 2: '))
n3 = int(raw_input('Nota 3: '))
promedio = prom(n1, n2, n3)
if 100>= promedio >= 80:
print 'Su promedio', promedio, 'es', 'excelente!'
elif promedio >= 55:
print 'Su promedio', promedio, 'es', 'aceptable'
elif promedio >= 30:
print 'Su promedio', promedio, 'es', 'mediocre'
else:
print 'Su promedio', promedio, 'es', 'pesimo'
Un generador eólico convierte la energía cinética del viento en energía eléctrica, lo cual se puede modelar en la siguiente fórmula: $$ W = k \ \rho \ r^2 \ v^3 $$ donde $W$ es la potencia (energía por unidad de tiempo), $k$ es una constante adimensional para cada generador (que tomaremos como 0.8), $\rho$ es la densidad del aire (que tomaremos como $1.2$ $kg/m^3$), $r$ es el radio de las aspas y $v$ es la velocidad del viento.
Sin embargo, el generador se pone en funcionamiento únicamente para velocidades mayores a 3 metros por segundo. Por razones de seguridad, el generador se detiene para velocidades mayores a 25 $m/s^2$.
Realice el diagrama de flujo que solicite el radio en metros y velocidad del viento en kilómetros por hora, y entregue la potencia generada en $Watts$ (esto es $kg \cdot m /s$).
Un generador eólico convierte la energía cinética del viento en energía eléctrica, lo cual se puede modelar en la siguiente fórmula: $$ W = k \ \rho \ r^2 \ v^3 $$ donde $W$ es la potencia (energía por unidad de tiempo), $k$ es una constante adimensional para cada generador (que tomaremos como 0.8), $\rho$ es la densidad del aire (que tomaremos como $1.2$ $kg/m^3$), $r$ es el radio de las aspas y $v$ es la velocidad del viento.
Sin embargo, el generador se pone en funcionamiento únicamente para velocidades mayores a 3 metros por segundo. Por razones de seguridad, el generador se detiene para velocidades mayores a 25 $m/s^2$.
Realice el diagrama de flujo que solicite el radio en metros y velocidad del viento en kilómetros por hora, y entregue la potencia generada en $Watts$ (esto es $kg \cdot m /s$).
In [34]:
# Solucion de los alumnos
def potencia_aerogenerador(r, v):
k=0.8
p=1.2
if 3<v<25:
return k* p* r**2 * v**3
else:
return 0
# Leer y convertir a unidades correctas
radio = float(raw_input("Ingrese radio del aerogenerador en metros: "))
vel = float(raw_input("Ingrese velocidad del viendo en km/h: ")) * 1000 / 3600
print "%.3f" %potencia_aerogenerador(radio, vel), "Watts"
In [ ]:
# Solucion 1
def potencia_aerogenerador(r, v):
k = 0.8
rho = 1.2
P = k * rho * r**2 * v**3
if 3<v<25:
return P
else:
return 0
# Leer y convertir a unidades correctas
radio = float(raw_input("Ingrese radio del aerogenerador en metros: "))
vel = float(raw_input("Ingrese velocidad del viendo en km/h: ")) * 1000 / 3600
#print "Se tendría una potencia de", potencia_aerogenerador(radio, vel), "Watts"
potencia_aerogenerador(radio, vel)
print "Se tendría una potencia de", P, "Watts"
In [ ]:
# Solucion 2
def potencia_aerogenerador(r, v):
k = 0.8
rho = 1.2
P = 0
if 3<v<25:
P = k * rho * r**2 * v**3
return P
# Leer y convertir a unidades correctas
radio = float(raw_input("Ingrese radio del aerogenerador en metros: "))
vel = float(raw_input("Ingrese velocidad del viendo en km/h: ")) * 1000 / 3600
print "Se tendría una potencia de", potencia_aerogenerador(radio, vel), "Watts"
Una central hidroeléctica de bombeo tiene 2 modos: puede vaciar el estanque para generar electricidad, o bien, puede bombear el agua y llenar el estanque. La decisión de generar electricidad o llenar el estanque depende del precio de la electricidad y de la capacidad del estanque. Para un estanque determinado, se genera electricidad cuando el precio de electricidad es mayor a 60 USD/MWh y si el embalse se encuentra a más del 10% de su capacidad. Se consumirá electricidad y se bombeará agua al embalse cuando el precio de electricidad sea menor a 60 USD/MWh y el embalse se encuentra a menos del 90% de su capacidad.
Realice un diagrama de flujo y un programa que solicite el precio actual de la electricidad y el porcentaje de llenado del estanque, e imprima en pantalla la decisión: “GENERAR”, “BOMBEAR” o “NADA”.
Una central hidroeléctica de bombeo tiene 2 modos: puede vaciar el estanque para generar electricidad, o bien, puede bombear el agua y llenar el estanque. La decisión de generar electricidad o llenar el estanque depende del precio de la electricidad y de la capacidad del estanque. Para un estanque determinado, se genera electricidad cuando el precio de electricidad es mayor a 60 USD/MWh y si el embalse se encuentra a más del 10% de su capacidad. Se consumirá electricidad y se bombeará agua al embalse cuando el precio de electricidad sea menor a 60 USD/MWh y el embalse se encuentra a menos del 90% de su capacidad.
Realice un diagrama de flujo que solicite el precio actual de la electricidad y el porcentaje de llenado del estanque, e imprima en pantalla la decisión: “GENERAR”, “BOMBEAR” o “NADA”.
In [ ]:
# Solución de los alumnos
def accion_central(precio, capacidad):
# FIX ME
return
p = float(raw_input("Ingrese precio de electricidad en USD"))
estanque = float(raw_input("Ingrese porcentaje llenado del embalse [0-100]"))
accion_central(p,estanque)
In [ ]:
# Solución 1
def accion_central(precio, capacidad):
if precio>60:
if capacidad>10:
print "Generar"
else:
print "Nada"
else:
if capacidad>90:
print "Nada"
else:
print "Bombear"
return
p = float(raw_input("Ingrese precio de electricidad en USD"))
estanque = float(raw_input("Ingrese porcentaje llenado del embalse [0-100]"))
accion_central(p,estanque)
Un año es bisiesto si es divisible por 4, excepto si es divisible por 100 y no por 400. Escriba la función es_bisiesto(anno) que reciba el año y regrese True si el año provisto es bisiesto o False si no lo es.
es_bisiesto(1988)
True
es_bisiesto(2011)
False
es_bisiesto(1700)
False
es_bisiesto(2400)
True
In [ ]:
# Solucion de los alumnos
def es_bisiesto(anno):
# FIX ME
return False
year = int(raw_input("Ingrese un año: "))
print es_bisiesto(year)
In [ ]:
# Solucion 1
def es_bisiesto(anno):
if anno % 400 == 0:
bisiesto = True
elif anno % 100 == 0:
bisiesto = False
elif anno % 4 == 0:
bisiesto = True
else:
bisiesto = False
return bisiesto
year = int(raw_input("Ingrese un año: "))
print es_bisiesto(year)
In [ ]:
# Solucion 2
def es_bisiesto(anno):
if ((anno % 4 == 0 and anno % 100 != 0) or anno % 400 == 0):
bisiesto = True
else:
bisiesto = False
return bisiesto
year = int(raw_input("Ingrese un año: "))
print es_bisiesto(year)
In [ ]:
# Solucion 3
def es_bisiesto(anno):
return ((anno % 4 == 0 and anno % 100 != 0) or anno % 400 == 0)
year = int(raw_input("Ingrese un año: "))
print es_bisiesto(year)