teslariu

cuadratica excep

Oct 9th, 2021
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.54 KB | None | 0 0
  1. """
  2. Script que calcula las raíces de una ecuación cuadrática en el campo
  3. de los nros reales
  4. Ej:
  5. >>> Ingrese el tèrmino cuadrático: 1
  6. >>> Ingrese el término lineal: 10
  7. >>> Ingrese el término independiente: 5
  8. >>> No existen raíces en el campo de los nros reales
  9. """
  10. import datetime
  11.  
  12.  
  13.  
  14. def ingresar_datos(n):
  15.     if n  == "a":
  16.         cadena = f"Ingrese el término cuadrático {n}: "
  17.     elif n == "b":
  18.         cadena = f"Ingrese el término lineal {n}: "
  19.     else:
  20.         cadena = f"Ingrese el término independiente {n}: "
  21.        
  22.     while True:
  23.         try:
  24.             numero = float(input(cadena))
  25.         except ValueError:
  26.             print("Error, debe ingresar un número: ")
  27.         else:
  28.             if n=="b" or "n"=="c":
  29.                 return numero
  30.             elif numero:
  31.                 return numero
  32.             else:
  33.                 print("a debe ser diferente de cero")
  34.            
  35.  
  36.  
  37.  
  38. def calcular_raices(a,b,c):
  39.     from math import sqrt
  40.     delta = b**2 - 4*a*c
  41.  
  42.     if not delta:
  43.         raices = -1*b / (2*a)
  44.         return raices
  45.     elif delta > 0:
  46.         raiz1 = (-1*b + sqrt(delta)) / (2*a)
  47.         raiz2 = (-1*b - sqrt(delta)) / (2*a)
  48.         return [raiz1, raiz2]
  49.     else:
  50.         return "No existen raices en el campo de los nros. reales"
  51.  
  52.  
  53. def grabar_datos(a,b,c,raices):
  54.     # escribo fecha y hora:
  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: {:.3f}\n".format(raices))
  62.     elif isinstance(raices, list):
  63.         f.write("Existen dos raíces: {:.3f} y {:.3f}\n".format(raices[0], raices[1]))
  64.     else:
  65.         f.write(raices + "\n")
  66.     f.write(30*"-"+"\n")
  67.    
  68.    
  69.    
  70.  
  71. def imprimir(raices):
  72.     if isinstance(raices, float):
  73.         print("Existe una raíz: {:.3f}".format(raices))
  74.     elif isinstance(raices, list):
  75.         print("Existen dos raíces: {:.3f} y {:.3f}".format(raices[0], raices[1]))
  76.     else:
  77.         print(raices)
  78.  
  79.  
  80. ###  main  ##############
  81. print("Script que calcula raíces de una ec.cuadrática en R")
  82.  
  83. while True:
  84.     a = ingresar_datos("a")
  85.     b = ingresar_datos("b")
  86.     c = ingresar_datos("c")
  87.    
  88.     raices = calcular_raices(a,b,c)
  89.     f = open("cuadratica.txt", "a") # si el archivo no existe, lo crea
  90.     grabar_datos(a,b,c,raices)
  91.     imprimir(raices)
  92.  
  93.     opcion = input("\nPresione cualquier tecla para continuar(o '1' para salir): ")
  94.     if opcion == "1":
  95.         print("Gracias por usar este programa...")
  96.         f.close()
  97.         break
  98.  
Advertisement
Add Comment
Please, Sign In to add comment