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 ec. cuadrática en el campo de los
- nros. reales.
- Ej:
- >>> Ingrese el tèrmino cuadrático (a): 1
- >>> Ingrese el tèrmino lineal (b): 10
- >>> Ingrese el tèrmino independiente (c): 5
- >>> No existen raìces en el campo de los nros reales
- """
- import datetime # para guardar fecha y hora
- ######## funciones ###############
- def ingresar_numero(mensaje):
- """ Función que retorna un nro ingresado por el usario. Si
- ingresa una cadena no convertible a entero o float, lo indica
- y no sale de un bucle hasta el ingreso correcto"""
- while True:
- try:
- numero = float(input(mensaje))
- except ValueError:
- print("Error. Debe ingresar un nro.")
- else:
- break
- return numero
- def calcular_raices(a,b,c):
- from math import sqrt
- delta = b**2 -4*a*c
- 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 existen raìces en el campo de los nros reales"
- def grabar_datos(a,b,c,raices):
- """
- Guardo en el archivo 'cuadratica.txt' fecha, hora, parámetros y
- raíces de cada cálculo efectuado
- """
- try:
- f = open("cuadratica.txt", "x")
- except FileExistsError:
- f = open("cuadratica.txt", "a")
- f.write(datetime.datetime.now().strftime('%d/%m/%y %H:%M:%S') + '\n')
- f.write("Parámetros de la parábola:\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) + "\n\n")
- elif isinstance(raices, list):
- f.write("Existen dos soluciones: {:.2f} y {:.2f}".format(raices[0],raices[1]) + "\n\n")
- else:
- f.write(raices + "\n\n")
- f.close()
- 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)
- ###################################
- print("Programa que calcula las raíces de una parábola")
- while True:
- while True:
- a = ingresar_numero("Ingrese el tèrmino cuadrático (a): ")
- if a != 0:
- break
- else:
- print("a debe ser no nulo")
- b = ingresar_numero("Ingrese el tèrmino lineal (b): ")
- c = ingresar_numero("Ingrese el tèrmino independiente (c): ")
- raices = calcular_raices(a,b,c)
- grabar_datos(a,b,c,raices)
- imprimir(raices)
- opcion = input("Presione cualquier tecla o '1' para salir: ")
- if opcion == "1":
- print("Gracias por utilizar este programa...")
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement