Сортировка строки по возрастанию - 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
Объяснение кода листинга программы
Список элементов функции и подпрограммы:
- В функции CSort(S As String) As String происходит сортировка строки S по возрастанию.
- Создается массив X(0 To 9) As Integer размером 10 для хранения количества каждого символа в строке S.
- Происходит проход по каждому символу строки S с помощью цикла For i% = 1 To Len(S).
- Для каждого символа вычисляется его числовое значение с помощью функции Val(Mid$(S, i%, 1)).
- Полученное числовое значение используется для индексации массива X, увеличивая его значение на 1.
- После прохода по всем символам строки S, в массиве X содержится количество каждого символа.
- В цикле For i% = 0 To 9, если X(i%) больше 0, то к строке CSort добавляется строка, состоящая из символа, повторенного X(i%) раз, с помощью функции String(X(i%), CStr(i%)).
- В подпрограмме Test() создается случайная строка Buf$ из 3000 символов, где каждый символ выбирается случайным образом от 0 до 9.
- Строка Buf$ выводится на экран до сортировки.
- Вызывается функция CSort(Buf$) для сортировки строки Buf$.
- Отсортированная строка выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д