1. Crear la clase Fracción con las siguientes características:

- Atributos: numerador y denominador (privados)
- Propiedades: Numerador y Denominador y ValorDecimal (de sólo lectura, nos da el valor en número con decimales de la fracción).
- Constructores: dos, el primero recibe el numerador y el denominador para hacer la fracción y la segunda recibe un número con decimales que convertirá en fracción.
- Métodos:
o Definir los operadores +, -, *, /
o Sobreescribir la función ToString para que nos pinte la fracción
o Escribir la función Simplifica que nos simplifica la función.

Class fraccion
    Private inumerador As Integer
    Private idenominador As Integer
    Private ivalordecimal As Decimal = 0.0

    Public ReadOnly Property numerador() As Integer
        Get
            Return (inumerador)
        End Get

    End Property

    Public ReadOnly Property denominador() As Integer
        Get
            Return idenominador
        End Get

    End Property

    Public ReadOnly Property valordecimal() As Decimal
        Get
            Me.ivalordecimal = numerador / denominador
            Return (ivalordecimal)
        End Get
    End Property

    Public Sub New(ByVal numerador As Integer, ByVal denominador As Integer)
        simplifica(numerador, denominador)
    End Sub

    Public Sub New(ByVal valordecimal As Decimal)
        Me.ivalordecimal = valordecimal
    End Sub

    Public Shared Operator +(ByVal a As fraccion, ByVal b As fraccion) As String
        Dim resultadoa As Integer = 0

        resultadoa = (a.numerador * b.denominador) + (b.numerador * a.denominador)
        Dim resultadob As Integer = 0
        resultadob = a.denominador * b.denominador
        Dim cad As String = ""
        cad = (a.numerador & "/" & a.denominador & " + " & b.numerador & "/" & b.denominador & "=" & resultadoa & "/" & resultadob)

        Return (cad)

    End Operator

    Public Shared Operator -(ByVal a As fraccion, ByVal b As fraccion) As String
        Dim resultadoa As Integer = 0

        resultadoa = (a.numerador * b.denominador) - (b.numerador * a.denominador)
        Dim resultadob As Integer = 0
        resultadob = a.denominador * b.denominador
        Dim cad As String = ""
        cad = (a.numerador & "/" & a.denominador & " - " & b.numerador & "/" & b.denominador & "=" & resultadoa & "/" & resultadob)

        Return cad

    End Operator

    Public Shared Operator *(ByVal a As fraccion, ByVal b As fraccion) As String
        Dim resultadoa As Integer = 0

        resultadoa = (a.numerador * b.numerador)
        Dim resultadob As Integer = 0
        resultadob = a.denominador * b.denominador
        Dim cad As String = ""

        cad = (a.numerador & "/" & a.denominador & " * " & b.numerador & "/" & b.denominador & "=" & resultadoa & "/" & resultadob)

        Return (cad)

    End Operator

    Public Shared Operator /(ByVal a As fraccion, ByVal b As fraccion) As String
        Dim resultadoa As Integer = 0

        resultadoa = (a.numerador * b.denominador)
        Dim resultadob As Integer = 0
        resultadob = a.denominador * b.numerador
        Dim cad As String = ""
        'Me.ivalordecimal = resultadoa / resultadob
        cad = (a.numerador & "/" & a.denominador & " / " & b.numerador & "/" & b.denominador & "=" & resultadoa & "/" & resultadob)

        Return (cad)

    End Operator

    Public Overrides Function ToString() As String
        Dim cad As String = ""
        cad = Me.inumerador & " / " & Me.idenominador

        Return (cad)
    End Function

    Private Function mcd(ByVal a As UInteger, ByVal b As UInteger) As UInteger
        Dim t As UInteger
        While a > 0
            t = a
            a = b Mod a
            b = t
        End While
        Return b
    End Function

    Private Sub simplifica(ByVal a As UInteger, ByVal b As UInteger)
        Dim v1 As UInteger = mcd(a, b) 'v1 es el factor maximo de division
        Me.inumerador = a
        Me.idenominador = b
        Me.inumerador = inumerador / v1
        Me.idenominador = idenominador / v1
        Me.ivalordecimal = Me.inumerador / Me.denominador

    End Sub

End Class

Module Module1

    Sub Main()
        Dim i, j As fraccion
        Dim a, b As Integer
        Console.Clear()
        Console.Write("Dame numerador Fraccion 1: "Wink
        a = Console.ReadLine
        Console.Write("Dame denominador Fraccion 1: "Wink
        b = Console.ReadLine
        Console.WriteLine()
        i = New fraccion(a, b)
        Console.Write("Dame numerador Fraccion 2: "Wink
        a = Console.ReadLine
        Console.Write("Dame denominador Fraccion 2: "Wink
        b = Console.ReadLine

        j = New fraccion(a, b)
        Console.WriteLine()
        Console.WriteLine(i)
        Console.WriteLine(j)

        Console.WriteLine("Suma de Fracciones: " & i + j & "=> " & (i.valordecimal + j.valordecimal))
        Console.WriteLine("Resta de Fracciones: " & i - j & "=> " & (i.valordecimal - j.valordecimal))
        Console.WriteLine("Multiplicacion de Fracciones: {0}", i * j & "=> " & (i.valordecimal * j.valordecimal))
        Console.Write("Division de Fracciones: "Wink
        Console.Write(i / j & "=> " & (i.valordecimal / j.valordecimal))
        Console.ReadKey()
    End Sub

End Module