Lösung zur Übungsaufgabe „Get the BASICs, Visual Basic für Einsteiger und Umsteiger“, Teil 4


Aufgabe


Programmieren Sie eine Klasse “Rechteck”



  • welche die Höhe und Breite eines Rechtecks (als Integer) verwaltet.


  • Implementieren Sie mehrere Konstruktoren.


    • “Leeres” Rechteck initialisieren

    • “Quadrat” initialisieren

    • “Rechteck” mit Breite und Höhe initialisieren

  • Schreiben Sie Properties für Breite und Höhe.

  • Schreiben Sie eine Methode “Zeichnen” welche das Rechteck mit Console.WriteLine() darstellt.

Lösung


Option Strict On


Option Explicit On


 


Module Module1


 


    Sub Main()


 


        Dim meinRechteck As New Rechteck


        meinRechteck.Hoehe = 5


        meinRechteck.Breite = 3


 


        ‘ Rechteck zeichnen


        meinRechteck.Zeichnen()


 


        ‘ Leerzeichen als Trenner ausgeben


        Console.WriteLine()


        Console.WriteLine()


 


 


        Dim meinZweitesRechteck As New Rechteck(9, 4)


 


        ‘ Rechteck zeichnen


        meinZweitesRechteck.Zeichnen()


 


        ‘ Leerzeichen als Trenner ausgeben


        Console.WriteLine()


        Console.WriteLine()


 


 


        Dim meinQuadrat As New Rechteck(5)


 


        ‘ Quadrat zeichnen


        meinQuadrat.Zeichnen()


 


        ‘ Leerzeichen als Trenner ausgeben


        Console.WriteLine()


        Console.WriteLine()


 


 


    End Sub


 


    Public Class Rechteck


 


#Region “Private Variablen”


 


        Private _breite As Integer


        Private _hoehe As Integer


 


#End Region


 


 


#Region “Konstruktoren”


 


        Public Sub New()


            _breite = 0


            _hoehe = 0


        End Sub


 


 


        Public Sub New(ByVal Breite As Integer, ByVal Hoehe As Integer)


            _breite = Breite


            _hoehe = Hoehe


        End Sub


 


 


        Public Sub New(ByVal Seitenlaenge As Integer)


            _breite = Seitenlaenge


            _hoehe = Seitenlaenge


        End Sub


 


#End Region


 


 


#Region “Properties”


 


        Public Property Breite() As Integer


            Get


                Return _breite


            End Get


            Set(ByVal value As Integer)


                If value >= 0 Then


                    ‘ es düften keine negativen Werte für


                    ‘ die Breite eingegeben werden


                    _breite = value


                End If


            End Set


        End Property


 


 


        Public Property Hoehe() As Integer


            Get


                Return _hoehe


            End Get


            Set(ByVal value As Integer)


                If value >= 0 Then


                    ‘ es düften keine negativen Werte für


                    ‘ die Höhe eingegeben werden


                    _hoehe = value


                End If


            End Set


        End Property


 


#End Region


 


 


#Region “Methoden”


 


        ”’ <summary>


        ”’ Zeichnet das Rechteck.


        ”’ </summary>


        ”’ <remarks></remarks>


        Public Sub Zeichnen()


 


            ‘ Warnung ausgeben, wenn die Kantenlänge 0 ist


            If _hoehe = 0 OrElse _breite = 0 Then


 


                Console.WriteLine(“Ein Rechteck mit einer Kantenlänge von 0 kann nicht gezeichnet werden.”)


 


                ‘ Rechteck kann nicht gezeichnet werden


                ‘ –> die Methode Zeichnen beenden


                Return


 


            End If


 


            ‘ Schleife für die Höhe des Rechtecks


            ‘ _hoehe – 1 –> da die Schleife von 0 zu zählen beginnt


            For j As Integer = 0 To _hoehe – 1


 


                ‘ Schleife für die Breite des Rechtecks


                ‘ _breite – 1 –> da die Schleife von 0 zu zählen beginnt


                For i As Integer = 0 To _breite – 1


 


                    If j = 0 OrElse j = _hoehe – 1 OrElse i = 0 OrElse i = _breite – 1 Then


                        ‘ hier werden die Rände des Rechtecks gezeichnet


                        Console.Write(“*”)


 


                    Else


                        ‘ hier das Innere des Rechtecks


                        Console.Write(” “)


 


                    End If


 


                Next    ‘ Ende von i


 


                ‘ eine neue Zeile für die nächste


                ‘ Zeile des Quadrats ausgeben


                Console.WriteLine()


 


            Next    ‘ Ende von j


 


        End Sub


 


#End Region


 


    End Class


 


End Module

Comments (0)

Skip to main content