Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Astigarraga <poteland@gmail.com>2010-04-09 10:07:29 (GMT)
committer Pablo Astigarraga <poteland@gmail.com>2010-04-09 10:07:29 (GMT)
commitacf4e264476955f7faca265fa6f6ceed7d8190d2 (patch)
treea9891eb2d1166014ad77b0972046a96aa19336bc
parent808906e9af681573f19ddcc9247b7548ddb1290f (diff)
Fixed addition bugpote
-rw-r--r--fracciones.activity/fractionlogic.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/fracciones.activity/fractionlogic.py b/fracciones.activity/fractionlogic.py
index 86c5a3c..1b78578 100644
--- a/fracciones.activity/fractionlogic.py
+++ b/fracciones.activity/fractionlogic.py
@@ -10,9 +10,9 @@ DENOMINATOR_MAX = 10
class Fraction(object):
- def __init__(self):
- self.numerator = None
- self.denominator = None
+ def __init__(self,numerator=None,denominator=None):
+ self.numerator = numerator
+ self.denominator = denominator
def __eq__(self,other_fraction):
if (self.numerator * other_fraction.denominator == self.denominator * other_fraction.numerator) and type(other_fraction) is Fraction:
@@ -85,7 +85,7 @@ class FractionLogic(object):
def calculate(fraction_1,fraction_2,operator,reduced_output=False):
"""Calls appropiate method depending on the operator received as an argument"""
"""Requires 2 fraction objects and a one character string with the operator (+,-,*,/)"""
- result = ( )
+ result = Fraction()
if operator == "+" :
result = add(fraction_1,fraction_2)
elif operator == "-" :
@@ -94,7 +94,7 @@ def calculate(fraction_1,fraction_2,operator,reduced_output=False):
result = multiply(fraction_1,fraction_2)
elif operator == "/" :
result = divide(fraction_1,fraction_2)
- if reduced_output = False:
+ if reduced_output == False:
return result
else:
return reduce(result)
@@ -106,13 +106,13 @@ def add(fraction_1,fraction_2):
result.denominator = fraction_1.denominator
return result
else:
- mcm = lcm(fraction_1.denominator,fraction_2.numerator)
+ mcm = lcm(fraction_1.denominator,fraction_2.denominator)
result.denominator = mcm
- alt_fraction_1 = fraction_1.numerator * (fraction_1.denominator / mcm)
- alt_fraction_2 = fraction_2.numerator * (fraction_2.denominator / mcm)
- result.numerator = alt_fraction_1 + alt_fraction_2
+ alt_1 = fraction_1.numerator * (result.denominator / fraction_1.denominator)
+ alt_2 = fraction_2.numerator * (result.denominator / fraction_2.denominator)
+ result.numerator = alt_1 + alt_2
return result
-
+
def substract(fraction_1,fraction_2):
result_fraction = Fraction()
@@ -121,11 +121,11 @@ def substract(fraction_1,fraction_2):
result.denominator = fraction_1.denominator
return result
else:
- mcm = lcm(fraction_1.denominator,fraction_2.numerator)
+ mcm = lcm(fraction_1.denominator,fraction_2.denominator)
result.denominator = mcm
- alt_fraction_1 = fraction_1.numerator * (fraction_1.denominator / mcm)
- alt_fraction_2 = fraction_2.numerator * (fraction_2.denominator / mcm)
- result.numerator = alt_fraction_1 - alt_fraction_2
+ alt_1 = fraction_1.numerator * (result.denominator / fraction_1.denominator)
+ alt_2 = fraction_2.numerator * (result.denominator / fraction_2.denominator)
+ result.numerator = alt_1 - alt_2
return result
def multiply(fraction_1,fraction_2):
@@ -152,7 +152,7 @@ def reduce(fraction):
i = 2
return fraction
-# the function to calculate the GCD
+# Function to calculate the GCD
def gcd(num1, num2):
if num1 > num2:
for i in range(1,num2+1):
@@ -172,7 +172,7 @@ def gcd(num1, num2):
result = num1*num2/num1
return result
-# the function to calculate the LCM
+# Function to calculate the LCM
def lcm(num1, num2):
result = num1*num2/gcd(num1,num2)
return result \ No newline at end of file