Property teller()
Get
vereenvoudig()
Return vteller
End Get
Set(ByVal Value)
vteller = Value
End Set
End Property
Property noemer()
Get
vereenvoudig()
Return vnoemer
End Get
Set(ByVal Value)
If Value = 0 Then
Error ("Geen deling door nul")
Else
vnoemer = Value
End If
End Set
End Property
ReadOnly Property waarde()
Get
vwaarde = vteller / vnoemer
Return vwaarde
End Get
End Property
Public Sub maal(ByVal factor As Integer)
vteller = vteller * factor
End Sub
Public Sub deel(ByVal factor As Integer)
vnoemer = vnoemer * factor
End Sub
Private Sub vereenvoudig()
Dim probeerdeler As Integer
If vteller < 3 Then Exit Sub
probeerdeler = 2
'MsgBox("probeerdeler " & probeerdeler & " vteller " & vteller & " vnoemer " & vnoemer)
If vteller Mod probeerdeler = 0 And vnoemer Mod probeerdeler = 0 Then
vteller /= probeerdeler
vnoemer /= probeerdeler
End If
For probeerdeler = 2 To vteller
If vteller Mod probeerdeler = 0 And vnoemer Mod probeerdeler = 0 Then
vteller /= probeerdeler
vnoemer /= probeerdeler
End If
Next
End Sub
Public Shared Operator *(ByVal br1 As breuk, ByVal br2 As breuk) As breuk
Dim resultaat As New breuk
resultaat.teller = br1.teller * br2.teller / (br1.noemer * br2.noemer)
resultaat.vereenvoudig()
Return resultaat
End Operator
Public ReadOnly Property toon() As String
Get
vereenvoudig()
Return vteller & "/" & vnoemer
End Get
Voor de operatoren hebben we nood aan een eigenschap die de breuk weergeet als string, en wat code om de bewerkingen uit te voeren:
Public ReadOnly Property toon() As String