Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- """
- Script que calcula las raíces de una ecuación cuadrática en el campo de
- los nros. reales
- """
- import datetime # para agregar fecha y hora
- def ingresar_datos():
- a = float(input("Ingrese el término cuadrático (a): "))
- b = float(input("Ingrese el término lineal (b): "))
- c = float(input("Ingrese el término independiente (c): "))
- return [a,b,c]
- def calcular_raices(a,b,c):
- from math import sqrt
- delta = b**2 - 4*a*c
- if not delta: # if delta == 0:
- raiz = -1*b / (2*a)
- return raiz
- elif delta > 0:
- raiz1 = (-1*b + sqrt(delta)) / (2*a)
- raiz2 = (-1*b - sqrt(delta)) / (2*a)
- return [raiz1, raiz2]
- else:
- return "No hay soluciones reales"
- def imprimir(raices):
- if isinstance(raices, float):
- print("Existe una solución: {:.2f}".format(raices))
- elif isinstance(raices, list):
- print("Existen dos soluciones: {:.2f} y {:.2f}".format(raices[0], raices[1]))
- else:
- print(raices)
- def grabar_datos(a,b,c,raices):
- """Grabo fecha, hora, parámetros y raíces"""
- f.write(datetime.datetime.now().strftime("%d/%m/%y %H:%M:%S"))
- f.write("\n--------------------------------------------------------\n")
- f.write(f"a: {a}\n")
- f.write(f"b: {b}\n")
- f.write(f"c: {c}\n")
- if isinstance(raices, float):
- f.write("Existe una solución: {:.2f}".format(raices) )
- elif isinstance(raices, list):
- f.write("Existen dos soluciones: {:.2f} y {:.2f}".format(raices[0], raices[1]))
- else:
- f.write(raices)
- f.write("\n\n")
- ##############################################################
- f = open("cuadratica.txt","a")
- print("Cálculo de las raíces de una ecuación cuadrática")
- while True:
- print()
- a,b,c = ingresar_datos()
- raices = calcular_raices(a,b,c)
- grabar_datos(a,b,c,raices)
- imprimir(raices)
- opcion = input("Presione 1 para salir u otra tecla para continuar: ")
- if opcion == "1":
- print("Cerrando archivos...")
- f.close()
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement