Hallo,
ich bin mittlerweile mit meinem Mergesort Projekt schon etwas weiter gekommen, allerdings bekomme ich einen "Type mismatch: array or user-defined type expected" Fehler.
Dies ist der gesamte Code und der Fehler ist bei
markiert. Bei "ergebnis = Mergesort(test1)" ist das "test1" hervorgehoben.
ich bin mittlerweile mit meinem Mergesort Projekt schon etwas weiter gekommen, allerdings bekomme ich einen "Type mismatch: array or user-defined type expected" Fehler.
Visual Basic-Quellcode
- Dim test1(), ergebnis(), i, laenge As Integer
- Dim j As Integer
- Dim zwischenspeicher1, zwischenspeicher2, zwischenspeicher3, zwischenspeicher4() As Integer
- Private Sub cbStart_Click()
- ergebnis = Mergesort(test1) 'Aufrufen von Mergesort
- For i = 0 To UBound(test1) - 1
- List2.AddItem (ergebnis(i))
- Next i
- End Sub
- Private Function Mergesort(ByRef m() As Integer)
- Dim links1(), rechts1() As Integer
- Dim mlaenge As Integer
- Dim links1laenge As Integer
- Dim rechts1laenge As Integer
- mlaenge = UBound(m) 'Die Länge des Arrays "m" wird gezählt und in die Variable "mlaenge" geschrieben
- links1laenge = ((mlaenge / 2) - 1) 'Berechnung der Länge des Arrays der linken Liste
- ReDim links1(links1laenge)
- rechts1laenge = (mlaenge - links1laenge - 1) 'Berechnung der Länge des Arrays der rechten Liste
- ReDim rechts1(rechts1laenge)
- MsgBox (mlaenge)
- If mlaenge <= 1 Then 'Wenn mehr als ein Element in der Liste ist
- Else
- For i = 0 To links1laenge - 1 'Aufteilen
- links1(i) = m(i)
- Next i
- For i = 0 To rechts1laenge - 1 'Aufteilen
- rechts1(i) = m(i + links11aenge)
- Next i
- links1 = Mergesort(links1)
- rechts1 = Mergesort(rechts1)
- 'merge(links1, rechts1)
- End If
- End Function
- Private Function merge(ByRef x() As Integer, ByRef y As Integer)
- End Function
- Private Sub Form_Load()
- j = InputBox("Wie viele Elemente soll die Liste haben? (8)")
- ReDim test1(j)
- ReDim ergebnis(j)
- test1(0) = 11
- test1(1) = 23
- test1(2) = 87
- test1(3) = 55
- test1(4) = 8
- test1(5) = 43
- test1(6) = 66
- test1(7) = 99
- For i = 0 To UBound(test1) - 1
- List1.AddItem (test1(i))
- Next i
- laenge = UBound(test1)
- End Sub
-
Dies ist der gesamte Code und der Fehler ist bei
markiert. Bei "ergebnis = Mergesort(test1)" ist das "test1" hervorgehoben.