Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCristian García <cristian99garcia@gmail.com>2013-09-08 12:57:33 (GMT)
committer Cristian García <cristian99garcia@gmail.com>2013-09-08 12:57:33 (GMT)
commit8fb65b3cd3e0634e608961d98c6ed5fd94742cde (patch)
treeb6c44fadfd84df50fb77e400cb0cf9cb49f5fc1b
parent0a57eb42473cac6adb040c0428b511342f823c13 (diff)
Arreglando unos cuantos bugs
-rw-r--r--Calculadora.py104
-rw-r--r--Errores conocidos12
2 files changed, 77 insertions, 39 deletions
diff --git a/Calculadora.py b/Calculadora.py
index 4f59e15..f5b2cd8 100644
--- a/Calculadora.py
+++ b/Calculadora.py
@@ -92,7 +92,7 @@ class Calculadora():
for x in miembro2:
for x2 in miembro2[x]:
miembro2_str += x2
-
+
ecuacion = miembro1_str + '=' + miembro2_str
return ecuacion
@@ -119,89 +119,115 @@ class Calculadora():
"""
Realizando la reducción de polinomios.
"""
-
+
operacion = self.limpiar_valor(operacion)
diccionario = {}
- resultado = []
if '+' in operacion:
operacion = operacion.replace('+', ' +')
if '-' in operacion:
operacion = operacion.replace('-', ' -')
-
+
lista = operacion.split(' ')
lista = self.limpiar_valor(lista)
- resultado = 0
for x in lista:
- if x and x[0] != '-' and x[0] != '+':
- x = '+' + x
-
+ if x[0] != '-' and x[0] != '+':
+ _numero = lista.index(x)
+ lista.remove(x)
+ lista.insert(_numero, '+' + x)
+
if 'x' in x and not 'e' in x:
if not diccionario.get(1):
diccionario[1] = []
-
+
diccionario[1].append(x)
-
+
elif 'x' in x and 'e' in x:
- numero = x.split('e')[1]
+ numero = str(int(x.split('e')[1]))
+
if not diccionario.get(numero):
diccionario[numero] = []
-
+
diccionario[numero].append(x)
elif not 'x' in x and 'e' in x:
- x = int(x.split('e')[0]) ** int(x.split('e'))[1]
-
+ x = str(int(x.split('e')[0]) ** int(x.split('e')[1]))
+
if not diccionario.get(0):
diccionario[0] = []
-
+
diccionario[0].append(x)
else: # not 'x' in x and not 'e' in x:
if not diccionario.get(0):
diccionario[0] = []
-
- diccionario[0].append(x)
-
+
+ diccionario[0].append(str(x))
+
for x in diccionario:
resultado = ''
lista = diccionario[x]
-
+
for valor in lista:
- if 'x' in valor:
+ if 'x' in valor and valor != '+x' and not 'e' in valor:
numero = valor.split('x')[0]
- if not 'x' in valor:
- if 'e' in valor:
- numero = x.split('e')
-
- else:
- numero = x
+ elif valor == '+x':
+ lista.remove('+x')
+ lista.append('+1x')
+ numero = '+1'
- print resultado, numero
- if type(numero) == int and type(resultado) == str:
- resultado += str(numero)
+ elif valor == '-x':
+ lista.remove('-x')
+ lista.append('-1x')
+ numero = '-1'
- resultado += numero
+ if not 'x' in valor and 'e' in valor:
+ numero = str(int(valor.split('e')[0] ** valor.split('e')[1]))
- if resultado == '0x':
- resultado = '0'
+ if 'x' in valor and 'e' in valor:
+ numero = valor.split('xe')[0]
- print resultado
+ resultado += numero
if x == 0:
- print eval(resultado)
+ res = str(eval(resultado))
elif x == 1:
- print str(eval(resultado)) + 'x'
-
- else:
- print str(eval(resultado)) + 'xe' + str(x)
+ res = str(eval(resultado)) + 'x'
+
+ elif x > 1 or x < 0:
+ res = str(eval(resultado)) + 'xe' + str(x)
+
+ diccionario[x] = [res]
+
+ _lista = []
+ _resultado_final = ''
+
+ for x in diccionario:
+ _lista.append(x)
+
+ _lista.sort()
+ _lista.reverse()
+
+ for x in _lista:
+ lista = diccionario[x]
+ for valor in lista:
+ if valor[0] != '+' and valor[0] != '-':
+ valor = '+' + valor
+
+ _resultado_final += valor
+
+ if _resultado_final[0] == '+':
+ _resultado_final = _resultado_final[1:]
+
+ print diccionario
+ return _resultado_final
- return diccionario
+ #return diccionario
if __name__ == '__main__':
cerrar = False
diff --git a/Errores conocidos b/Errores conocidos
new file mode 100644
index 0000000..446e3b5
--- /dev/null
+++ b/Errores conocidos
@@ -0,0 +1,12 @@
+Operacion: -x
+Traceback (most recent call last):
+ File "Calculadora.py", line 229, in <module>
+ Calculadora(cuenta)
+ File "Calculadora.py", line 66, in __init__
+ print self.reducir_polinomios(operacion)
+ File "Calculadora.py", line 189, in reducir_polinomios
+ res = str(eval(resultado)) + 'x'
+ File "<string>", line 1
+ -
+ ^
+SyntaxError: unexpected EOF while parsing