tomasfdel

Pitón Práctica 3

Sep 6th, 2016
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.26 KB | None | 0 0
  1. EJERCICIOs 2-3)
  2.  
  3. def suma(a,b):
  4.     return a+b
  5.  
  6. def main():
  7.     suma(1,2)
  8.  
  9. main()
  10. #Resultado: No hace nada
  11.  
  12.  
  13.  
  14.  
  15. def suma(a,b):
  16.     hola=a+b
  17.  
  18. def main():
  19.     cad= "Experimentando con " +str(suma(1,2))+" a ver què pasa"
  20.     print(cad)
  21.  
  22. main()
  23. #Resultado: "Experimentando con None a ver què pasa"
  24.  
  25. EJ 4)
  26. def repetir_hola(n):
  27.     for i in range (n):
  28.         print("Hola")
  29.  
  30. repetir_hola(10)
  31. #Con enteros positivos hace exactamente lo que creés que hace. Con n<=0 no imprime nada
  32.  
  33.  
  34.  
  35. EJERCICIO 5)
  36. def repetir_hola(n):
  37.     print("Hola "*n)
  38.  
  39. repetir_hola(10)
  40. #Con enteros positivos hace exactamente lo que creés que hace. Con n<=0 imprime cadena vacía
  41.  
  42.  
  43.  
  44. EJ 6)
  45. def repetir_saludo(n, saludo):
  46.     for i in range (n):
  47.         print(saludo)
  48.  
  49. repetir_saludo(100, "Holaaaa")
  50.  
  51.  
  52.  
  53. EJ 7)
  54. def repetir_saludo(n, saludo):
  55.      print(saludo*n)
  56.  
  57. repetir_saludo(100, "HoLa ")
  58.  
  59.  
  60. EJ 8)
  61. def parOimpar(n):
  62.     if n%2==0:
  63.         print("El número es par")
  64.     else:
  65.         print("El número es impar")
  66.  
  67.  
  68. parOimpar(-155)
  69.  
  70. #Parte B
  71. def primo(n):
  72.     contador=0
  73.     for i in range (1,n+1):
  74.         if n%i==0:
  75.             contador+=1
  76.  
  77.     if(contador==2):
  78.         print("El nùmero es primo")
  79.     else:
  80.         print("El nùmero no es primo")
  81.  
  82. primo(155)
  83.  
  84. EJ 9)
  85. def abs_propio(n):
  86.     if(n>=0):
  87.         return n
  88.     return -n
  89.  
  90.  
  91. EJ 10)
  92. import math
  93.  
  94. def raices(a,b,c):
  95.     det=b**2-4*a*c
  96.     if a!=0 and det>=0:
  97.         raiz1=(-b+math.sqrt(det))/2*a
  98.         raiz2=(-b-math.sqrt(det))/2*a
  99.         print ("Las raices son", raiz1,"y", raiz2)
  100.     else:
  101.         print("No se puede calcular")
  102.  
  103. raices(1,2,1)
  104.  
  105.  
  106.  
  107. EJ 11)
  108. def bisiesto(n):
  109.     if(n%400==0 or (n%4==0 and n%100)):
  110.         return True
  111.     return False
  112.  
  113. def diasDeMes(n):
  114.     if (n==1 or n==3 or n==5 or n==7 or n==8 or n==10 or n==12):
  115.         return 31
  116.     if n!=2:
  117.        return 30
  118.     return 28
  119.  
  120. def fechaValida(dia,mes,año):
  121.     if(dia%1==0 and mes%1==0 and año%1==0 and mes>=1 and mes<=12 and dia>=1):
  122.         if(bisiesto(año)):
  123.             if(mes==2 and dia<=(diasDeMes(mes)+1)):
  124.                 return True
  125.         if(dia<=diasDeMes(mes)):
  126.                 return True
  127.  
  128.     return False
  129.        
  130.  
  131. def diasRestantesaMes(dia,mes,año):
  132.     if (bisiesto(año) and mes==2):
  133.         return 29-dia
  134.     return diasDeMes(mes)-dia
  135.  
  136. def diasRestantesaAño(dia, mes, año):
  137.     pepe= diasRestantesaMes(dia, mes, año)
  138.     for i in range (mes+1,13):
  139.         if(i==2 and bisiesto(año)):
  140.             pepe+= 29
  141.         else:
  142.             pepe+= diasDeMes(i)
  143.     return pepe
  144.  
  145.  
  146. def diasTranscurridos(dia,mes,año):
  147.     resultado= 365 - diasRestantesaAño(dia,mes,año)
  148.     if(bisiesto(año)):
  149.         return resultado + 1
  150.     return resultado
  151.  
  152. def diferenciaDeDias(dia1,mes1,año1,dia2,mes2,año2):
  153.     if(año1==año2):
  154.         return diasTranscurridos(dia2,mes2,año2)-diasTranscurridos(dia1,mes1,año1)
  155.  
  156.     resultado=diasRestantesaAño(dia1,mes1,año1)
  157.     for x in range (año1+1,año2):
  158.         if(bisiesto(x)):
  159.             resultado+=366
  160.         else:
  161.             resultado+=365
  162.     resultado+=diasTranscurridos(dia2,mes2,año2)
  163.     return resultado
  164.  
  165. #Suponemos la primer fecha es anterior a la segunda
  166. def main():
  167.     dia1=1
  168.     mes1=2
  169.     año1=2016
  170.     dia2=1
  171.     mes2=3
  172.     año2=2017
  173.     if (fechaValida(dia1,mes1,año1) and fechaValida(dia2,mes2,año2) ):
  174.         print ("Hay", diferenciaDeDias(dia1,mes1,año1,dia2,mes2,año2), "entre las fechas")
  175.     else:
  176.         print("Alguna de las fechas no es válida")
  177.    
  178.  
  179. main()
  180.  
  181. EJERCICIO 14)
  182. def MaxProd(a,b,c,d):
  183.     """
  184.    Dados cuatro números, devuelve el producto máximo
  185.    entre dos de ellos.
  186.    Args:
  187.        a,b,c,d: Los cuatro números requeridos
  188.    Returns:
  189.        max: El producto máximo entre dos de los cuatro números.
  190.    
  191.    """
  192.     max=a*b
  193.     if a*c>max:
  194.         max=a*c
  195.     if a*d>max:
  196.         max=a*d
  197.     if b*c>max:
  198.         max=b*c
  199.     if b*d>max:
  200.         max=b*d
  201.     if c*d>max:
  202.         max=c*d
  203.     return max
  204.    
  205.    
  206. def test_MaxProd():
  207.     assert MaxProd(1,5,-2,-4)==8
  208.     assert MaxProd(5,2,8,4)==40
  209.     assert MaxProd(-5,0,0,1)==0
  210.  
  211.  
  212.  
  213.  
  214.  
  215. EJERCICIO 21 (Recursividad es Poder):
  216. def romanos(n, potencia):
  217.  
  218.     if potencia<0:
  219.         return ""
  220.  
  221.  
  222.     digito=n//(10**potencia)
  223.     n=n%(10**potencia)
  224.    
  225.     if potencia==3:
  226.         return "M"*digito + romanos(n,potencia-1)
  227.        
  228.     if digito<=3:
  229.         return "I"*digito*(potencia==0)+"X"*digito*(potencia==1)+"C"*digito*(potencia==2) + romanos(n,potencia-1)  
  230.     if digito==4:
  231.         return romanos(10**potencia,potencia) + romanos(5*10**potencia,potencia) + romanos(n,potencia-1)
  232.     if digito==5:
  233.         return "V"*(potencia==0)+"L"*(potencia==1)+"D"*(potencia==2) + romanos(n,potencia-1)
  234.     if digito<=8:
  235.         return romanos(5*10**potencia,potencia)+"I"*(digito-5)*(potencia==0)+"X"*(digito-5)*(potencia==1)+"C"*(digito-5)*(potencia==2) + romanos(n,potencia-1)
  236.     if digito==9:
  237.         return romanos(10**potencia,potencia) + romanos(10**(potencia+1),potencia+1) + romanos(n,potencia-1)
  238.    
  239.  
  240. def main():
  241.     año=int(input("Ingrese el año a convertir (Con no más de 4 dígitos): "))
  242.     print("El año",año,"en números romanos es:", romanos(año,3))
  243.    
  244.  
  245. main()
Add Comment
Please, Sign In to add comment