Advertisement
teslariu

cuadratica

Nov 6th, 2021
129
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 raíces de una ecuación cuadrática en el campo
  6. de los nros reales
  7. Ej:
  8. >>> Ingrese el término cuadrático a: 1
  9. >>> Ingrese el término lineal b: 0
  10. >>> Ingrese el término independiente c: 36
  11. >>> No existen raíces
  12. """
  13.  
  14. from math import sqrt
  15. from datetime import datetime
  16.  
  17.  
  18. def ingresar_datos():
  19.     a = float(input("Ingrese el término cuadrático a: "))
  20.     b = float(input("Ingrese el término lineal b: "))
  21.     c = float(input("Ingrese el término independiente c: "))
  22.     return [a,b,c]
  23.  
  24.  
  25. def calcular_raices(a,b,c):
  26.     delta = b**2 - 4*a*c
  27.    
  28.     if delta > 0:
  29.         raiz1 = (-1*b + sqrt(delta)) / (2*a)
  30.         raiz2 = (-1*b - sqrt(delta)) / (2*a)
  31.         return [raiz1, raiz2]
  32.    
  33.     elif delta < 0:
  34.         return "No existen soluciones en el campo real"
  35.        
  36.     else:
  37.         raiz = -1*b / (2*a)
  38.         return raiz
  39.  
  40.    
  41. def imprimir(raices):
  42.     if isinstance(raices, float):
  43.         print("Existe una raíz: {:.2f}".format(raices))
  44.        
  45.     elif isinstance(raices, list):
  46.         print("Existen dos raíces: {:.2f} y {:.2f}".format(raices[0], raices[1]))
  47.    
  48.     else:
  49.         print(raices)
  50.  
  51.    
  52. def grabar_datos(a,b,c,raices):
  53.     f = open("cuadratica.txt", "a")
  54.     # escribo fecha y hora del cálculo:
  55.     f.write(datetime.now().strftime('%d/%m/%y %H:%M:%S'))
  56.     f.write("\nPará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.    
  61.     if isinstance(raices, float):
  62.         f.write("Existe una raíz: {:.2f}\n".format(raices))
  63.        
  64.     elif isinstance(raices, list):
  65.         f.write("Existen dos raíces: {:.2f} y {:.2f}\n".format(raices[0], raices[1]))
  66.    
  67.     else:
  68.         f.write(raices + "\n")
  69.     f.write("------------------------------------------------\n")
  70.    
  71.    
  72.  
  73.  
  74. #################################################
  75.  
  76. while True:
  77.     print("\nCálculo de raíces de una ecuación cuadrática")
  78.     a,b,c = ingresar_datos()
  79.     raices = calcular_raices(a,b,c)
  80.     imprimir(raices)
  81.     grabar_datos(a,b,c,raices)
  82.    
  83.     opcion = input("\nPresione cualquier tecla para continuar ('1' para salir): ")
  84.     if opcion == "1":
  85.         print("Gracias por usar este programa....")
  86.         f.close()
  87.         break
Advertisement
RAW Paste Data Copied
Advertisement