
Example Application: Algebra 


This example explores the techniques of using the button
control. The application is used to calculate the factorial of a number, the
permuation, and the combination of two numbers.

In the study of statistics, a factorial is a technique
of finding different ways to arrange a series of objects (or values). For
example, imagine you have five colors as red, green, blue, white, and black.
In how many arrangements can you produce a list of those four objects? You
can get the answer by calculating the factorial of the number of objects.
The formula to calculate the factorial is:
F = n!
Imagine you have a set of five objects in different
colors as red, green, blue, white, and black. Imagine you want to arrange
the objects in different sequences but you want each sequence to start with
two specific objects, for example you may want to arrange the objects so
that you always start with any combination of black and white followed by
any combination of the other objects. This type of arrangement is called a
permutation. The formula to calculate a permutation is:
Imagine you have five objects and you want to arrange
the objects in different sequences but you want each sequence to start with
certain two objects. This type of arrangement is called a combination. To
calculate it, you can use the following formula:
Application:
Creating the Application


 Start Microsoft Visual C# and create a Windows Application named
Algebra2
 On the main menu, click Project > Add Class...
 In the middle list, make sure Class is selected.
Change the Name
to Algebra and click Add
 Change the file as follows:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Algebra2
{
public class Algebra
{
public static long Factorial(long x)
{
if (x <= 1)
return 1;
else
return x * Factorial(x  1);
}
public static long Permutation(long n, long r)
{
if (r == 0)
return 0;
if (n == 0)
return 0;
if ((r >= 0) && (r <= n))
return Factorial(n) / Factorial(n  r);
else
return 0;
}
public static long Combination(long a, long b)
{
if (a <= 1)
return 1;
return Factorial(a) / (Factorial(b) * Factorial(a  b));
}
}
}
 In the Solution Explorer, rightclick Form1.cs and click Rename
 Type Exercise.cs and press Enter twice (to save and to open
the form)
 Click the body of the form to make sure it is selected.
In the
Properties window, change the following characteristics
FormBorderStyle: FixedDialog Text: Factorial, Permutation, and
Combination Size: 304, 208 StartPosition: CenterScreen
MaximizeBox: False MinimizeBox: False
 In the Containers section of the Toolbox, click TabControl and click
the form
 On the form, rightclick the right side of tabPage2 and click Add
Page
 Design the form as follows:

Control 
Text 
Name 
Additional Properties 
TabControl 


tclAlgebra 
HotTrack: True Location: 12, 12
Size: 304, 235 
TabPage 

Factorial 
tabFactorial 

Label 

Number: 

Location: 22, 21 
Button 

Calculate 
btnCalcFactorial 

TextBox 


txtNumber 
TextAlign: Right Location: 88, 18
Size: 50, 20 
Label 

Result: 

Location: 22, 56 
TextBox 


txtFactorial 
TextAlign: Right Location: 88, 54
Size: 140, 20 
Button 

Close 
btnClose 



Control 
Text 
Name 
Location 
Size 
TabPage 

Permutation 
tabPermutation 


Label 

n: 

22, 21 

TextBox 


txtPermutationN 
88, 18 
50, 20 
Label 

r: 

22, 56 

Button 

Calculate 
btnCalcPermutation 


TextBox 


txtPermutationR 
88, 54 
50, 20 
Label 

P(n, r): 

22, 92 

TextBox 


txtPermutation 
88, 90 
140, 20 


Control 
Text 
Name 
Location 
Size 
TabPage 

Combination 
tabCombination 


Label 

n: 

22, 21 

TextBox 


txtCombinationN 
88, 18 
50, 20 
Label 

r: 

22, 56 

Button 

Calculate 
btnCalcCombination 


TextBox 


txtCombinationR 
88, 54 
50, 20 
Label 

C(n, r): 

22, 92 

TextBox 


txtCombination 
88, 90 
140, 20 

 Access the Factorial tab page and doubleclick its Calculate button
 Implement the event as follows:
private void btnCalcFactorial_Click(object sender, EventArgs e)
{
long number = 0;
long result;
try
{
number = long.Parse(txtFactNumber.Text);
result = Algebra.Factorial(number);
txtFactorial.Text = result.ToString();
}
catch (FormatException)
{
MessageBox.Show("Invalid Number");
}
}
 Return to the form
 Access the Permutation tab page and doubleclick its Calculate
button
 Implement the event as follows:
private void btnCalcPermutation_Click(object sender, EventArgs e)
{
long n = 0, r = 0;
long result;
try
{
n = long.Parse(txtPermutationN.Text);
}
catch (FormatException)
{
MessageBox.Show("Invalid Number");
}
try
{
r = long.Parse(txtPermutationR.Text);
result = Algebra.Permutation(n, r);
txtPermutation.Text = result.ToString();
}
catch (FormatException)
{
MessageBox.Show("Invalid Number");
}
}
 Return to the form
 Access the Combination tab page and doubleclick its Calculate
button
 Implement the event as follows:
private void btnCalcCombination_Click(object sender, EventArgs e)
{
long n = 0, r = 0;
long result;
try
{
n = long.Parse(txtCombinationN.Text);
}
catch (FormatException)
{
MessageBox.Show("Invalid Number");
}
try
{
r = long.Parse(txtCombinationR.Text);
result = Algebra.Combination(n, r);
txtCombination.Text = result.ToString();
}
catch (FormatException)
{
MessageBox.Show("Invalid Number");
}
}
 Return to the form and doubleclick the Close button
 Implement the event as follows:
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
 Execute the application to test the calculations
 Close the form and return to your programming environment

