myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Sortieralghorithmen in Visual Basic (https://mygully.com/showthread.php?t=3763507)

wale_xD 15.04.15 15:47

Sortieralghorithmen in Visual Basic
 
Hallo zusammen,
Ich muss für die Schule ein paar Sortieralghorithmen ausarbeiten und präsentieren.
Leider kommt mir das ganze um einiges schwieriger vor, als gedacht. Wie die Sortieralghorithmen (Bubblesort, Quicksort, Selectionsort usw.) in der Theorie funktionieren verstehe ich schon, nur habe ich Probleme damit, diese auch zu programmieren.

Ich habe In VB mit einer Windows Forms Anwendung folgendes Programm erstellt:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Zitat:

Public Class frm_Sortieralghorithmen
Dim ZZ As New Anwendung
Dim zahlen(7) As Integer
Dim i As Integer

Private Sub BFSF_Ende_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BFSF_Ende.Click
Me.Close()
End Sub

Private Sub BFSF_Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BFSF_Start.Click
zahlen = ZZ.bestimmteZufallszahlen()
If OF_mitSort.Checked = True Then
Array.Sort(zahlen)
End If
For i = 0 To 7
LF_Zahlen.Items.Add(zahlen(i))
Next
End Sub

Private Sub BFSF_sortieren_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BFSF_sortieren.Click
Array.Sort(zahlen)
For i = 0 To 7
LF_Zahlen.Items.Add(zahlen(i))
Next
End Sub

Private Sub BFSF_loeschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BFSF_loeschen.Click
LF_Zahlen.Items.Clear()
End Sub
End Class

Public Class Anwendung
Dim i As Integer
Dim a(7) As Integer

Public Function bestimmteZufallszahlen()
Randomize()
For i = 0 To 7
a(i) = Int(Rnd() * 11) + 5
Next i
Return a
End Function
End Class
Zum sortieren habe ich einfach den Befehl "Array.Sort" verwendet.

Kann mir jemand vielleicht mal zeigen wie es mit Bubblesort und/oder Quicksort funktioniert ??

cortez442 17.04.15 17:17

Ich hab ein paar Sachen:
  • Warum benutzt du If OF_mitSort.Checked = True? OF_mitSort.Checked gibt bereits den Wert zurück. Ob du danach noch einmal fragst of T=T oder F=T ist, ändert am Ergebnis nichts, du hast aber eine unnötige Operation und der Code wird unübersichtlich
  • Warum benutzt du ein Array? Entweder benutzt du eine Liste oder du nimmst ein Array mit einer Konstanten für die obere Grenze, die du auch in deiner Schleife benutzt. So fliegt dir gleich alles um die Ohren, wenn du nur eine Zahl davon veränderst.

    Also:
    Const BOUND = 7
    Dim arrNumbers(BOUND) as integer
    und in deiner Schleife "For i = 0 To BOUND"
  • Globale variablen machen dir am Ende nur Probleme. Für die Funktion Public Function bestimmteZufallszahlen() hast du außerdem die rückgabe Varaible nicht deklariert.
  • Die Sort Algorithmen findest du bei google fertig zum Copy und pasten


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.