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 17:33:51 (GMT)
committer Cristian García <cristian99garcia@gmail.com>2013-09-08 17:33:51 (GMT)
commit4f1e3c2a62d43dac9cfd98885633271e78d8b8ae (patch)
tree1fae3859e4914bdbdc7cab7a5d7e999fb7850512
parent8fb65b3cd3e0634e608961d98c6ed5fd94742cde (diff)
Ahora esta API al reducir suma bien las x
-rw-r--r--Calculadora.py45
-rw-r--r--Errores conocidos17
2 files changed, 35 insertions, 27 deletions
diff --git a/Calculadora.py b/Calculadora.py
index f5b2cd8..bf6208d 100644
--- a/Calculadora.py
+++ b/Calculadora.py
@@ -80,8 +80,8 @@ class Calculadora():
def resolver_ecuacion(self, ecuacion):
miembros = ecuacion.split('=')
- miembro1 = self.reducir_polinomios(miembros[0])[0]
- miembro2 = self.reducir_polinomios(miembros[1])[0]
+ miembro1 = self.reducir_polinomios(miembros[0])
+ miembro2 = self.reducir_polinomios(miembros[1])
miembro1_str = ''
miembro2_str = ''
@@ -120,7 +120,14 @@ class Calculadora():
Realizando la reducción de polinomios.
"""
+ if operacion[0] != '+' and operacion[0] != '-':
+ signo = '+'
+
+ else:
+ signo = '-'
+
operacion = self.limpiar_valor(operacion)
+ operacion = signo + operacion
diccionario = {}
if '+' in operacion:
@@ -166,32 +173,41 @@ class Calculadora():
diccionario[0].append(str(x))
+ if x == '-x' or x == '+x':
+ numero = lista.index(x)
+ lista.remove(x)
+ lista.insert(numero, x[0] + '1x')
+
for x in diccionario:
resultado = ''
lista = diccionario[x]
for valor in lista:
- if 'x' in valor and valor != '+x' and not 'e' in valor:
+ if 'x' in valor and not 'e' in valor:
numero = valor.split('x')[0]
- elif valor == '+x':
- lista.remove('+x')
- lista.append('+1x')
- numero = '+1'
+ if valor == 'x':
+ numero = lista.index(valor)
+ lista.remove(valor)
+ lista.insert(numero, '+x')
- elif valor == '-x':
- lista.remove('-x')
- lista.append('-1x')
- numero = '-1'
+ if valor == '-x' or valor == '+x':
+ numero = valor[0] + '1'
+ _numero = lista.index(valor)
+ lista.remove(valor)
+ lista.insert(_numero, numero + 'x')
- if not 'x' in valor and 'e' in valor:
+ elif not 'x' in valor and 'e' in valor:
numero = str(int(valor.split('e')[0] ** valor.split('e')[1]))
- if 'x' in valor and 'e' in valor:
+ elif 'x' in valor and 'e' in valor:
numero = valor.split('xe')[0]
- resultado += numero
+ elif not 'x' in valor and not 'e' in valor:
+ numero = valor
+
+ resultado += str(numero)
if x == 0:
res = str(eval(resultado))
@@ -224,7 +240,6 @@ class Calculadora():
if _resultado_final[0] == '+':
_resultado_final = _resultado_final[1:]
- print diccionario
return _resultado_final
#return diccionario
diff --git a/Errores conocidos b/Errores conocidos
index 446e3b5..6e69cb5 100644
--- a/Errores conocidos
+++ b/Errores conocidos
@@ -1,12 +1,5 @@
-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
+Al introducir x+x por ejemplo, la calculadora solo reconoce a una x,
+pero si en su lugar se introduce +x+x la calculadora reconoce las dos:
+
+Operacion: x+x
+1x