teslariu

sq

Aug 23rd, 2021
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.28 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. """
  5. Script que calcula las raices de una ec. cuadrática en el campo de los
  6. nros. reales.
  7. Ej:
  8. >>> Ingrese el tèrmino cuadrático (a): 1
  9. >>> Ingrese el tèrmino lineal (b): 10
  10. >>> Ingrese el tèrmino independiente (c): 5
  11. >>> No existen raìces en el campo de los nros reales
  12. """
  13.  
  14. import datetime  # para guardar fecha y hora
  15.  
  16. ########  funciones ###############
  17.  
  18. def ingresar_datos():
  19.     """ Función que retorna los parámetros ingresados
  20.     por el usario"""
  21.     a = float(input("Ingrese el tèrmino cuadrático (a): "))
  22.     b = float(input("Ingrese el tèrmino lineal (b): "))
  23.     c = float(input("Ingrese el tèrmino independiente (c): "))
  24.     return [a,b,c]
  25.    
  26.    
  27. def calcular_raices(a,b,c):
  28.     from math import sqrt
  29.     delta = b**2 -4*a*c
  30.    
  31.     if delta == 0:
  32.         raiz = -1*b / (2*a)
  33.         return raiz
  34.    
  35.     elif delta > 0:
  36.         raiz1 = (-1*b + sqrt(delta)) / (2*a)
  37.         raiz2 = (-1*b - sqrt(delta)) / (2*a)
  38.         return [raiz1, raiz2]
  39.        
  40.     else:
  41.         return "No existen raìces en el campo de los nros reales"
  42.    
  43.    
  44.  
  45. def grabar_datos(a,b,c,raices):
  46.     """
  47.     Guardo en el archivo 'cuadratica.txt' fecha, hora, parámetros y
  48.     raíces de cada cálculo efectuado
  49.     """
  50.     f = open("cuadratica.txt", "a")
  51.     f.write(datetime.datetime.now().strftime('%d/%m/%y %H:%M:%S') + '\n')
  52.     f.write("Parámetros de la parábola:\n")
  53.     f.write(f"a: {a}\n")
  54.     f.write(f"b: {b}\n")
  55.     f.write(f"c: {c}\n")
  56.     if isinstance(raices, float):
  57.         f.write("Existe una solución: {:.2f}".format(raices) + "\n")
  58.     elif isinstance(raices, list):
  59.         f.write("Existen dos soluciones: {:.2f} y {:.2f}".format(raices[0],raices[1]) + "\n")
  60.     else:
  61.         f.write(raices + "\n")
  62.     f.close()
  63.    
  64.    
  65.    
  66.  
  67.    
  68. def imprimir(raices):
  69.     if isinstance(raices, float):
  70.         print("Existe una solución: {:.2f}".format(raices))
  71.     elif isinstance(raices, list):
  72.         print("Existen dos soluciones: {:.2f} y {:.2f}".format(raices[0],raices[1]))
  73.     else:
  74.         print(raices)
  75.    
  76.  
  77.  
  78. ###################################
  79.  
  80. print("Programa que calcula las raíces de una parábola")
  81.  
  82. while True:
  83.    
  84.     a,b,c = ingresar_datos()
  85.     raices = calcular_raices(a,b,c)
  86.     grabar_datos(a,b,c,raices)
  87.     imprimir(raices)
  88.    
  89.     opcion = input("Presione cualquier tecla o '1' para salir: ")
  90.     if opcion == "1":
  91.         print("Gracias por utilizar este programa...")
  92.         break
Advertisement
Add Comment
Please, Sign In to add comment