You are on page 1of 20

BALL

Public Class Form1


Dim hohe, punkte, punkte2, hohel As Int32
Dim myschlager, myschlager2 As schlager
Dim yposschlager, ypos As Int32
Dim WithEvents ball1 As ball

Private Sub btnZeichnen_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnZeichnen.Click

Me.txtZeichen.Focus()

Me.Timer1.Enabled = True
hohe = Me.hscgrose.Value
myschlager = New schlager(hohe, 0)
myschlager2 = New schlager(hohe, SplitContainer1.Panel1.Width - 20)
myschlager.zeichenflache = Me.SplitContainer2.Panel2.CreateGraphics
myschlager2.zeichenflache =
Me.SplitContainer1.Panel1.CreateGraphics
myschlager2.zeichnen(ypos)

myschlager.zeichnen(ypos)

ball.zeichenblatt = Me.SplitContainer2.Panel1.CreateGraphics
ball.maxbreite = Me.SplitContainer2.Panel1.Width
ball.maxhohe = Me.SplitContainer2.Panel1.Height

ball1 = New ball(60, 5, 5)

ball1.xpos = 10
ball1.ypos = 10

ball1.zeigen()
Me.Timer2.Enabled = True

End Sub

Private Sub SplitContainer2_Panel2_MouseMove(ByVal sender As Object,


ByVal e As System.Windows.Forms.MouseEventArgs) Handles
SplitContainer2.Panel2.MouseMove
If Not myschlager Is Nothing Then
myschlager.loeschen()
myschlager.zeichnen(e.Y)
yposschlager = e.Y
End If

End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Timer2.Tick
ball1.bewegen()

End Sub
Public Sub rechtscrash() Handles ball1.rechtscrash
If ball1.ypos + 60 > yposschlager And ball1.ypos < yposschlager +
hohe Then
punkte = punkte + 1
Me.lblpunkte.Text = CStr(punkte)
Beep()
Else
Timer2.Enabled = False

End If

End Sub
Public Sub linkscrash() Handles ball1.linkscrash
If ball1.ypos + 60 > yposschlager And ball1.ypos < yposschlager +
hohe Then
punkte2 = punkte2 + 1
Me.lblpunkte2.Text = CStr(punkte2)
Beep()
Else
Timer2.Enabled = False

End If
End Sub

Private Sub btnstop_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnstop.Click
Timer2.Enabled = False

End Sub

Private Sub txtZeichen_KeyDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyEventArgs) Handles txtZeichen.KeyDown
If e.KeyCode = Keys.Up Then
ypos = ypos - 10
myschlager2.loeschen()
myschlager2.zeichnen(ypos)
ElseIf e.KeyCode = Keys.Down Then
ypos = ypos + 10
myschlager2.loeschen()
myschlager2.zeichnen(ypos)

End If
End Sub

End Class
Ball Klasse

Public Class ball


'die öffentliche Variable Zeichenblatt wird gleichzeitig
'für alle Instanzen festgelegt (durch shared)
'event (ereignisse) rechtscrash

Public Event linkscrash()


Public Event rechtscrash()
Public Shared zeichenblatt As Graphics
Public Shared maxbreite As Integer
Public Shared maxhohe As Int32

Private x, y, radius, geschw, xgeschw, ygeschw As Integer


Private f As Color
Private _xpos As Int32
Private _ypos As Int32

Public Property ypos() As Integer


Get
Return _ypos

End Get
Set(ByVal value As Integer)
If value > maxhohe - CInt((radius / 2)) Then
ygeschw = -ygeschw

RaiseEvent linkscrash()
End If
If value < 0 Then
ygeschw = -ygeschw + 1

End If
_ypos = value

End Set
End Property

Public Property xpos() As Integer


Get
Return (_xpos)

End Get
Set(ByVal value As Integer)
If value >= maxbreite - CInt((radius / 2)) Then

xgeschw = -xgeschw
'hier wird das ereignis rechtscrash festgelegt
RaiseEvent rechtscrash()
End If
If value < 0 Then
xgeschw = -xgeschw + 1
End If
_xpos = value
End Set
End Property
Public Sub New(ByVal radius As Integer, ByVal xgeschw As Integer, ByVal
ygeschw As Int32)

Me.radius = radius

Me.xgeschw = xgeschw
Me.ygeschw = ygeschw

End Sub

Public Sub zeigen()


Dim pinsel As New SolidBrush(Color.White)

zeichenblatt.FillRectangle(pinsel, xpos, ypos, CInt(radius / 2),


CInt(radius / 2))

End Sub

Public Shared Sub loeschen()

zeichenblatt.Clear(Form1.SplitContainer2.Panel2.BackColor)

End Sub

Public Sub bewegen()


Me.xpos = Me.xpos + xgeschw
Me.ypos = Me.ypos + ygeschw
loeschen()
zeigen()

End Sub
Public Sub viel()
Me.xpos = Me.xpos + 26
Me.y = Me.y + 20

zeigen()

End Sub
End Class

Schläger Klasse
Public Class ball
'die öffentliche Variable Zeichenblatt wird gleichzeitig
'für alle Instanzen festgelegt (durch shared)
'event (ereignisse) rechtscrash

Public Event linkscrash()


Public Event rechtscrash()
Public Shared zeichenblatt As Graphics
Public Shared maxbreite As Integer
Public Shared maxhohe As Int32
Private x, y, radius, geschw, xgeschw, ygeschw As Integer
Private f As Color
Private _xpos As Int32
Private _ypos As Int32

Public Property ypos() As Integer


Get
Return _ypos

End Get
Set(ByVal value As Integer)
If value > maxhohe - CInt((radius / 2)) Then
ygeschw = -ygeschw

RaiseEvent linkscrash()
End If
If value < 0 Then
ygeschw = -ygeschw + 1

End If
_ypos = value

End Set
End Property

Public Property xpos() As Integer


Get
Return (_xpos)

End Get
Set(ByVal value As Integer)
If value >= maxbreite - CInt((radius / 2)) Then

xgeschw = -xgeschw
'hier wird das ereignis rechtscrash festgelegt
RaiseEvent rechtscrash()
End If
If value < 0 Then
xgeschw = -xgeschw + 1
End If
_xpos = value
End Set
End Property
Public Sub New(ByVal radius As Integer, ByVal xgeschw As Integer, ByVal
ygeschw As Int32)

Me.radius = radius

Me.xgeschw = xgeschw
Me.ygeschw = ygeschw

End Sub

Public Sub zeigen()


Dim pinsel As New SolidBrush(Color.White)

zeichenblatt.FillRectangle(pinsel, xpos, ypos, CInt(radius / 2),


CInt(radius / 2))
End Sub

Public Shared Sub loeschen()

zeichenblatt.Clear(Form1.SplitContainer2.Panel2.BackColor)

End Sub

Public Sub bewegen()


Me.xpos = Me.xpos + xgeschw
Me.ypos = Me.ypos + ygeschw
loeschen()
zeigen()

End Sub
Public Sub viel()
Me.xpos = Me.xpos + 26
Me.y = Me.y + 20

zeigen()

End Sub
End Class

Betreiber Fumction
Public Class Form1

Private Sub btnBetreiber_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnBetreiber.Click

Dim vorwahl As String


Dim mybetreiber As New betreiber
vorwahl = Me.txtVorwahl.Text

Me.lblBetreiber.Text = mybetreiber.anbieter(vorwahl)

End Sub
End Class
Klasse
Public Class betreiber

Public Function anbieter(ByVal vorwahl As String) As String


If vorwahl = "0664" Then
anbieter = "A1"
ElseIf vorwahl = "0699" Then
anbieter = "One"
ElseIf vorwahl = "0676" Then
anbieter = "T-Mobile"
Else
anbieter = "Betreiber unbekannt"
End If

End Function

End Class

Konstruktor

Public Class person


'eine konstruktor ist eine spezielle methode die automatisch aufgerufen
wird
'wenn die Instanz erzeugt wird
'diese methode hat keinen Rückgabe wert und den namen new

Public vorname, nachname, wohnort As String

Public Sub New(ByVal vorname As String, ByVal nachname As String)


Me.vorname = vorname
Me.nachname = nachname

End Sub

Public Sub New(ByVal vorname As String, ByVal nachname As String, ByVal


wohnort As String)

Me.vorname = vorname
Me.nachname = nachname
Me.wohnort = wohnort

End Sub
'überladung=mehrere Konstruktoren

End Class
Public Class btnAusgabe

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
Dim vorname, nachname, wohnort As String

vorname = Me.txtVorname.Text
nachname = Me.txtFamilien.Text
wohnort = Me.txtWohnort.Text

Dim person1 As New person(vorname, nachname, wohnort)

Me.txtAusgabe.Text = "Du heißt" & " " & person1.vorname & " " &
person1.nachname & " und du kommst aus " & person1.wohnort

End Sub
End Class

Try-Catch

Public Class Form1

Private Sub btnBerechnen_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnBerechnen.Click

Dim barwert, zinssatz, endwert As Double


Dim dauer As Int32
Dim meinkonto As New zinsen

Try

barwert = CDbl(txtbarwert.Text)
zinssatz = CDbl(nudZinsen.Value)
dauer = CInt(NudDauer.Value)

endwert = meinkonto.zinsen(barwert, zinssatz, dauer)

Me.lblEndwert.Text = Format(endwert, "##.##") & " €"

Catch ex As Exception
MessageBox.Show(ex.Message)

End Try

End Sub
End Class
Zinsen-Doschleife

Public Class Form1

Private Sub btnberechnen_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnberechnen.Click
Dim startk As Double
Dim zinsen As Double
Dim neuk, endwert As Double
Dim jahr As Int32
startk = CDbl(Me.txtKapital.Text)
zinsen = CDbl(Me.txtzinsen.Text)
endwert = startk
jahr = 1
neuk = startk
Me.lstBox.Items.Add(jahr & " " & Format(neuk, "##.##") &
"€")

Do While neuk <= startk * 2


jahr = jahr + 1
neuk = neuk * (1 + zinsen / 100)
Me.lstBox.Items.Add(jahr & " " & Format(neuk,
"##.##") & "€")
endwert = endwert + neuk

Loop

Me.lblkaptialall.Text = CStr(endwert)

End Sub
End Class

Steuer Klasse

Public Class steuer


Public Function usteuer(ByVal betrag As Double, ByVal steuer As Double)
As Double

usteuer = betrag * steuer

End Function

End Class
Public Class Form1

Private Sub btnBerechnen_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnBerechnen.Click
Dim betrag, netto As Double
betrag = CInt(Me.txtBrutto.Text)

Dim mysteuer As New steuer

If rdb10.Checked = True Then


netto = mysteuer.usteuer(betrag, 0.9)
Else
netto = mysteuer.usteuer(betrag, 0.8)
End If

Me.lblNetto.Text = CStr(netto)
Me.lblSteuer.Text = CStr(betrag - netto)

End Sub
End Class
Primzahl tester

Klasse

Public Class primzahl

Public Function testen(ByVal zahl As Int32) As String

Dim teiler As Int32

If zahl = 2 Or zahl = 3 Then


testen = " ist eine Primzahl"

End If

teiler = 2
If zahl Mod teiler = 0 Then
testen = "keine Primzahl"
Exit Function

End If

For teiler = 3 To zahl - 1 Step 2


If zahl Mod teiler = 0 Then
testen = "keine Primzahl"
Exit Function
Else
testen = " ist eine Primzahl"

End If
Next

End Function
Form

Public Class Form1


Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnTest.Click
Dim zahl As Int32
zahl = CInt(Me.txtZahl.Text)
Dim myprimzahl As New primzahl

Me.lblAusgabe.Text = Me.txtZahl.Text & " " &


myprimzahl.testen(zahl)

End Sub
End Class

Array zahlen testen

Public Class Form1


Dim zahlen(14) As Int32
Private Sub BtnZahlenermitteln_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnZahlenermitteln.Click
Dim i As Int32
Randomize()
For i = 0 To 14
zahlen(i) = CInt(Rnd() * 101)

Next
End Sub

Private Sub btnausgeben_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnausgeben.Click
Dim i As Int32
For i = 0 To 14
Me.lstAusgabe.Items.Add(zahlen(i))

Next
End Sub

Private Sub btnFill_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnFill.Click
Dim zahl As Int32
Dim i As Int32
Try
zahl = CInt(Me.txtZAhl.Text)

For i = 0 To 14
zahlen(i) = zahl

Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub btn123_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btn123.Click
Dim i As Int32

For i = 0 To 14
zahlen(i) = i + 1

Next
End Sub

Private Sub btnabsteigen_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnabsteigen.Click
Dim i, z As Int32
z = 100
For i = 0 To 14

zahlen(i) = z
z = z - 1

Next
End Sub

Private Sub btnSumme_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSumme.Click
Dim i, summe As Int32

For i = 0 To 14
summe = summe + zahlen(i)

Next
MessageBox.Show(CStr(summe))

End Sub

Private Sub btnZahl_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnZahl.Click
Dim i, max As Int32
max = zahlen(0)
For i = 1 To 14
If zahlen(i) > max Then
max = zahlen(i)

End If
Next
MessageBox.Show("größte Zahl: " & CStr(max))

End Sub

Private Sub btnklein_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnklein.Click
Dim i, min As Int32
min = zahlen(0)
For i = 1 To 14
If zahlen(i) < min Then
min = zahlen(i)

End If
Next
MessageBox.Show("kleinste Zahl: " & CStr(min))

End Sub
End Class

Array Sinus Funktion

Public Class Form1


Dim zeichenflache As Graphics
Dim p() As Point
Dim mypen As Pen
Dim f As Color

Private Sub btnzeichnen_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnzeichnen.Click
Try
Dim b, ein, weite, h As Int32
Dim myfont As New Font("Arial", 10)

mypen = New Pen(f)

weite = CInt(txtweite.Text)

b = Panel1.Width
h = Panel1.Height

zeichenflache = Me.Panel1.CreateGraphics
zeichenflache.Clear(Me.Panel1.BackColor)
zeichenflache.DrawLine(Pens.Black, 0, CInt(h / 2), b, CInt(h /
2))
zeichenflache.DrawLine(Pens.Black, CInt(b / 2), 0, CInt(b / 2),
h)

ReDim p(b)
ein = CInt(b / (weite * 2)) 'Anzahl der Punkte pro Einheit
If rdbSin.Checked = True Then
For i = 0 To b
p(i) = New Point(i, CInt(Math.Sin((i - (b / 2)) / ein)
* ein) + CInt(h / 2))
Next

ElseIf rdbCos.Checked = True Then


For i = 0 To b
p(i) = New Point(i, CInt(Math.Cos((i - (b / 2)) / ein)
* ein) + CInt(h / 2))
Next
Else

End If

zeichenflache.DrawLines(mypen, p)
zeichenflache.DrawLine(Pens.Black, CInt(b / 2 + ein), CInt(h /
2 - 5), CInt(b / 2 + ein), CInt(h / 2 + 5))
zeichenflache.DrawLine(Pens.Black, CInt(b / 2 - 5), CInt(h / 2
- ein), CInt(b / 2 + 5), CInt(h / 2 - ein))
zeichenflache.DrawString("1", myfont, Brushes.Black, CSng(b / 2
+ ein - 5), CSng(h / 2 + 6))

Catch ex As Exception
MessageBox.Show(ex.Message)

End Try

End Sub

Private Sub btnfarbe_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnfarbe.Click

Me.ColorDialog1.ShowDialog()
f = Me.ColorDialog1.Color

End Sub
End Class
Test Übungen

Public Class Form1


Dim zahlen(29) As Int32

Private Sub btnAusgeben_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnAusgeben.Click
Dim i As Int32
Dim ausgabe As String = " "

Randomize()
For i = 0 To 29
zahlen(i) = CInt(Rnd() * 100)
ausgabe = ausgabe + CStr(zahlen(i)) & "|"
Next
Me.lblausgabe.Text = ausgabe

End Sub

Private Sub btnGK_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnGK.Click
Dim mygroklein As New groKlein
Dim myklein As New klein
Me.lblGroklein.Text = mygroklein.groklein(zahlen)
Me.lblklein.Text = myklein.klein(zahlen)

End Sub

Private Sub btnverkehrt_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnverkehrt.Click
Dim i As Int32

Dim ausgabe As String = " "

' Array.Reverse(zahlen)

For i = 29 To 0 Step -1
ausgabe = ausgabe + CStr(zahlen(i)) & "|"
Next
Me.lblausgabe2.Text = ausgabe

End Sub

Private Sub btnwieoft_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnwieoft.Click
Dim i, gesuchteZ, anzahl As Int32
gesuchteZ = CInt(Me.txtgesucht.Text)

For i = 0 To 29
If zahlen(i) = gesuchteZ Then
anzahl = anzahl + 1
End If
Next
Me.lblgesucht.Text = "die Zahl " & CStr(gesuchteZ) & " kommt " &
CStr(anzahl) & " mal vor"

End Sub
End Class
Array Aufgaben

Public Class Form1


Dim zahlen(14) As Int32
Private Sub BtnZahlenermitteln_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles BtnZahlenermitteln.Click
Dim i As Int32
Randomize()
For i = 0 To 14
zahlen(i) = CInt(Rnd() * 10)

Next
End Sub

Private Sub btnausgeben_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnausgeben.Click
Dim i As Int32
For i = 0 To 14
Me.lstAusgabe.Items.Add(zahlen(i))

Next
End Sub

Private Sub btnFill_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnFill.Click
Dim zahl As Int32
Dim i As Int32

Try
zahl = CInt(Me.txtZAhl.Text)

For i = 0 To 14
zahlen(i) = zahl

Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub btn123_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btn123.Click
Dim i As Int32

For i = 0 To 14
zahlen(i) = i + 1

Next
End Sub

Private Sub btnabsteigen_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnabsteigen.Click
Dim i, z As Int32
z = 100
For i = 0 To 14
zahlen(i) = z
z = z - 1

Next
End Sub

Private Sub btnSumme_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnSumme.Click
Dim i, summe As Int32

For i = 0 To 14
summe = summe + zahlen(i)

Next
MessageBox.Show(CStr(summe))

End Sub

Private Sub btnZahl_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnZahl.Click
Dim i, max As Int32
max = zahlen(0)
For i = 1 To 14
If zahlen(i) > max Then
max = zahlen(i)

End If
Next
MessageBox.Show("größte Zahl: " & CStr(max))

End Sub

Private Sub btnklein_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnklein.Click
Dim i, min As Int32
min = zahlen(0)
For i = 1 To 14
If zahlen(i) < min Then
min = zahlen(i)

End If
Next
MessageBox.Show("kleinste Zahl: " & CStr(min))

End Sub

Private Sub btnbeliebig_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnbeliebig.Click
Dim i, anzahl, zahl As Int32
zahl = CInt(Me.txtbeliebig.Text)
For i = 0 To 14
If zahl = zahlen(i) Then
anzahl = anzahl + 1
End If
Next
MessageBox.Show("Anzahl der Zahl: " & CStr(anzahl))

End Sub

Private Sub btnzusammenzahlen_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles btnzusammenzahlen.Click
Dim i, anzahl, summe As Int32

Do while summe < 1000


For i = 0 To 14
summe = summe + zahlen(i)
anzahl = anzahl + 1

Next
Loop
MessageBox.Show("Anzahl Summierungen: " & CStr(anzahl))

End Sub
End Class

Class Groß
Public Class groKlein
Public max As Int32
'Public min As Int32

Private stelle, stelle1 As Int32

Public Function groklein(ByVal zahlen() As Int32) As String


Dim i, a As Int32
max = zahlen(0)
stelle = 0
For i = 1 To 29
If zahlen(i) > max Then
max = zahlen(i)
stelle = i
End If
Next

groklein = "Die größte Zahl ist " & CStr(max) & " und liegt an der
" & CStr(stelle + 1) & ". Stelle" '& "und die kleinste Zahl ist" &
CStr(min) & "und liegt an der " & CStr(stelle1) & ". Stelle"

End Function
End Class

Viele Quadrate
Public Class Form1
Dim zeichenflache As Graphics

Private Sub btnzeichnen_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnzeichnen.Click
zeichenflache = Me.Panel1.CreateGraphics

Dim a, lr, br, anzahl, lp, bp As Int32

lr = CInt(Me.txtLange.Text)
br = CInt(Me.txtBreite.Text)
anzahl = CInt(Me.txtAnzahl.Text)
lp = CInt(Panel1.Width)
bp = CInt(Me.Panel1.Height)

zeichenflache.DrawRectangle(Pens.Green, CInt(lp / 2 - lr / 2),


CInt(bp / 2 - br / 2), lr, br)
a = 0

Do Until a = anzahl - 1
lr = lr - 20
br = br - 20

zeichenflache.DrawRectangle(Pens.Green, CInt(lp / 2 - lr / 2),


CInt(bp / 2 - br / 2), lr, br)
a = a + 1
Loop

End Sub

Private Sub btnrekursion_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnrekursion.Click
zeichenflache = Me.Panel1.CreateGraphics

Dim lr, br, anzahl, lp, bp As Int32

lr = CInt(Me.txtLange.Text)
br = CInt(Me.txtBreite.Text)
anzahl = CInt(Me.txtAnzahl.Text)
lp = CInt(Panel1.Width)
bp = CInt(Me.Panel1.Height)

anzahl = anzahl - 2

rechtecke(bp, lr, br, lp, anzahl)

End Sub

Private Sub rechtecke(ByVal bp As Int32, ByVal lr As Int32, ByVal br As


Int32, ByVal lp As Int32, ByVal anzahl As Int32)
zeichenflache.DrawRectangle(Pens.Green, CInt(lp / 2 - lr / 2),
CInt(bp / 2 - br / 2), lr, br)
If anzahl < 0 Then Exit Sub
rechtecke(bp, lr - 20, br - 20, lp, anzahl - 1) 'rekursion
End Sub

End Class