Skip to content

Instantly share code, notes, and snippets.

@Ismael-VC
Forked from anonymous/cuadratica
Created December 23, 2014 02:26
Show Gist options
  • Save Ismael-VC/58a5be628b9f3f447265 to your computer and use it in GitHub Desktop.
Save Ismael-VC/58a5be628b9f3f447265 to your computer and use it in GitHub Desktop.
#usr/bin/python
#coding: utf-8
#Cdt.py
from math import *
#resolveremos una ecuacion cuadratica de la forma ax^2+bx+c=0
class Cdt(object):
def __init__(self, cc, cx, ti): #cc=a, cx=b y ti=c
self.a1=cc
self.b1=cx
self.c1=ti
self.solucion()
def solucion(self):
a=self.a1
b=self.b1
c=self.c1
lista=[]
if a>0:
if ((b**2)-4*a*c)>0:
x1=(-b+sqrt((b**2)-4*a*c))/(2*a)
x2=(-b-sqrt((b**2)-4*a*c))/(2*a)
lista.append(x1)
lista.append(x2)
return lista
elif ((b**2)-4*a*c)<0:
r=-b/(2*a)
i1=sqrt(4*a*c-(b**2))
i2=-i1
lista.append(r)
lista.append(i1)
lista.append(i2)
return lista
elif ((b**2)-4*a*c)==0:
x1=-b/(2*a)
lista.append(x1)
return lista
elif a<0:
return Cdt(-a,-b,-c)
elif a==0:
if b!=0:
if c!=0:
x1=-c/b
lista.append(x1)
return lista
else:
x1=0
lista.append(x1)
return lista
else:
if c==0:
x1=0
lista.append(x1)
return lista
a2=input("ingrese el coeficiente de x^2: ")
b2=input("ingrese el coeficiente de x: ")
c2=input("ingrese el termino independiente: ")
x=Cdt(a2,b2,c2)
#x.solucion(a2,b2,c2)
if a2==0:
if b2!=0:
if c2!=0 and c2>0:
print "la solucion de la ecuacion "+str(b2)+"x+"+str(c2)+"=0 es:"
print "x="+str(x[0])
elif c2!=0 and c2<0:
print "la solucion de la ecuacion "+str(b2)+"x"+str(c2)+"=0 es:"
print "x="+str(x[0])
elif b2==0:
if c2==0:
print "x="+str(x[0])
else:
print "estas comparando un termino real con un cero"
else:
if ((b2**2)-4*a2*c2)>0:
if b2!=0 and b2>0:
if c2!=0 and c2>0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=(x+"+str((-1*x[0]))+")(x+"+str((-1*x[1]))+")=0"
print "la solucion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])+" y x2="+str(x[1])
elif c2!=0 and c2<0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=(x"+str((-1*x[0]))+")(x+"+str((-1*x[1]))+")=0"
print "la solucion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])+" y x2="+str(x[1])
elif c2==0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x=0 es:"
print str(a2)+"x^2+"+str(b2)+"x=x(x+"+str((-1*x[1]))+")=0"
print "la solucion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x=0 es:"
print "x1="+str(x[0])+" y x2="+str(x[1])
else:
print "ingresa un termino independiente real."
elif b2!=0 and b2<0:
if c2!=0 and c2>0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=(x+"+str((-1*x[0]))+")(x+"+str((-1*x[1]))+")=0"
print "la solucion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])+" y x2="+str(x[1])
elif c2!=0 and c2<0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=(x"+str((-1*x[0]))+")(x+"+str((-1*x[1]))+")=0"
print "la solucion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])+" y x2="+str(x[1])
elif c2==0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x=0 es:"
print str(a2)+"x^2+"+str(b2)+"x=x(x+"+str((-1*x[1]))+")=0"
print "la solucion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x=0 es:"
print "x1="+str(x[0])+" y x2="+str(x[1])
else:
print "ingresa un termino independiente real."
elif b2==0:
if c2!=0 and c2<0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2"+str(c2)+"=0 es:"
print str(a2)+"x^2"+str(c2)+"=(x"+str((-1*x[0]))+")(x+"+str((-1*x[1]))+")=0"
print "la solucion de la ecuacion "+str(a2)+"x^2"+str(c2)+"=0 es:"
print "x1="+str(x[0])+" y x2="+str(x[1])
else:
print "ingresa un termino independiente real."
elif ((b2**2)-4*a2*c2)<0:
if b2!=0 and b2>0:
if c2!=0 and c2>0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=(x+"+str((-1*x[0]))+str((-1*x[1]))+"i)(x+"+str((-1*x[0]))+"+"+str((-1*x[2]))+"i)=0"
print "la solucion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])+"+"+str(x[1])+"i y x2="+str(x[0])+str(x[2])+"i"
else:
print "ingresa un termino independiente real."
elif b2!=0 and b2<0:
if c2!=0 and c2>0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=0 es:"
print str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=(x"+str((-1*x[0]))+str((-1*x[1]))+"i)(x"+str((-1*x[0]))+"+"+str((-1*x[2]))+"i)=0"
print "la solucion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])+"+"+str(x[1])+"i y x2="+str(x[0])+str(x[2])+"i"
else:
print "ingresa un termino independiente real."
elif b2==0:
if c2!=0 and c2>0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2+"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(c2)+"=(x"+str((-1*x[1]))+"i)(x+"+str((-1*x[2]))+"i)=0"
print "la solucion de la ecuacion "+str(a2)+"x^2+"+str(c2)+"=0 es:"
print "x1="+str(x[1])+"i y x2="+str(x[2])+"i"
else:
print "ingresa un termino independiente real."
elif ((b2**2)-4*a2*c2)==0:
if b2!=0 and b2>0:
if c2!=0 and c2>0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=(x+"+str((-1*x[0]))+")^2=0"
print "la solucion de la ecuacion "+str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])
else:
print "ingresa un termino independiente real."
elif b2!=0 and b2<0:
if c2!=0 and c2>0:
print "la factorizacion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=0 es:"
print str(a2)+"x^2+"+str(b2)+"x+"+str(c2)+"=(x"+str((-1*x[0]))+")^2=0"
print "la solucion de la ecuacion "+str(a2)+"x^2"+str(b2)+"x+"+str(c2)+"=0 es:"
print "x1="+str(x[0])
else:
print "ingresa un termino independiente real."
elif b2==0:
if c2==0:
print "la solucion de la ecuacion "+str(a2)+"x^2=0 es:"
print "x1="+str(x[0])
else:
print "ingresa un termino independiente real."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment