Сортировка массива - VB (60365)
Формулировка задачи:
Вот этот код у меня в модуде
При нажатии на кнопку, выполняется сдедущее:
Вопрос: почему после этих операций элементы в массиве не сортируются а остаются в том порядке в котором создались рандомно?
Решение задачи: «Сортировка массива»
textual
Листинг программы
Private Sub Command1_Click()
Dim A() As Single, s As String
ReDim A(CInt(InputBox("n =", , 20)))
Call Vvod(A)
s = s & "Исходный массив:" & vbCrLf & ArrToStr(A)
Call Sort(A)
s = s & vbCrLf & "Массив после сортировки:" & vbCrLf & ArrToStr(A)
MsgBox s
End Sub
Public Sub Vvod(ByRef A() As Single)
Dim i As Integer
Randomize
For i = 1 To UBound(A)
A(i) = CInt(Rnd() * 10000 * (-1) ^ i) / 100
Next
End Sub
Sub Sort(ByRef A() As Single)
Dim i As Integer, j As Integer, m As Single
For i = 1 To UBound(A)
For j = 1 To UBound(A) - 1
If A(j) > A(j + 1) Then
m = A(j)
A(j) = A(j + 1)
A(j + 1) = m
End If
Next j
Next i
End Sub
Function ArrToStr(ByRef A() As Single) As String
Dim i As Integer
For i = 1 To UBound(A)
ArrToStr = ArrToStr & A(i) & vbTab
Next i
End Function