Introduction
This is a basic program that takes a square root and simplifies it for you. I always find myself needing to do this kind of thing and the calculators don't seem to come with this option so I decided to write this simple program. For example, it takes the square root of 60 and breaks it down to 4 * 15. It then returns "2 √15" (simplified). It comes in handy when big numbers are used.
IsDecimal function
The way it works is it has to check at several points if numbers are perfect squares or not, and the way to do this is by getting the square root and checking whether it's a whole number or a decimal. Here is the IsDecimal
function:
Public Function IsDecimal(ByVal num As String) As Boolean
Dim t As String
For i As Integer = 0 To num.Length - 1
t = num.Substring(i, 1)
If t = "." Then Return True
Next
Return False
End Function
What this function does is it takes the input number as a String
and checks through every character. If a "." is found, then it returns True
(it is a decimal), if no "." is found then it returns False
(it is a whole number).
Simplifying square root code
First take a look at the code:
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
If Not IsNumeric(txtnum.Text) Then Exit Sub
Dim num As Integer = txtnum.Text
If Not IsDecimal(Math.Sqrt(num)) Then
txtout1.Text = Math.Sqrt(num)
txtout2.Text = "x"
Exit Sub
End If
Dim t As Double
For i As Integer = 15 To 2 Step -1
t = num / (i * i)
If Not IsDecimal(t) Then
txtout1.Text = Math.Sqrt(i * i)
txtout2.Text = num / (i * i)
Exit Sub
End If
Next
txtout1.Text = "x"
txtout2.Text = "x"
End Sub
Now, first of course it must check that a number was inserted. Then it checks right off the bat if the number inserted is already a perfect square. This is done by getting the square root of the number, if the result is a whole number, then it is a perfect square and no simplification needs to be done.
If it is not a perfect square, then it's a matter of seeing if it's divisible by perfect squares. The code will just check for small numbers, starting with the square of 15 going down to the square of 2, this can be modified to work with bigger numbers. It checks it backwards to make sure it finds the biggest possible square. If it finds a square that fits, then it just gets the square root (will be whole number) and writes it to the outside of the square root, and writes to the inside of the square root how many times the square goes into the original number.
Conclusion
This is a small code that is pretty useful when doing math homework :). Also the IsDecimal
function might come in handy for other apps. Any comments or bugs are always welcome.