Сортировка массива чисел по возрастанию - VB (59711)

Узнай цену своей работы

Формулировка задачи:

Дан. Следующий код. Но его надо изменить так, чтобы он сравнивал не просто все подряд числа, а отсортировывал только то, что осталось от массива чисел. Пример на скрине.
Листинг программы
  1. Private Sub Command1_Click()
  2. Label1.Caption = " "
  3. Label2.Caption = Label1.Caption
  4. Label1.Font.Size = 18
  5. Label2.Font.Size = Label1.Font.Size
  6. Dim massive(9) As Long, i As Integer, J As Integer, N As Integer, Tmp As Double
  7. Randomize (Time)
  8. For i = 0 To 9
  9. massive(i) = Rnd() * 10
  10. Next i
  11. For i = 0 To 9
  12. Label1.Caption = Label1.Caption & massive(i) & Space(3)
  13. Next i
  14.  
  15. N = 9
  16. For i = 0 To N - 1
  17. For J = i To N
  18. If massive(i) < massive(J) Then
  19. Tmp = massive(J)
  20. massive(J) = massive(i)
  21. massive(i) = Tmp
  22. End If
  23. Next J
  24. Label2.Caption = Label2.Caption & massive(i) & Space(3)
  25. Next i
  26. Label2.Caption = Label2.Caption & massive(N)
  27. End Sub

Решение задачи: «Сортировка массива чисел по возрастанию»

textual
Листинг программы
  1. Option Explicit
  2. '
  3. '   © Антихакер32
  4. '
  5. '1. Дан ряд символов. Создать одномерный массив, элементами которого есть слова данной строки.
  6. '2. Отсортировать массив по возрастанию.
  7. '3. Организовать поиск в отсортированном массиве.
  8. Dim j$()
  9.  
  10. Private Sub Form_Activate()
  11.     Dim s$, f&, u&
  12.     'Для примера берём какой-либо текст
  13.    s = "Дан ряд символов. Создать одномерный массив, элементами которого есть слова данной строки."
  14.     j = Split(LCase(s)): u = UBound(j) 'Разбиваем на слова
  15.    qSort 0, u: Cls 'Быстро сотрируем и выводим отсортированный список
  16.    For f = 0 To u: Print f & " " & j(f): Next
  17.     Print
  18.     Print "Ищем слово одномерный"
  19.     f = Find("одномерный")
  20.     Print "Находим " & f & " позицию в списке = [" & j(f) & "]"
  21. End Sub
  22. Public Function Find&(Elm$)
  23.     Dim max&, f&
  24.     max = UBound(j)
  25.     For f = 0 To Log(max - 1) / Log(2) + 1
  26.         Find = (Find + max) \ 2
  27.         If Elm > j(Find) Then
  28.             Find = Find + 1
  29.         ElseIf Elm < j(Find) Then max = Find - 1
  30.         Else: Exit Function
  31.         End If
  32.     Next
  33.     Find = -1
  34. End Function
  35. Private Sub qSort(ByVal low As Long, ByVal high As Long)
  36.     Dim I As Long, L As Long, M As String, wsp As String
  37.     I = low: L = high: M = j((I + L) \ 2)
  38.     Do Until I > L: Do While j(I) < M: I = I + 1: Loop: Do While j(L) > M: L = L - 1: Loop
  39.         If (I <= L) Then wsp = j(I): j(I) = j(L): j(L) = wsp: I = I + 1: L = L - 1
  40.     Loop
  41.     If low < L Then qSort low, L
  42.     If I < high Then qSort I, high
  43. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы