Сортировать буквы в строке по частоте их употребления. vb6

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

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

Вырезал все первые буквы слов в строку, избавился от одинаковых..Осталось как-то сортировать их по частоте употребления. Скорее всего это нужно делать еще до избавления от одинаковых. Можно с массивом, можно без. Уже 2 неделю не могу понять, как реализовать. Выручайте

Решение задачи: «Сортировать буквы в строке по частоте их употребления. vb6»

textual
Листинг программы
Private Sub Command1_Click()
    Dim s As String, ss As String
    Dim msg As String, msg1 As String, temp As String
    Dim i As Integer, j As Integer
    s = "Сортировать буквы в строке по частоте их употребления"
    ss = UniqWords(s)
    For i = 1 To Len(ss)
        msg = msg & Mid(ss, i, 1) & " - " & UBound(Split(s, Mid(ss, i, 1))) & vbCrLf
    Next i
    For i = 1 To Len(ss)
        For j = i To Len(ss) - 1
             If UBound(Split(s, Mid(ss, i, 1))) < UBound(Split(s, Mid(ss, j + 1, 1))) Then
                 temp = Mid(ss, i, 1)
                 Mid(ss, i, 1) = Mid(ss, j + 1, 1)
                 Mid(ss, j + 1, 1) = temp
             End If
        Next j
        msg1 = ss
    Next i
    MsgBox msg & vbCrLf & msg1
End Sub
 
Private Function UniqWords(ByVal ss As String) As String
Dim i As Long, j As Long, s As String
For i = 1 To Len(ss)
    s = s & " " & Mid(ss, i, 1)
Next i
    s = " " & s & " "
    i = 2
    Do
        j = InStr(i + 1, s, " ")
        If j = 0 Then Exit Do
        If InStr(1, Left$(s, i), Mid$(s, i, j - i + 1), vbTextCompare) = 0 Then UniqWords = UniqWords & Mid$(s, i, j - i)
        i = j
    Loop
    Do While InStr(1, UniqWords, " ")
        UniqWords = Replace(UniqWords, " ", "")
    Loop
End Function

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


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

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

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