Method of Multiplying Fractions
Multiplying fractions is pretty straightforward:
Cancel out all common factors between numerators and denominators,
then multiply whatever is left numerator to numerator and
denominator to denominator.
Algorithm Steps to Multiply Fractions in C#:
If we have
4/9 x 21/8;
Step 1:
Find any common factor between any numerator and any denominator.
Step 2:
Cancel out any such common factor.
Step 3:
Repeat Steps 1 & 2 recursively until there are no
more common factors.
Create a new class file;
call it MultiplyFraction.
Type out the adjoining C# code for multiplying fractions.
Note: You can comment out the LowestTerm 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 multiplication.
C# code for MultiplyFraction class file
using System.Collections.Generic;
namespace Algebra
{
class MultiplyFraction
{
protected List<int> numerators = new List<int>();
protected List<int> denominators = new List<int>();
protected int[] answer = { 1, 1 };
protected int n_index, d_index;
protected int trial_factor;
protected bool mutual_factor;
public MultiplyFraction(List<int> num, List<int> denom)
{
numerators = num;
denominators = denom;
trial_factor = 0;
n_index = 0;
d_index = 0;
foreach (int n in numerators)
{
if (n > trial_factor)
{
trial_factor = n;
}
}
foreach (int d in denominators)
{
if (d > trial_factor)
{
trial_factor = d;
}
}
}
public int[] doMultiply()
{
while (trial_factor > 1)
{
while (n_index < numerators.Count)
{
mutual_factor = false;
if ((numerators[n_index] % trial_factor) == 0)
{
while (d_index < denominators.Count)
{
if ((denominators[d_index] % trial_factor) == 0)
{
mutual_factor = true;
break;
}
d_index++;
}
break;
}
n_index++;
}
if (mutual_factor)
{
numerators[n_index] = numerators[n_index] / trial_factor;
denominators[d_index] = denominators[d_index] / trial_factor;
continue;
}
n_index = 0;
d_index = 0;
trial_factor--;
}
for (int i = 0; i < numerators.Count; i++)
{
answer[0] *= numerators[i];
answer[1] *= denominators[i];
}
return answer;
}
}
}
main class
using System;
using System.Collections;
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(16);
numerators.Add(20);
numerators.Add(27);
numerators.Add(20);
List<int> denominators = new List<int>();
denominators.Add(9);
denominators.Add(9);
denominators.Add(640);
denominators.Add(7);
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}", "- X "));
}
Console.WriteLine(String.Format("{0,1}", "-"));
foreach (int d in denominators)
{
Console.Write(String.Format("{0,13}", d));
}
Console.WriteLine();
MultiplyFraction mul_fract = new MultiplyFraction(numerators, denominators);
int[] solution = mul_fract.doMultiply();
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]));
}
}
}