La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Clase 9: Repaso/Resumen

Presentaciones similares


Presentación del tema: "Clase 9: Repaso/Resumen"— Transcripción de la presentación:

1 Clase 9: Repaso/Resumen
lectura/escritura y asignación funciones selección de instrucciones (instrucción if) repetición de instrucciones (instrucción while) recursión J.Alvarez

2

3 Clase 9: Repaso/Resumen
%: operador de resto de división #invertir entero de 3 dígitos n=input(“Nº 3 dígitos?”) d1=n/100; d3=n%10 d2=n%100/10 #d2=n/10%10 print“inverso=”,100*d3+10*d2+d1 #cajero automático d=input(“¿Cuánto dinero necesita?”) print d/20000,”de $20.000”; d=d%20000 print d/10000,”de $10.000”; d=d%10000 print d/5000,”de $5.000”); d=d%5000 print d/2000,”de $2.000”); d=d%2000 print d/1000,”de $1.000”) J.Alvarez

4 Funciones predefinidas
Clase 9: Repaso/Resumen Funciones predefinidas J.Alvarez

5 Funciones definidas por el programador
Clase 9: Repaso/Resumen Funciones definidas por el programador #convertir fecha ddmmaaaa a la forma aaaammdd def aaaammdd(x): dd=x/ ; mm=x/10000%100; aaaa=x%10000 return aaaa* mm*100 + dd #convertir fecha aaaammdd a la forma ddmmaaaa def ddmmaaaa(x): dd=x%100; mm=x%10000/100; aaaa=x/10000 return dd* mm* aaaa #seleccionar mayor entre dos fechas f1=input(“fecha1(ddmmaaaa)?”) f2=input(“fecha2(ddmmaaaa)?”) print“mayor=“,ddmmaaaa(max(aaaammdd(f1),aaaammdd(f2))) J.Alvarez

6

7 Instrucción if print “resolver ecuación axx+bx+c=0” a=input(“a?”); b=input(“b?”); c=input(“c?”) print “resultado:”, if a==0 and b==0: print “indefinido” elif a==0: print”x=“,-c/b else: d=b**2-4*a*c if d==0: print “x=“,-b/(2*a) elif d>0 raiz=math.sqrt(d) print “x=“,(-b+raiz)/(2*a),(-b-raiz)/(2*a) print “raices complejas”

8 def diasMes(m,a): if m==1 or m==3 or m==5 or m==7 \#continua or m==8 or m==10 or m==12: return 31 elif m==4 or m==6 or m==9 or m==11: return 30 elif m==2: if bisiesto(a): return 29 else: return 28 return 0 #mes incorrecto

9 Funciones de tipo boolean
def bisiesto(x): if x%400==0: #si es divisible por 400? return True # es bisiesto elif x%100==0: #si es divisible por 100 return False # no es bisiesto elif x%4==0: #si es divisible por 4 else: #sino return x%400==0 or x%100!=0 and x%4==0 return x%4==0 and x%100!=0 or x%400==0

10

11 Clase 9: Repaso/Resumen
Instrucción while #tabla celsius - fahrenheit g=-20 while g<=40: print g,”ºC =“,9.0/5.0*g+32,”ºF” g=g+5 #tabla grados – funcion seno grados=0 while grados<=360: radianes=math.pi*grados/180 print grados,radianes,math.sin(radianes) grados=grados+10 J.Alvarez

12 Clase 9: Repaso/Resumen
Patrones (esquemas) para proceso de listas #inicializar #inicializar mayor=0; mayor=0; #leer 1º #repetir siempre n=input(“nº?”) while True: #repetir mientras #leer while n!=0: n=input(“nº?”) #procesar #condición de término if n>mayor: mayor=n if n==0: break #leer sgte #procesar n=input(“nº?”) mayor=max(mayor,n) #finalizar #finalizar print“mayor=“,mayor print “mayor=“,mayor J.Alvarez

13 Clase 9: Repaso/Resumen
J.Alvarez

14

15 Solución 2. probando sólo con impares
def primo(x): if x==2: return True #2 es primo if x%2==0: return False #otro par no es primo i=3 while i<x: #i=3,5,…,x-1 (impares) if x%i==0: return False i=i+2 return True Solución 3. probando hasta raíz (si hay divisor > también hay <) if x%2==0: return x==2 #2 es primo while i<=int(math.sqrt(x)): #i=3,5,…,x

16 Funciones recursivas def factorial(x): if x==0: return 1 #caso base else: return x*factorial(x-1) #recursión def digitos(x): if x<10: return 1 return 1 + digitos(x/10) def potencia(x,y): if y==0: return 1.0 p=potencia(x,y/2) if y%2==0: return p * p return x * p * p

17 Clase 9: Repaso/Resumen
Funciones Recursivas #suma(x,y): x + (x+1) + … + y def suma(x,y): if x>y: return 0 return x + suma(x+1,y) return suma(x,y-1) + y #números de fibonacci: 0,1,1,2,3,5,8,13,21,… def fibonacci(i): #i-ésimo n° de fibonacci if i<=2: return i-1 return fibonacci(i-1)+fibonacci(i-2) #C(x,y)=C(x-1,y)+C(x-1,y-1); C(x,x)=C(x,0)=1 def combinaciones(x,y): if x==y or y==0: return 1 return combinaciones(x-1,y) + combinaciones(x-1,y-1) J.Alvarez

18 Clase 9: Repaso/Resumen
procedimientos (no devuelven resultado) recursivos def misterio(): n=input(“nº?”) if n==0: return misterio() print n ¿Qué hace misterio() con los sgtes datos? nº?6 nº?3 nº?5 nº?0 J.Alvarez


Descargar ppt "Clase 9: Repaso/Resumen"

Presentaciones similares


Anuncios Google