Welcome to Dream.In.Code
Getting VB.NET Help is Easy!

Join 86,270 VB.NET Programmers. There are 1,875 online right now! Ask your question and get quick answers from Dream.In.Code experts. Join the #1 programming help community on the internet! Registration is fast and FREE... Join Now!

Chat LIVE With a VB.NET Expert
Powered by LivePerson.com

Register to Make This Box Go Away!

Reduce fraction

 
Reply to this topicStart new topic

Reduce fraction, pragram that reduces a fraction

xtreampb
post 7 May, 2008 - 06:00 AM
Post #1


New D.I.C Head

*
Joined: 20 Jun, 2007
Posts: 28



hey yall,

For class i have to create a program that reduces a fraction that the user inputs. This has stumped me mostly because i have the most trouble reducing fractions. I can reduce fraction but i do them mostly in my head and i dont know step by step on how to do so. but here is my code. (pleese forgive me i do not comment like i should and it is still in development so it is messy and unorganized)

CODE
Public Class Form1

    Private Sub btnReduce_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReduce.Click
        Dim Numerator, Denominator, GCF As Integer
        Dim answer As String

        Numerator = Reduce_Numerator(Numerator, Denominator, GCF)
        Denominator = Reduce_Denominator(Numerator, Denominator, GCF)
        answer = String.Concat(Val(Me.txtNumerator.Text) & "/" & Val(Me.txtDenominator.Text) & "Reduces To:" & Numerator & "/" & Denominator)

        Me.lblMessage.Text = answer

    End Sub

    Function Reduce_Numerator(ByVal Numerator As Integer, ByVal Denominator As Integer, ByVal GCF As Integer) As Integer
        Numerator = Val(Me.txtNumerator.Text)
        Denominator = Val(Me.txtDenominator.Text)
        GCF = Factor(Numerator, Denominator, GCF)
        Numerator = Numerator / GCF
        Denominator = Denominator / GCF
        Return Numerator

    End Function

    Function Reduce_Denominator(ByVal Numerator As Integer, ByVal denominator As Integer, ByVal GCF As Integer) As Integer

        GCF = Factor(Numerator, denominator, GCF)
        Numerator = Val(Me.txtNumerator.Text)
        denominator = Val(Me.txtDenominator.Text)

        Numerator = GCF / Numerator
        denominator = GCF / denominator
        Return denominator
    End Function

    Function Factor(ByVal numerator As Integer, ByVal denominator As Integer, ByVal GCF As Integer) As Integer
        Dim max_num As Integer
        If numerator > denominator Then
            max_num = denominator
        Else
            max_num = numerator
        End If

        numerator = Val(Me.txtNumerator.Text)
        denominator = Val(Me.txtDenominator.Text)
        If numerator Mod denominator = 0 Then
            GCF = numerator
        ElseIf denominator Mod numerator = 0 Then
            GCF = denominator
        Else
            Do While GCF Mod numerator And GCF Mod denominator
                GCF -= 1
            Loop
        End If
        Return GCF
    End Function

End Class


thanks
~xtreampb
User is offlineProfile CardPM
Go to the top of the page
+Quote Post


xtreampb
post 7 May, 2008 - 06:51 AM
Post #2


New D.I.C Head

*
Joined: 20 Jun, 2007
Posts: 28

never mind guys i figured it out. I was stuck on this one for bout 3 days now so i thought to get some outside help. Sorry if i wasted any of yalls time. the final code (before i clean it up is)
CODE
Public Class Form1

    Private Sub btnReduce_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReduce.Click
        Dim Numerator, Denominator, GCF As Integer
        Dim answer As String
        
        Numerator = Reduce_Numerator(Numerator, Denominator, GCF)
        Denominator = Reduce_Denominator(Numerator, Denominator, GCF)
        answer = String.Concat(Val(Me.txtNumerator.Text) & "/" & Val(Me.txtDenominator.Text) & " Reduces To: " & Numerator & "/" & Denominator)
        If Val(Me.txtNumerator.Text) = Numerator And Val(Me.txtDenominator.Text) = Denominator Then
            answer = "Fraction Already Reduced"
        End If
        Me.lblMessage.Text = answer

    End Sub

    Function Reduce_Numerator(ByVal Numerator As Integer, ByVal Denominator As Integer, ByVal GCF As Integer) As Integer
        Numerator = Val(Me.txtNumerator.Text)
        Denominator = Val(Me.txtDenominator.Text)
        GCF = Factor(Numerator, Denominator, GCF)
        Numerator = Numerator / GCF
        Denominator = Denominator / GCF
        Return Numerator

    End Function

    Function Reduce_Denominator(ByVal Numerator As Integer, ByVal denominator As Integer, ByVal GCF As Integer) As Integer

        GCF = Factor(Numerator, denominator, GCF)
        Numerator = Val(Me.txtNumerator.Text)
        denominator = Val(Me.txtDenominator.Text)

        Numerator = Numerator / GCF
        denominator = denominator / GCF
        Return denominator
    End Function

    Function Factor(ByVal numerator As Integer, ByVal denominator As Integer, ByVal GCF As Integer) As Integer
        Dim max_num As Integer
        If numerator > denominator Then
            max_num = denominator
        Else
            max_num = numerator
        End If

        numerator = Val(Me.txtNumerator.Text)
        denominator = Val(Me.txtDenominator.Text)
        If numerator Mod denominator = 0 Then
            GCF = denominator
        ElseIf denominator Mod numerator = 0 Then
            GCF = numerator
        Else
            Do While GCF Mod numerator <> 0 And GCF Mod denominator <> 0
                GCF = max_num - 1
            Loop
        End If
        Return GCF
    End Function



End Class


thanks yall
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

PsychoCoder
post 7 May, 2008 - 07:15 AM
Post #3


ToCode || !ToCode

Group Icon
Joined: 26 Jul, 2007
Posts: 5,857

Moved to VB.NET. Glad you found your solution smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Fast ReplyReply to this topicStart new topic
Time is now: 5/16/08 10:32AM

Live VB.NET Help!

VB.NET Tutorials

Reference Sheets

VB.NET Snippets

Bye Bye Ads

Free DIC T-Shirt

T-Shirt Example

Related Sites

Monthly Drawing

Thumb Drive

Partners

Top Contributors

Top 10 Kudos This Month