Advertisement
teslariu

func-open

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