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 VB.Net 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; Project, Add Class.
Call it AddFraction.vb.
Optionally, create a new module file; Project, Add Module.
Call it AddFractionModule.vb.
Type out the adjoining Visual Basic (VB.Net) codes 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 instead comment out the previous VB.Net code from the main module
or simply continue from where it stopped.
So!
Feel free to try out your own set of numerators and denominators for fractional addition.
VB.Net code for AddFraction Class File
Public Class AddFraction
Protected numerators() As Integer
Protected denominators() As Integer
Protected new_numerators() As Integer
Protected lcm As Integer
Protected answer As Integer
Public Sub _init_(fractions As Dictionary(Of String, Integer()))
numerators = fractions.Item("numerators")
denominators = fractions.Item("denominators")
ReDim new_numerators(numerators.Count - 1)
answer = 0
End Sub
Protected Sub canonizeFraction()
Dim l_c_m As New LCM
l_c_m._init_(denominators)
lcm = l_c_m.getLCM()
For index = 0 To denominators.Count - 1
new_numerators(index) = CInt(lcm / denominators(index) * numerators(index))
Next index
End Sub
Public Function doAdd() As Dictionary(Of String, Integer)
canonizeFraction()
For Each num In new_numerators
answer += num
Next
Dim send_back As New Dictionary(Of String, Integer)
send_back.Add("numerator", answer)
send_back.Add("denominator", LCM)
Return send_back
End Function
End Class
Main Module
Module Algebra_AddFraction
Sub Main()
Dim numerators = {1, 1, 1, 1}
Dim denominators = {4, 4, 4, 4}
Dim fractions As New Dictionary(Of String, Integer())
fractions.Add("numerators", numerators)
fractions.Add("denominators", denominators)
Console.WriteLine(" Solving:")
For Each numerator In fractions.Item("numerators")
Console.Write(String.Format("{0,13}", numerator))
Next
Console.Write(Environment.NewLine & String.Format("{0,12}", " "))
For wasted = 0 To numerators.Count - 2
Console.Write(String.Format("{0}", "- + "))
Next
Console.WriteLine(String.Format("{0,1}", "-"))
For Each denominator In fractions.Item("denominators")
Console.Write(String.Format("{0,13}", denominator))
Next
Console.WriteLine("")
Dim add_fract As New AddFraction
add_fract._init_(fractions)
Dim fraction = add_fract.doAdd()
Console.WriteLine(Environment.NewLine)
Console.WriteLine(String.Format("{0,25}", fraction.Item("numerator")))
Console.WriteLine(String.Format("{0,25}", "Answer = -"))
Console.WriteLine(String.Format("{0,25}", fraction.Item("denominator")))
End Sub
End Module