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(tipo):
- while True:
- try:
- numero = float(input(f"Ingrese el {tipo}: "))
- except ValueError:
- print("No has ingresado un número")
- else:
- if tipo == "término cuadrático (a)" and not numero:
- print("Debes ingresar un número distinto de cero")
- else:
- return numero
- 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")
- ##############################################################
- # si el archivo cuadratica.txt no existe lo creo
- try:
- f = open("cuadratica.txt", "x")
- except FileExistsError:
- f = open("cuadratica.txt","a")
- print("Cálculo de las raíces de una ecuación cuadrática")
- while True:
- print()
- a = ingresar_datos("término cuadrático (a)")
- b = ingresar_datos("término lineal (b)")
- c = ingresar_datos("término independiente (c)")
- 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