Breuk: de code van de klasse
- De locale variabelen
'local variable(s) to hold property value(s)
Private mvarTeller As Integer 'local copy
Private mvarNoemer As Integer 'local copy
Private mvarWaarde As Currency 'local copy
- De eigenschappen lezen en instellen
Public Property Let Waarde(ByVal vData As Currency)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.Waarde = 5
'Mag niet rechtstreeks gebeuren
'mvarWaarde = vData
End Property
Public Property Get Waarde() As Currency
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.Waarde
mvarWaarde = mvarTeller / mvarNoemer
Waarde = mvarWaarde
End Property
Public Property Let noemer(ByVal vData As Integer)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.Noemer = 5
If vData = 0 Then
'noemer mag niet nul zijn
Err.Raise 1001, , "Noemer mag niet nul zijn"
Exit Property
End If
mvarNoemer = vData
End Property
Public Property Get noemer() As Integer
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.Noemer
vereenvoudig
noemer = mvarNoemer
End Property
Public Property Let teller(ByVal vData As Integer)
'used when assigning a value to the property, on the left side of an assignment.
'Syntax: X.Teller = 5
mvarTeller = vData
End Property
Public Property Get teller() As Integer
'used when retrieving value of a property, on the right side of an assignment.
'Syntax: Debug.Print X.Teller
vereenvoudig
teller = mvarTeller
End Property
- Om te kunnen vereenvoudigen, hebben we een paar hulpfuncties nodig: het kleinste van
twee getallen, en ed grootste gemene deler van twee getallen.
Function min(g1 As Integer, g2 As Integer) As Integer
If g1 < g2 Then
min = g1
Else
min = g2
End If
End Function
Function ggd(g1 As Integer, g2 As Integer) As Integer
Dim test As Integer
For test = min(g1, g2) To 1 Step -1
If g1 Mod test = 0 And g2 Mod test = 0 Then
ggd = test
Exit Function
End If
Next test
End Function
- Vereenvoudigen kunnen we dan zo doen:
Private Sub vereenvoudig()
Dim deler As Integer
deler = ggd(mvarTeller, mvarNoemer)
mvarTeller = mvarTeller / deler
mvarNoemer = mvarNoemer / deler
End Sub
- De bewerkingen op de breuken zien er zo uit:
Public Sub TelBreukOp(br As Breuk)
mvarTeller = mvarTeller * br.noemer + br.teller * mvarNoemer
mvarNoemer = mvarNoemer + br.noemer
End Sub
Public Sub Telop(getal As Integer)
mvarTeller = mvarTeller + getal * mvarNoemer
End Sub
Public Sub Vermenigvuldig(factor As Integer)
mvarTeller = mvarTeller * factor
End Sub
Public Sub Deel(deler As Integer)
'niet delen door nul
If deler = 0 Then
Err.Raise 11
Exit Sub
End If
mvarNoemer = mvarNoemer * deler
End Sub
[VB Web] - [hlrnet] - [copyright]