Basisklassen

Klasse MiniMaximizer

Die Klasse MiniMaximizer verarbeitet eine Folge von Paaren (Zahlenwert, Objekt) und merkt sich das Minimum und das Maximum bezüglich des Zahlenwerts zusammen mit dem jeweils dazu­gehörigen Objekt.

Die Zahlenwerte sind vom Typ Double.

Das folgende Programm zeigt die Implementierung in Visual Basic .NET.

 

' Visual Basic .NET
Public Class MiniMaximizer

    Private minval, maxval As Double
    Private minobj, maxobj As Object
    Private empty As Boolean

    ' Konstruktor
    Public Sub New()
        reset
    End Sub

    Public Sub reset()
        minval = Double.PositiveInfinity
        maxval = Double.NegativeInfinity
        minobj = Nothing
        maxobj = Nothing
        empty = True
    End Sub

    Public Sub add(ByVal val As DoubleByVal obj As Object)
        If empty Or val < minval Then
            minval = val
            minobj = obj
        End If
        If empty Or val > maxval Then
            maxval = val
            maxobj = obj
        End If
        empty = False
    End Sub

    Public Function getMinVal() As Double
        Return minval
    End Function

    Public Function getMaxVal() As Double
        Return maxval
    End Function

    Public Function getMinObj() As Object
        Return minobj
    End Function

    Public Function getMaxObj() As Object
        Return maxobj
    End Function

    Public Function isEmpty() As Boolean
        Return empty
    End Function

End Class

 

Ein MiniMaximizer wird in folgender Weise benutzt. Mit der Methode add werden mehrere Paare (Zahlenwert, Objekt) hinzugefügt. Der MiniMaximizer merkt sich das Minimum und das Maximum bezüglich des Zahlenwerts zusammen mit dem jeweils dazu­gehörigen Objekt. In diesem Beispiel liefert getMinObj das Objekt "minus1" und getMaxObj das Objekt "vier".

 

    Private Sub testMiniMaximizer()
        Dim s, t As String
        Dim m As New MiniMaximizer()
        m.add(3, "drei")
        m.add(-1, "minus1")
        m.add(4, "vier")
        m.add(2, "zwei")
        s = m.getMinObj()
        t = m.getMaxObj()
        Console.WriteLine(s)
        Console.WriteLine(t)
    End Sub

 

[up]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Created: 06.02.2009   Updated: 19.02.2023
Diese Webseiten sind während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden