Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Help me!!! Добавлено: 06.12.05 12:52  

Автор вопроса:  LoveSan
Прога никак не хочет работать, не пойму в чем дело?... ПОМОГИТЕ!!!


Private Sub Command2_Click()'считает кол-во гласных в слове массива sarr(min)
res = 0
g = "аоэюияуеёы"
For i = 1 To Len(sArr(Min))'sarr(min) - массив для хранения слова
If InStr(i, sArr(Min), g) <> 0 Then res = res + 1
Next
MsgBox res, , "КОЛИЧЕСТВО ГЛАСНЫХ В ЭТОМ СЛОВЕ:"
End Sub

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #1 Добавлено: 06.12.05 20:16
If InStr(i, sArr(Min), g) <> 0 Then res = res + 1
Ну естественно, маловероятно, что в строчке будет содержаться сразу все гласные подряд. Ты же ищешь всю строку ("аоэюияуеёы", или как там?) сразу

Ответить

Номер ответа: 2
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #2 Добавлено: 06.12.05 20:25
Ищи наоборот, в строке g символы sArr(i)

Ответить

Номер ответа: 3
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #3 Добавлено: 06.12.05 20:56
Или наподобие такого (это вроде быстрее будет):

Function Get_Count(ByVal SearchStr As String) As Long
    Dim i As Long, j As Long, result As Long
    Dim g(0 To 19) As Byte
    Dim sArr() As Byte
    Dim g_string As String
    g_string = "аоэюияуеёыАОЭЮИЯУЕЁЫ"
    For i = 0 To 19
        g(i) = Asc(Mid$(g_string, i + 1, 1))
    Next i
    ReDim sArr(0 To Len(SearchStr) - 1)
    For i = 0 To UBound(sArr())
        sArr(i) = Asc(Mid$(SearchStr, i + 1, 1))
    Next i
    
    For i = 0 To 19
        For j = 0 To UBound(sArr())
            If g(i) = sArr(j) Then result = result + 1
        Next j
    Next i
    Get_Count = result
End Function

Private Sub Form_Load()
    MsgBox Get_Count(ByVal "А это строка для теста";)
End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам