Сортировка строки по возрастанию - QBasic

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

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

Дано число в виде строковой переменной (строки) Требуется провести сортировку этой строки в порядке возрастания. Эта программа (мечта программиста) исполняет все, что от нее требуется. Вы видели когда-нибудь Идеальный Код? Посмотрите!

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

textual
Листинг программы
Function CSort(S As String) As String
Dim X(0 To 9) As Integer
    For i% = 1 To Len(S)
        k% = Val(Mid$(S, i%, 1))
        X(k%) = X(k%) + 1
    Next i%
    CSort = ""
    For i% = 0 To 9
        If X(i%) > 0 Then CSort = CSort & String(X(i%), CStr(i%))
    Next i%
End Function
 
Sub Test()
 
    Randomize Timer
    
    Buf$ = Space$(3000)
    
    For i% = 1 To 3000
        Mid$(Buf$, i%, 1) = CStr(Rnd() * 10)
    Next i%
 
    Debug.Print "До сортировки: "
    Debug.Print Buf$
    Debug.Print
    
    Debug.Print "После сортировки: "
    Debug.Print CSort(Buf$)
    Debug.Print
 
End Sub

Объяснение кода листинга программы

Список элементов функции и подпрограммы:

  1. В функции CSort(S As String) As String происходит сортировка строки S по возрастанию.
  2. Создается массив X(0 To 9) As Integer размером 10 для хранения количества каждого символа в строке S.
  3. Происходит проход по каждому символу строки S с помощью цикла For i% = 1 To Len(S).
  4. Для каждого символа вычисляется его числовое значение с помощью функции Val(Mid$(S, i%, 1)).
  5. Полученное числовое значение используется для индексации массива X, увеличивая его значение на 1.
  6. После прохода по всем символам строки S, в массиве X содержится количество каждого символа.
  7. В цикле For i% = 0 To 9, если X(i%) больше 0, то к строке CSort добавляется строка, состоящая из символа, повторенного X(i%) раз, с помощью функции String(X(i%), CStr(i%)).
  8. В подпрограмме Test() создается случайная строка Buf$ из 3000 символов, где каждый символ выбирается случайным образом от 0 до 9.
  9. Строка Buf$ выводится на экран до сортировки.
  10. Вызывается функция CSort(Buf$) для сортировки строки Buf$.
  11. Отсортированная строка выводится на экран.

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


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

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

7   голосов , оценка 4.286 из 5
Похожие ответы