3 Zahlen aufsteigerd sortieren

  • Access

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von BiedermannS.

    3 Zahlen aufsteigerd sortieren

    Hallo Leute,
    ich bin neu hier und wollte euch mal was Fragen. ICh muss ein Programm programmieren das ich 3 beliebige Zahlen eingeben und das Programm automatisch sortieren muss. Man muss auch klarstellen das ich ein riesen Anfänger dabei bin, jedoch muss ich dazu noch sagen das ich keine Profi Wörter verstehen nur ( if ,string ,integer usw). Mein Quelltext:
    FInde leider keinen Fehler und trotzdem funktioniert es nicht :(

    Visual Basic-Quellcode

    1. Public Function a()
    2. Dim zahl1 As Integer
    3. Dim zahl2 As Integer
    4. Dim zahl3 As Integer
    5. zahl1 = InputBox("Zahl1 eingeben")
    6. zahl2 = InputBox("Zahl1 eingeben")
    7. zahl3 = InputBox("Zahl1 eingeben")
    8. If zahl1 > zahl2 Then
    9. If zahl1 > zahl3 Then
    10. If zahl2 > zahl3 Then
    11. MsgBox("hhh " & zahl1 & zahl2 & zahl3)
    12. Else
    13. If zahl1 < zahl3 Then
    14. If zahl3 > zahl2 Then
    15. If zahl1 < zahl2 Then
    16. MsgBox("Zahl " & zahl3 & zahl2 & zahl1)
    17. Else
    18. If zahl2 > zahl1 Then
    19. If zahl1 > zahl3 Then
    20. If zahl2 > zahl3 Then
    21. MsgBox("Zahl " & zahl2 & zahl1 & zahl3)
    22. Else
    23. If zahl3 > zahl2 Then
    24. If zahl2 < zahl1 Then
    25. If zahl1 > zahl3 Then
    26. MsgBox("Zahl " & zahl1 & zahl3 & zahl2)
    27. End If
    28. End If
    29. End If
    30. End If
    31. End If
    32. End If
    33. End If
    34. End If
    35. End If
    36. End If
    37. End If
    38. End If
    39. End Function


    Edit by Manschula Für Code-Ausschnitte bitte den entsprechenden Tag verwenden! --> VB-Tag eingefügt!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Willkommen im Forum. :thumbup:
    Probier es mal so:
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Sub xxx()
    2. Dim zahl1 As Integer
    3. Dim zahl2 As Integer
    4. Dim zahl3 As Integer
    5. zahl1 = InputBox("Zahl1 eingeben")
    6. zahl2 = InputBox("Zahl1 eingeben")
    7. zahl3 = InputBox("Zahl1 eingeben")
    8. If zahl1 > zahl2 Then
    9. Swap(zahl1, zahl2)
    10. End If
    11. If zahl2 > zahl3 Then
    12. Swap(zahl2, zahl3)
    13. End If
    14. If zahl1 > zahl2 Then
    15. Swap(zahl1, zahl2)
    16. End If
    17. End Sub
    18. Sub Swap(ByRef i1 As Integer, ByRef i2 As Integer)
    19. Dim ii As Integer = i1
    20. i1 = i2
    21. i2 = ii
    22. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    Geht schöner ;)

    Visual Basic-Quellcode

    1. Dim zahlen As New List(Of Integer)
    2. zahlen.Add(CInt(InputBox("Zahl1 eingeben"))) 'Beliebig viele Elemente hinzufügen
    3. zahlen.Add(CInt(InputBox("Zahl2 eingeben")))
    4. zahlen.Add(CInt(InputBox("Zahl3 eingeben")))
    5. zahlen.Sort() 'Sortieren
    6. MessageBox.Show("Zahlen: " & zahlen(0) & " " & zahlen(1) & " " & zahlen(2)) 'Ausgeben


    Und fertig. Geht für unendlich viele Zahlen :)

    noBlubb schrieb:

    Geht schöner ;)
    Und wo hast Du gelesen, dass @Anfaenger189: unter .NET programmiert? :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!

    Anfaenger189 schrieb:

    ich benutze Visual Basic von Access 2007
    Meinst Du Visual Basic for Applications VBA ?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    Dann biste hiwer im falschen Thread gelandet.
    [Umleitung Request]
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    Verwende einfach ein Array und lass dir das sortieren. SortierAlgorithmen gibts im Netz genug.

    Hier mal aus dem Kopf:
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Sub test2()
    2. 'Ein Array erstellen
    3. Dim arr(2) As Integer
    4. 'Das Array befüllen
    5. arr(0) = 152
    6. arr(1) = 36
    7. arr(2) = 8
    8. 'Sortieralgorithmus aufrufen
    9. Call SortArray(arr)
    10. 'Ausgabe
    11. MsgBox ("Sortiert:" & vbCrLf & arr(0) & vbTab & arr(1) & vbTab & arr(2))
    12. End Sub
    13. Sub SortArray(ByRef arr() As Integer)
    14. Dim i As Integer
    15. Dim y As Integer
    16. Dim again As Boolean
    17. Dim tmp As Integer
    18. again = True
    19. Do While again
    20. For i = 0 To UBound(arr)
    21. For y = UBound(arr) To i Step -1
    22. If arr(i) > arr(y) Then
    23. tmp = arr(y)
    24. arr(y) = arr(i)
    25. arr(i) = tmp
    26. again = True
    27. Exit For
    28. Else
    29. again = False
    30. End If
    31. Next
    32. If again Then Exit For
    33. Next
    34. Loop
    35. End Sub


    Nur solltest du lieber einen anderen Algorithmus implementieren, da dieser hier nur was selbstgeschriebenes ist und nicht optimiert wurde. Ist aber ein ähnliches Prinzip wie BubbleSort.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D