Advertisement
teslariu

cuad_error

Jul 29th, 2021
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.71 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """Script que calcula las raices de una ecuaciòn cuadràtica en el
  4. campo de los nros reales
  5.  
  6. raiz1,2 = (-b +/- raiz(delta)) / (2*a)
  7. delta = b**2 - 4*a*c
  8.  
  9. """
  10.  
  11. def ingresar_datos():
  12.     while True:
  13.         try:
  14.             a = float(input("Ingrese el término cuadrático a: "))
  15.         except ValueError:
  16.             print("Error. Debe ingresar un número")
  17.         else:
  18.             if a != 0:
  19.                 break
  20.             else:
  21.                 print("a debe ser diferente de cero")
  22.                        
  23.        
  24.        
  25.     while True:
  26.         try:
  27.             b = float(input("Ingrese el término lineal b: "))
  28.             break
  29.         except ValueError:
  30.             print("Error. Debe ingresar un número")
  31.     while True:
  32.         try:
  33.             c = float(input("Ingrese el término independiente c: "))
  34.             break
  35.         except ValueError:
  36.             print("Error. Debe ingresar un número")
  37.    
  38.     return [a,b,c]
  39.    
  40.    
  41. def guardar_datos(a,b,c,raices):
  42.     import datetime
  43.     try:
  44.         f = open("cuadratica.txt", "x")
  45.     except FileExistsError:
  46.         f = open("cuadratica.txt", "a")
  47.        
  48.     f.write(datetime.datetime.now().strftime("%d/%m/%y %H:%M:%S") + "\n")
  49.        
  50.     if isinstance(raices,list):
  51.         f.write("a:{} b:{} c:{} raiz1:{:.3f} raiz2:{:.3f}\n".format(a,b,c, raices[0],raices[1]))
  52.    
  53.     elif isinstance(raices, float):
  54.         f.write("a:{} b:{} c:{} raiz:{:.3f}\n".format(a,b,c, raices))
  55.        
  56.     else:
  57.         f.write("a:{} b:{} c:{} {}\n".format(a,b,c, raices))
  58.     f.close()
  59.  
  60.    
  61. def calcular_raices(a,b,c):
  62.     from math import sqrt
  63.     delta = b**2 - 4*a*c
  64.    
  65.      
  66.     if delta > 0:
  67.         raiz1 = (-1*b + sqrt(delta)) / (2*a)
  68.         raiz2 = (-1*b - sqrt(delta)) / (2*a)
  69.         return [raiz1, raiz2]
  70.     elif delta < 0:
  71.         return "No existen soluciones en el campo de los nros. reales"
  72.     else:
  73.         raiz = (-1*b) / (2*a)
  74.         return raiz
  75.    
  76.  
  77. def imprimir_raices(raices):
  78.     if isinstance(raices,list):
  79.         print("Existen dos soluciones: {:.3f} y {:.3f}".format(raices[0],raices[1]))
  80.    
  81.     elif isinstance(raices, float):
  82.         print("Existe una solución: {:.3f}".format(raices))
  83.        
  84.     else:
  85.         print(raices)
  86.    
  87.  
  88.  
  89.  
  90. print("Calculo de raíces de una ec.cuadrática")
  91. print("--------------------------------------")
  92.  
  93. while True:
  94.     a,b,c = ingresar_datos()
  95.     raices = calcular_raices(a,b,c)
  96.     imprimir_raices(raices)
  97.     guardar_datos(a,b,c,raices)
  98.    
  99.     opcion = input("\nPresione cualquier tecla para continuar ('1' para salir): ")
  100.     if opcion == "1":
  101.         print("Adios...")
  102.         break
  103.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement