#!/usr/bin/env python
#file parabola.py

import sys
import math

def vertice (a,b,c):
    if (a==0):
        print( )
        print("Il Vertice non può essere calcolato perchè a = 0 e la parabola non esiste ")
        print( )
    else:
        x1 = -b/(2*a)
        x2 = -(b*b-4*a*c)/(4*a)
        print ("Il Vertice ha le coordinate -->  V = ","%.3f" %x1,"  ","%.3f" %x2)

def fuoco (a,b,c):
    if (a==0):
        print("Il Fuoco non può essere calcolato perchè a = 0 e la parabola non esiste" )
        print ( )
    else:
        x1 = -b/(2*a)
        x2 = (1-(b*b-4*a*c))/(4*a)
        print ("Il Fuoco ha le coordinate ---->  F = ","%.3f" %x1,"  ","%.3f" %x2)

def delta (a,b,c):
    if ((b%2)==0):
        d = (b/2*b/2) - (a * c)
    else:
        d = (b*b) - (4 * a * c)
    return (d)

def controllo (a,b,c,d):
    if (a!=0):
        if (d>0):
            if ((b%2)==0):
                soluzione1 = (-b/2.0 - math.sqrt(d))/(a)
                soluzione2 = (-b/2.0 + math.sqrt(d))/(a)
            else:
                soluzione1 = (-b - math.sqrt(d))/(2.0*a)
                soluzione2 = (-b + math.sqrt(d))/(2.0*a)
            print('x1 ',"%.3f" %soluzione1)
            print('x2 ',"%.3f" %soluzione2)
        if (d==0):
            if ((b%2)==0):
                soluzione1=soluzione2=(-b/2+math.sqrt(d))/a
            else:
                soluzione1=soluzione2=(-b+math.sqrt(d))/2*a
            print("le due soluzioni sono coincidenti perchè delta è uguale a zero ","%.3f" %soluzione1)
        if (d<0):
            print("la parabola non ha nessun punto in comune con l'asse delle x ")
    else:
        if (b!=0):
            soluzione1=-c/b
            print("l'equazione è una retta, x = ","%.3f" %soluzione1)
        else:
            print("è l'equazione di una retta parallela all'asse delle x ")
    
#Programma Principale
print ( )
print("Data una parabola y=ax^2+bx+c definire il vertice, fuoco e intersezioni con gli assi ")
print ( )
print ( )
a = float (input ("Dammi il valore di a "))
b = float (input ("Dammi il valore di b "))
c = float (input ("Dammi il valore di c "))
print ( )
vertice (a,b,c)
fuoco (a,b,c)
d = delta (a,b,c)
print ( )
print ('Delta è -----> ',"%.3f" %d)
print ( )
controllo (a,b,c,d)