Advertisement
teslariu

cuadr

Oct 18th, 2021
89
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. """
  5. Script que calcula las raices de una ecuacion cuadratica y las guarda
  6. en un archivo
  7. Ej:
  8. >>> Ingrese el término cuadrático (a): 1
  9. >>> Ingrese el término lineal (b): 1
  10. >>> Ingrese el término independiente (c): 1
  11. >>> No existen raíces en el campo de los nros reales
  12. >>> Datos guardados
  13. """
  14.  
  15. import datetime # para agregar fecha y hora al registro
  16.  
  17. def ingresar_datos():
  18.     a = float(input("Ingrese el término cuadrático (a): "))
  19.     b = float(input("Ingrese el término lineal (b): "))
  20.     c = float(input("Ingrese el término independiente (c): "))
  21.     return [a,b,c]
  22.    
  23.    
  24. def calcular_raices(a,b,c):
  25.     from math import sqrt
  26.     delta = b**2 - 4*a*c
  27.    
  28.     if not delta:
  29.         raiz = -1*b / (2*a)
  30.         return raiz
  31.        
  32.     elif delta > 0:
  33.         raiz1 = (-1*b + sqrt(delta)) / (2*a)
  34.         raiz2 = (-1*b - sqrt(delta)) / (2*a)
  35.         return [raiz1, raiz2]
  36.        
  37.     else:
  38.         return "No existen raíces en el campo de los nros reales"
  39.        
  40.    
  41. def imprimir(raices):
  42.     if isinstance(raices,float):
  43.         print("Existe una raíz: {:.2f}".format(raices))
  44.     elif isinstance(raices,list):
  45.         print("Existe dos raíces: {:.2f} y {:.2f}".format(raices[0],raices[1]))
  46.     else:
  47.         print(raices)
  48.        
  49.        
  50. def grabar_datos(a,b,c,raices):
  51.     """
  52.     Guarda fecha y hora junto a los parámetros de la parábola a,b,c
  53.     y sus raíces
  54.     """
  55.     f.write(datetime.datetime.now().strftime('%d/%m/%y %H:%M:%S') + '\n')
  56.     f.write("Parámetros de la parábola:\n")
  57.     f.write(f"Término cuadrático (a): {a}\n")
  58.     f.write(f"Término lineal (b): {b}\n") 
  59.     f.write(f"Término independiente (c): {c}\n")
  60.     if isinstance(raices,float):
  61.         f.write("Existe una raíz: {:.2f}\n\n".format(raices))
  62.     elif isinstance(raices,list):
  63.         f.write("Existe dos raíces: {:.2f} y {:.2f}\n\n".format(raices[0],raices[1]))
  64.     else:
  65.         f.write(raices + '\n\n')
  66.     return "Datos guardados"   
  67.        
  68.  
  69.  
  70.  
  71.  
  72. ##########################################
  73. f = open("cuadratica.txt","a")
  74. print("\nScript que calcula las raices de una ecuacion cuadratica")
  75. while True:
  76.    
  77.     a,b,c = ingresar_datos()
  78.     raices = calcular_raices(a,b,c)
  79.     imprimir(raices)
  80.     print(grabar_datos(a,b,c,raices))
  81.    
  82.     opcion = input("Presione 1 para salir (o cualquier tecla para continuar): ")
  83.     if opcion == "1":
  84.         print("Gracias por usar este programa...")
  85.         f.close()
  86.         break
Advertisement
RAW Paste Data Copied
Advertisement