Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 16:50   #1
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию Задача на VB 6.0

Вот задание:
слова отделяются пробелами,предложения точкой
1.последовательно выделять слова,где согласных букв больше чем гласных
Как можно циклом перебрать каждую букву? Как выделить слова в текст боксе? И проверить гласная или согласная она? Занести в разные массивы для гласных и согласных все буквы и проверять к какому массиву буква относится?
Maxs вне форума Ответить с цитированием
Старый 26.05.2009, 17:17   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Код:
Sub Main()
    'слова отделяются пробелами,предложения точкой
    'последовательно выделять слова,где согласных букв больше чем гласных

    Гласные = "уеыаоэяиюё": Согласные = "йцкнгшщзхъфвпрлджчсмтьб"

    txt = "Как можно циклом перебрать каждую букву? Как выделить слова в текст боксе? " & _
          "И проверить гласная или согласная она? Занести в разные массивы для гласных и " & _
          "согласных все буквы и проверять к какому массиву буква относится?"
    'txt = textbox1.Text
    МассивСлов = Split(txt, " ")
    
    For i = LBound(МассивСлов) To UBound(МассивСлов)
        слово = МассивСлов(i)
        КолвоГласных = 0: КолвоСогласных = 0
        For j = 1 To Len(слово)
            буква = Mid(слово, j, 1)
            If InStr(1, Гласные, буква) > 0 Then КолвоГласных = КолвоГласных + 1
            If InStr(1, Согласные, буква) > 0 Then КолвоСогласных = КолвоСогласных + 1
        Next j
        If КолвоГласных < КолвоСогласных Then res = res & слово & vbNewLine
    Next i
    MsgBox res, vbInformation, "Слова, в которых согласных больше"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 26.05.2009, 17:39   #3
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Код:
Sub Main()
    'слова отделяются пробелами,предложения точкой
    'последовательно выделять слова,где согласных букв больше чем гласных

    Гласные = "уеыаоэяиюё": Согласные = "йцкнгшщзхъфвпрлджчсмтьб"

    txt = "Как можно циклом перебрать каждую букву? Как выделить слова в текст боксе? " & _
          "И проверить гласная или согласная она? Занести в разные массивы для гласных и " & _
          "согласных все буквы и проверять к какому массиву буква относится?"
    'txt = textbox1.Text
    МассивСлов = Split(txt, " ")
    
    For i = LBound(МассивСлов) To UBound(МассивСлов)
        слово = МассивСлов(i)
        КолвоГласных = 0: КолвоСогласных = 0
        For j = 1 To Len(слово)
            буква = Mid(слово, j, 1)
            If InStr(1, Гласные, буква) > 0 Then КолвоГласных = КолвоГласных + 1
            If InStr(1, Согласные, буква) > 0 Then КолвоСогласных = КолвоСогласных + 1
        Next j
        If КолвоГласных < КолвоСогласных Then res = res & слово & vbNewLine
    Next i
    MsgBox res, vbInformation, "Слова, в которых согласных больше"
End Sub
Спасибо!!!
Maxs вне форума Ответить с цитированием
Старый 27.05.2009, 16:57   #4
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Никак не могу правильно выделить текст. Вот че нашел в инете, не работает. Как здесь провести поиск.
Код:
    'слова отделяются пробелами,предложения точкой

    Гласные = "уеыаоэяиюёУЕЫАОЭЯИЮ": Согласные = "йцкнгшщзхъфвпрлджчсмтьбЙЦКНГШЩЗХЪФВПРЛДЖЧСМТЬБ"
    txt = RichTextBox1.Text
    МассивСлов = Split(txt, " ")
    
    For i = LBound(МассивСлов) To UBound(МассивСлов)
        slovo = МассивСлов(i)
        КолвоГласных = 0: КолвоСогласных = 0
        For j = 1 To Len(slovo)
            буква = Mid(slovo, j, 1)
            If InStr(1, Гласные, буква) > 0 Then КолвоГласных = КолвоГласных + 1
            If InStr(1, Согласные, буква) > 0 Then КолвоСогласных = КолвоСогласных + 1
        Next j
        If КолвоГласных < КолвоСогласных Then
        res = res & slovo & vbNewLine
        //вот здесь вставил из инета
        RichTextBox1.SelStart = RichTextBox1.SelStart _
        + RichTextBox1.SelLength + 1
        RichTextBox1.Find slovo, , Len(RichTextBox1)
        RichTextBox1.SelColor = clRed
        //до сюда
        End If
    Next i
    MsgBox res, vbInformation, "Слова, в которых согласных больше"

Последний раз редактировалось Maxs; 27.05.2009 в 17:03.
Maxs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц