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 raices de una ecuación cuadratica y almacena
- los resultados en un archivo
- >>> Ingrese el término cuadratico: 1
- >>> Ingrese el término lineal: 10
- >>> Ingrese el término independiente: 5
- >>> No existen raíces reales
- """
- import datetime
- from math import sqrt
- def ingresar(termino="numérico"):
- while True:
- try:
- dato = float(input(f"Ingrese el término {termino}: "))
- except ValueError:
- print("Debe ingresar un número")
- else:
- if termino == "cuadratico" and not dato:
- print("El término cuadrático debe ser distinto de cero")
- else:
- return dato
- def calcular_raices(a,b,c):
- delta = b**2 - 4*a*c
- if not delta:
- 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 existen raíces reales"
- def imprimir(raices):
- if isinstance(raices,float):
- print(f"Existe una única raíz real: {raices:.2f}")
- elif isinstance(raices,list):
- print(f"Existen dos raíces reales: {raices[0]:.2f} y {raices[1]:.2f}")
- else:
- print(raices)
- def grabar_datos(a,b,c,raices):
- """Guardo los datos en un archivo de texto"""
- f.write(datetime.datetime.now().strftime("%d/%m/%y %H:%M:%S"))
- f.write(f"""
- Parámetros de la parábola:
- -------------------------
- Término cuadrático (a): {a}
- Término lineal (b): {b}
- Término independiente (c): {c}
- Raíces:
- ------
- """)
- if isinstance(raices,float):
- f.write(f"Existe una única raíz real: {raices:.2f}\n\n")
- elif isinstance(raices,list):
- f.write(f"Existen dos raíces reales: {raices[0]:.2f} y {raices[1]:.2f}\n\n")
- else:
- f.write(raices+"\n\n")
- if __name__ == '__main__':
- # abro el archivo, si no existe lo creo
- try:
- f = open("cuadratica.txt","x")
- except FileExistsError:
- f = open("cuadratica.txt", "a")
- # ejecuto el programa
- while True:
- print("\nCálculo de las raíces reales de una ec. cuadrática")
- a = ingresar("cuadratico")
- b = ingresar("lineal")
- c = ingresar("independiente")
- raices = calcular_raices(a,b,c)
- grabar_datos(a,b,c,raices)
- imprimir(raices)
- opcion = input("Presione cualquier tecla para continuar ('1' para salir): ")
- if opcion == "1":
- print("Gracias por usar este programa...")
- f.close()
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement