Сортировка массива - VB (60365)

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

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

Вот этот код у меня в модуде
Листинг программы
  1. Public A() As Single
  2. Public N, k, m, i, j As Integer
  3. Public Sub Vvod()
  4. Randomize
  5. For k = 1 To N
  6. A(k) = CInt(Rnd() * 10000 * (-1) ^ k) / 100
  7. Next
  8. For i = 1 To N
  9. For j = 1 To N - i
  10. If A(i) > A(j + i) Then
  11. m = A(j)
  12. A(j) = A(j + i)
  13. A(j + i) = m
  14. End If
  15. Next j
  16. Next i
  17. End Sub
При нажатии на кнопку, выполняется сдедущее:
Листинг программы
  1. N = 20
  2. ReDim A(N) As Single
  3. Call Vvod
Вопрос: почему после этих операций элементы в массиве не сортируются а остаются в том порядке в котором создались рандомно?

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

textual
Листинг программы
  1. Private Sub Command1_Click()
  2.     Dim A() As Single, s As String
  3.    
  4.    
  5.     ReDim A(CInt(InputBox("n =", , 20)))
  6.        
  7.     Call Vvod(A)
  8.     s = s & "Исходный массив:" & vbCrLf & ArrToStr(A)
  9.    
  10.    
  11.     Call Sort(A)
  12.     s = s & vbCrLf & "Массив после сортировки:" & vbCrLf & ArrToStr(A)
  13.    
  14.     MsgBox s
  15. End Sub
  16.  
  17. Public Sub Vvod(ByRef A() As Single)
  18.     Dim i As Integer
  19.     Randomize
  20.     For i = 1 To UBound(A)
  21.         A(i) = CInt(Rnd() * 10000 * (-1) ^ i) / 100
  22.     Next
  23. End Sub
  24.  
  25. Sub Sort(ByRef A() As Single)
  26.     Dim i As Integer, j As Integer, m As Single
  27.     For i = 1 To UBound(A)
  28.         For j = 1 To UBound(A) - 1
  29.             If A(j) > A(j + 1) Then
  30.                      m = A(j)
  31.                      A(j) = A(j + 1)
  32.                      A(j + 1) = m
  33.             End If
  34.         Next j
  35.     Next i
  36. End Sub
  37.  
  38. Function ArrToStr(ByRef A() As Single) As String
  39.     Dim i As Integer
  40.     For i = 1 To UBound(A)
  41.          ArrToStr = ArrToStr & A(i) & vbTab
  42.     Next i
  43. End Function

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


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

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

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

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

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

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