La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

U6 Ejercicios ¡¡¡¡PREPARANDO LA PEC1!!!!. ERRORES FRECUENTES EN test de 8/10/2015 Nombre de la función no muy bueno : debe ser ImprimeNombreMes o ImprimeMesEnLetra.

Presentaciones similares


Presentación del tema: "U6 Ejercicios ¡¡¡¡PREPARANDO LA PEC1!!!!. ERRORES FRECUENTES EN test de 8/10/2015 Nombre de la función no muy bueno : debe ser ImprimeNombreMes o ImprimeMesEnLetra."— Transcripción de la presentación:

1 U6 Ejercicios ¡¡¡¡PREPARANDO LA PEC1!!!!

2 ERRORES FRECUENTES EN test de 8/10/2015 Nombre de la función no muy bueno : debe ser ImprimeNombreMes o ImprimeMesEnLetra devuelve/imprime ¡¡¡Afinad la oreja!!! Si recibe NO pide al usuario If planos hace 12 comparaciones. If anidados hace 1/12(1+2+…+11+11)=77/12=6,4  calificación máxima =5 Si hay PRE: no controles. El subprograma responsable es el que pide el dato Sin documentación no es reusable  puntuación máxima 6,6 ¿Diferencia entre definir el array de nombreMeses dentro y fuera del subprograma? ¿Cuál te gusta mas?1<=mes<=12 ó 0<mes<13 Regla de ingenieros del 80-20

3 Ventajas e inconvenientes de cada versión Uso global de constantes está permitido pero aumenta el acoplamiento disminuyendo la cohexión from math import pi def perímetro(radio): “””PRE: pi definido “”” return 2*pi*r def perímetro(radio): from math import pi return 2*pi*r from math import pi def perímetro(radio,pi): return 2*pi*r ¿Recibís mis correos?¿Daniel?

4 Según datos de la Armada,para 2016 las estaciones corresponden con los periodos: 20/03 al 19/06 Primavera 20/06 al 21/09 Verano 22/09 al 20/12 Otoño 21/12 al 19/03 Invierno Escribe un subprograma que calcule la estación correspondiente a esa fecha. Primero plantéate los casos de prueba. Haz el diagrama de flujo y solo después de ello escribe el código. El subprograma impondrá el prerrequisito de que el día y el mes sean correctos. Más adelante atenderemos esta cuestión.

5 estacion_v1.py 1"""********************************************************************* 2* PROGRAMA: Estacion.py * 3* OBJ: estación del año correspondiente dia/mes dados por usuario * 4* OJO: no comprueba validez de la entrada * 5*********************************************************************""" 6 7def estacion (d,m): 8 """ int,int--> string * 9 *OBJ:devuelve la estación que corresponde a d/m (dia,mes) * 10 * 20/03 al 19/06 Primavera * 11 * 20/06 al 21/09 Verano * 12 * 22/09 al 20/12 Otoño * 13 * 21/12 al 19/03 Invierno * 14 PRE dia, mes formarían parte de una fecha válida """ 15 if (m==12 and d>=21)or m==1 or m==2 or (m==3 and d<=19): 16 estac = 'invierno' 17 elif (m==3 and d>=20) or m==4 or m==5 or (m==6 and d<=19): 18 estac = 'primavera' 19 elif (m==6 and d>=20) or m==7 or m==8 or (m==9 and d<=21): 20 estac = 'verano' 21 else: estac = 'otoño' 22 return estac 23 24dia = int(input('día: ')) 25mes = int(input('mes: ')) 26# aqui iría la validación de fecha 27print ('la estación de',dia,'/',mes,'es', estacion(dia,mes))

6 1"""********************************************************************* 2* PROGRAMA: estacion.py * 3* OBJ: estación del año correspondiente dia/mes dados por usuario * 4* OJO: no comprueba validez de la entrada * 5*********************************************************************""" 6 7def estacion (d,m): 8 """devuelve la estación que corresponde a d/m (dia,mes) * 9 * 20/03 al 19/06 Primavera * 10 * 20/06 al 21/09 Verano * 11 * 22/09 al 20/12 Otoño * 12 * 21/12 al 19/03 Invierno 13 PRE dia, mes formarían parte de una fecha válida """ 14 plana=mes*100+dia #agrupo para comparar de una vez 15 if plana<=319:estacion = 'invierno' 16 elif plana<=619:estacion = 'primavera' 17 elif plana<=921:estacion = 'verano' 18 elif plana<=1221:estacion = 'otoño' 19 else: estacion = 'invierno' 20 return estacion

7 """ ** servicios para manejo de dinero ****** """ # valor de las monedas editadas en el país edicion=(500.,200.,100.,50.,20.,10.,5.,2.,1.,0.5,0.2,0.1,0.05,0.02,0.01) #monedero= tupla con número(entero>0) de monedas de cada pieza editada, en el orden de estas Trabajo Personal: Cada país acuña billetes y monedas de unos determinados valores. Por ejemplo en los países de la Unión Europea los valores nominales son: 500.0, 200.0, 100.0, 50.0, 20.0, 10.0, 5.0, 2.0, 1.0, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 euros Diseña la fábrica de monedas Diseña el monedero para estos países. Servicios para el manejo del dinero

8 9def totalMonedero (monedero,edicion): 10 """ tupla, tupla--> float 11 OBJ: valor total contenido en modenedero, con piezas de edicion 11 PRE: cuantas (de cada pieza en monedero)>=0 """ 12 total=0 13 14 for i in range(0,len(edicion): 15 total=total+monedero[i]*edicion[i] 16 17 return total Trabajo personal (*): Haz un subprograma que indique el contenido total de un monedero. edicion=(500.,200.,100.,50.,20.,10.,5.,2.,1.,0.5,0.2,0.1,0.05,0.02,0.01) #monedero= número de monedas de cada pieza editada, en el orden de estas

9 monVacio=(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) Trabajo personal (*): Haz un subprograma que calcule si un monedero está vacío. Es decir, no contiene ninguna moneda de las acuñadas en el país. 30def estaVacio(monedero, edicion): 31 """ tupla,tupla  boolean 32 OBJ: True si la cuantas de cada una de las monedas es cero 32 PRE: cuantas (de cada pieza en monedero)>=0""" 33 return monedero.count(0)==len(edicion) 30def estaVacio(monedero, edicion): 31 """ tupla,tupla  boolean 32 OBJ: True si la cuantas de cada una de las monedas es cero 32 PRE: cuantas (de cada pieza en monedero)>=0""" 33 return monedero==monVacio 30def estaVacio(monedero, edicion): 31 """ tupla,tupla  boolean 32 OBJ: True si la cuantas de cada una de las monedas es cero 32 PRE: cuantas (de cada pieza en monedero)>=0""" 33 return totalMonedero(monedero,edicion)==0

10 Trabajo personal (*): En la salida de usuario, no es elegante especificar las piezas de las que hay cero unidades. Haz un subprograma que recibe un monedero e imprime cuantas piezas hay de cada tipo (de las que verdaderamente hay). Trabajo personal (*): Haz un subprograma que indique la forma óptima de formar una determinada cantidad, con las piezas acuñadas en el país. Por óptima queremos decir formada por el mínimo número de piezas. Trabajo personal: En el módulo de gestión de tiempos incluiste un subprograma que escribía en letras los números, puede que esto también lo necesites en gestión de dinero. Inclúyelo, pero no vuelvas a teclearlo, ni lo copies (habría dos copias, lo que dificultará el mantenimiento). Haz que este módulo importe, de aquel, los subprogramas que le sean de utilidad. Recuerda el orden de las secciones del código. Hasta el 30 son irregulares

11 cardinal_v1.py 1"""********************************************************************* 2* PROGRAMA: CARDINAL * 3*OBJ: escribe el cardinal del 30<=número<=99 introducido por el usuario* 4*********************************************************************""" 5 6def cardinal (n): 7 """OBJ: escribe el cardinal de n 8 PRE: 30<=número<=99 """ 9 10 if n>=90: print('noventa', end='') 11 elif n>=80: print('ochenta',end='') 12 elif n>=70: print('setenta',end='') 13 elif n>=60: print('sesenta',end='') 14 elif n>=50: print('cincuenta',end='') 15 elif n>=40: print('cuarenta',end='') 16 elif n>=30: print('treinta',end='') 17 n=n%10 #unidades 18 if n==1: print(' y uno') 19 elif n==2: print(' y dos') 20 elif n==3: print(' y tres') 21 elif n==4: print(' y cuatro') 22 elif n==5: print(' y cinco') 23 elif n==6: print(' y seis') 24 elif n==7: print(' y siete') 25 elif n==8: print(' y ocho') 26 else: print(' y nueve') 27 28# PROBADOR 29n = int(input('numero: ')) 30if 30<=n<=99: cardinal(n) 31else: print('fuera de rango 30<=número<=99')


Descargar ppt "U6 Ejercicios ¡¡¡¡PREPARANDO LA PEC1!!!!. ERRORES FRECUENTES EN test de 8/10/2015 Nombre de la función no muy bueno : debe ser ImprimeNombreMes o ImprimeMesEnLetra."

Presentaciones similares


Anuncios Google