Консультация № 177257
14.03.2010, 23:16
0.00 руб.
0 4 1

Уважаемые эксперты подскажите в следующем имеется массив, как в нём упорядочить записи согласно алфавита. Спасибо Эндрю

Обсуждение

давно
Модератор
137394
1850
15.03.2010, 18:17
общий
это ответ
Здравствуйте, Ципихович Эндрю.
Вот пример кода с сортировкой. Для примера приведены два массива. Решение чувствительно к регистру букв (Прописные - строчные)
Код:

' ---------------------------------------------- Пример 1
N = 5 ' Число элементов массива
ReDim Mass(1 To N)

Mass(1) = "Варкалось"
Mass(2) = "Хливкие шорьки"
Mass(3) = "Пырялись по наве"
Mass(4) = "И хрюкотали зелюки"
Mass(5) = "Как мюмзики в мове"

' --------------------------------- Сортировка
For i = 1 To N
For j = i To N
If Mass(i) > Mass(j) Then
sss = Mass(j)
Mass(j) = Mass(i)
Mass(i) = sss
End If
Next
Next

' --------------------------------- Выдача в MsgBox

sss = ""
For i = 1 To N
sss = sss + Mass(i) + vbCrLf
Next
MsgBox sss


' ---------------------------------------------- Пример 2
N = 5
ReDim Mass(1 To N)

Mass(1) = "ав"
Mass(2) = "адбмбвг"
Mass(3) = "адбахххх"
Mass(4) = "абвгд"
Mass(5) = "абв"

' --------------------------------- Сортировка
For i = 1 To N
For j = i To N
If Mass(i) > Mass(j) Then
sss = Mass(j)
Mass(j) = Mass(i)
Mass(i) = sss
End If
Next
Next

' --------------------------------- Выдача в MsgBox

sss = ""
For i = 1 To N
sss = sss + Mass(i) + vbCrLf
Next
MsgBox sss

А вот решение нечувствительное к регистру букв (Прописные - строчные) (только фрагмент собственно сортировки)
Код:
' --------------------------------- Сортировка
For i = 1 To N
For j = i To N
If UCase(Mass(i)) > UCase(Mass(j)) Then
sss = Mass(j)
Mass(j) = Mass(i)
Mass(i) = sss
End If
Next
Next
5
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Модератор
137394
1850
15.03.2010, 19:04
общий
Ципихович Эндрю:
Дополнил ответ
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
15.03.2010, 19:22
общий
Megaloman:
Спасибо за ответ, всё работает, скажите в чём различие двух способов, какой лучше
давно
Модератор
137394
1850
15.03.2010, 19:29
общий
Ципихович Эндрю:
Не скажу Всё зависит от Ваших потребностей. Если надо сортировать элементы массива со строками невзирая на то, какие буквы входят в строки - надо использовать второе решение. Чтобы предметно это прочувствовать, во втором массиве первого решения начните любое слово с большой буквы Я. Эта строка при сортировке станет первой, так как коды прописных символов меньше кодов строчных.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Форма ответа