Rationalise (Canonise) the Fractions before Addition
Normally before fractions are added, they are rationalised;
i.e., they are put in a form where their denominators become
the same. This same denominator is the LCM of the
denominators of all the separate fractions.
After this is done, the new numerators can then be added together.
Steps for Addition of Fractions C# code
The following steps will guide us in writing our code.
Let's illustrate with
2/5 + 7/4
Step 1:
Find the LCM of the denominators.
⇒ LCM of 5 & 4 = 20
Step 2:
In a turn by turn fashion, divide the found LCM from Step 1
by each denominator, multiplying the quotient by the corresponding numerator.
⇒
((2 x 4) + (7 x 5))/20
= (8 + 35)/20
Step 3:
Go ahead and add the numerators.
⇒
43/20
Create a new class file;
Call them AddFraction.;
Type out the adjoining C# code for adding fractions.
Note: The code module for
finding LCM
is from the Primary Category.
Create a new Class File called LCM in your current
project and copy the L.C.M. code into it.
You can comment out the DivideFraction C# object
code in the main class from the previous lesson or simply continue from where it stopped.
So!
Feel free to try out your own set of numerators and denominators for fractional addition.
C# code for AddFraction class file
using System.Collections.Generic;
namespace Algebra
{
class AddFraction
{
protected List<int> numerators = new List<int>();
protected List<int> denominators = new List<int>();
protected List<int> new_numerators = new List<int>();
protected int lcm;
protected int answer = 0;
public AddFraction(List<int> num, List<int> denom)
{
numerators = num;
denominators = denom;
}
protected void canonizeFraction()
{
LCM l_c_m = new LCM(denominators);
lcm = l_c_m.getLCM();
for (int i = 0; i < denominators.Count; i++)
{
new_numerators.Add(lcm / denominators[i] * numerators[i]);
}
}
public int[] doAdd()
{
canonizeFraction();
foreach (int n in new_numerators)
{
answer += n;
}
return new int[] { answer, lcm };
}
}
}
main class
using System;
using System.Collections.Generic;
namespace Algebra
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Welcome to our demonstration sequels");
Console.WriteLine("Hope you enjoy (and follow) the lessons.");
Console.WriteLine("\r\n");
List<int> numerators = new List<int>();
numerators.Add(1);
numerators.Add(1);
numerators.Add(1);
numerators.Add(1);
List<int> denominators = new List<int>();
denominators.Add(4);
denominators.Add(4);
denominators.Add(4);
denominators.Add(4);
Console.WriteLine(" Solving:");
foreach (int n in numerators)
{
Console.Write(String.Format("{0,13}", n));
}
Console.Write(Environment.NewLine + String.Format("{0,12}", " "));
for (int i = 0; i < numerators.Count - 1; i++)
{
Console.Write(String.Format("{0}", "- + "));
}
Console.WriteLine(String.Format("{0,1}", "-"));
foreach (int d in denominators)
{
Console.Write(String.Format("{0,13}", d));
}
Console.WriteLine();
AddFraction add_fract = new AddFraction(numerators, denominators);
int[] solution = add_fract.doAdd();
Console.WriteLine(Environment.NewLine);
Console.WriteLine(String.Format("{0,25}", solution[0]));
Console.WriteLine(String.Format("{0,25}", "Answer = -"));
Console.WriteLine(String.Format("{0,25}", solution[1]));
}
}
}