Initial commit 3
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
VERSION 1.0 CLASS
|
||||
BEGIN
|
||||
MultiUse = -1 'True
|
||||
Persistable = 0 'NotPersistable
|
||||
DataBindingBehavior = 0 'vbNone
|
||||
DataSourceBehavior = 0 'vbNone
|
||||
MTSTransactionMode = 0 'NotAnMTSObject
|
||||
END
|
||||
Attribute VB_Name = "clsMittelwert"
|
||||
Attribute VB_GlobalNameSpace = False
|
||||
Attribute VB_Creatable = True
|
||||
Attribute VB_PredeclaredId = False
|
||||
Attribute VB_Exposed = False
|
||||
Option Explicit
|
||||
|
||||
Private Ringpuffer() As Double
|
||||
Private mlngZeiger As Long
|
||||
Private mlngAnzahl As Long
|
||||
Private mlngMax As Long
|
||||
|
||||
' Setze die Größe des Ringpuffers
|
||||
Public Sub setMax(lngMax As Long)
|
||||
If lngMax < mlngZeiger Then
|
||||
mlngZeiger = 0
|
||||
End If
|
||||
|
||||
If lngMax < mlngAnzahl Then
|
||||
mlngAnzahl = lngMax
|
||||
End If
|
||||
|
||||
mlngMax = lngMax
|
||||
ReDim Preserve Ringpuffer(lngMax)
|
||||
End Sub
|
||||
|
||||
' löscht den Ringpuffer. Der Mittelwert wird 0
|
||||
Public Sub Clear()
|
||||
mlngAnzahl = 0
|
||||
mlngZeiger = 0
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub AddWert(dblWert As Double)
|
||||
Dim i As Long
|
||||
|
||||
If mlngZeiger < mlngMax Then
|
||||
mlngZeiger = mlngZeiger + 1
|
||||
Else
|
||||
mlngZeiger = 1
|
||||
End If
|
||||
|
||||
If mlngAnzahl < mlngMax Then
|
||||
For i = 1 To mlngMax
|
||||
Ringpuffer(i) = dblWert
|
||||
' Debug.Print i & "=" & Ringpuffer(i)
|
||||
mlngAnzahl = mlngAnzahl + 1
|
||||
Next
|
||||
End If
|
||||
|
||||
Ringpuffer(mlngZeiger) = dblWert
|
||||
|
||||
|
||||
|
||||
' Debug.Print "anzahl= " & mlngAnzahl
|
||||
' Debug.Print "zeiger= " & mlngZeiger
|
||||
' Debug.Print "max= " & mlngMax
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function GetWert() As Double
|
||||
Dim lngZeiger As Long
|
||||
Dim lngSumme As Double
|
||||
' Debug.Print "---GetWert---"
|
||||
|
||||
For lngZeiger = 1 To mlngAnzahl
|
||||
' If lngZeiger = mlngZeiger Then
|
||||
' Debug.Print lngZeiger & "=" & Ringpuffer(lngZeiger) & " <= "
|
||||
' Else
|
||||
' Debug.Print lngZeiger & "=" & Ringpuffer(lngZeiger)
|
||||
' End If
|
||||
lngSumme = lngSumme + Ringpuffer(lngZeiger)
|
||||
Next
|
||||
If mlngAnzahl > 0 Then
|
||||
GetWert = lngSumme / mlngAnzahl
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub Class_Initialize()
|
||||
mlngMax = 10
|
||||
ReDim Ringpuffer(mlngMax)
|
||||
End Sub
|
||||
|
||||
Reference in New Issue
Block a user