Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 8
1

Определение количества гласных и согласных в написанной фразе

26.12.2013, 01:50. Показов 3328. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Текст задачи: "Создать программу - Определение количества гласных и согласных в написанной фразе".
Там есть один пункт, а именно: показывать гласные и согласные в процессе ввода.
Как это можно реализовать?
Я пока придумал только при вводе фразы окрашивать каждую букву в соответствующий цвет, например, гласные - красный, согласные - синий. Но не знаю, как это реализовать. Возможно, может кто-нибудь подсказать?
Или подсказать другое решение поставленного вопроса?
Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2013, 01:50
Ответы с готовыми решениями:

Гласных, согласных букв смотря который из них больше поменять символом @
гласных, согласных букв смотря который из них больше поменять символом @, в предложении введенном в...

Дан произвольный русский текст. Проверить каких букв в нем больше: гласных или согласных
Дан произвольный русский текст. Проверить каких букв в нем больше: гласных или согласных. При...

Дан произвольный русский текст. Проверить каких букв в нем больше: гласных или согласных
Помогите , чего то тут не хватает , повторяющие буквы не считает.. исправьте пожалуйста Dim...

Вывод количества гласных и согласных
Не получается сделать прогу, задание следующие: вывести количество гласных и согласных, а так же...

14
Заблокирован
26.12.2013, 07:37 2
Цитата Сообщение от Neofast Посмотреть сообщение
при вводе фразы окрашивать каждую букву в соответствующий цвет
Это интересный подход, но черезчур мудреный (тут или RichTextBox надо изучить, или в VBA лезть, или в дебри API ...)
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
26.12.2013, 08:05 3
Лучший ответ Сообщение было отмечено как решение

Решение

В принципе ничего мудрёного:
не уверен, что буквы все в константах
Visual Basic
1
2
3
4
5
6
7
8
Const G = "аеёийоуэюя"
Const S = "бвгджзклмнпрстфхцч"
 
Private Sub RichTextBox1_Change()
T = RichTextBox1.Text: i = Len(RichTextBox1.Text) - 1: RichTextBox1.SelStart = i: RichTextBox1.SelLength = 1
RichTextBox1.SelColor = IIf(InStr(1, G, Mid(T, i + 1, 1)), RGB(255, 0, 0), IIf(InStr(1, S, Mid(T, i + 1, 1)), RGB(0, 0, 255), RGB(0, 255, 0)))
RichTextBox1.SelStart = i + 1
End Sub
3
Заблокирован
26.12.2013, 08:11 4
Так, наверно -
Visual Basic
1
Const S = "бвгджзйклмнпрстфхцчшщ"
и ещё ь и ъ знаки во что-то покрасить?
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
26.12.2013, 08:12 5
Лучше добавить
Visual Basic
1
Option Compare Text
Добавлено через 37 секунд
Всё, что не в строках красится в зелёный
0
Заблокирован
26.12.2013, 08:13 6
Вот ещё поправочка - Const G = "аеёиыоуэюя"
1
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
26.12.2013, 08:17 7
Да и й под вопросом.
а также полугласный (или полусогласный) й.
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
26.12.2013, 08:23 8
Надо делать в KeyDown процедуру. Не факт что пользователь вводит в конец текст, также нельзя исключать вставку из буфера.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
26.12.2013, 08:35 9
Это уже пусть ТС решает
Первый вариант у меня был проверка всего текста в цикле посимвольно.
Там и вставка обрабатывалась.
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
26.12.2013, 08:56 10
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
Option Compare Text
 
Const G = "[аеёиыоуэюя]"
Const S = "[бвгджзйклмнпрстфхцчшщ]"
 
Private Sub rtb_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 86 And Shift = 2 Then KeyCode = 0: rtb_KeyPress 22
End Sub
Private Sub rtb_KeyPress(KeyAscii As Integer)
    Dim c As String, i As Long
    If KeyAscii = 22 Then
        c = Clipboard.GetText(vbCFText)
        For i = 1 To Len(c)
            SelColor Mid$(c, i, 1)
            rtb.SelText = Mid$(c, i, 1)
        Next
        Exit Sub
    End If
    c = Chr$(KeyAscii)
    SelColor c
End Sub
Private Sub SelColor(c As String)
    Select Case True
    Case c Like G: rtb.SelColor = vbRed
    Case c Like S: rtb.SelColor = vbBlue
    Case Else: rtb.SelColor = vbBlack
    End Select
End Sub
2
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 8
26.12.2013, 14:20  [ТС] 11
Спасибо всем огромное за участие!
Скажите, а можно реализовать такой механизм: создать два label для отображения гласных/согласных соответственно, и во время ввода вводимые символы будут фигурировать в этих label?
То есть, ввожу я, например, мама, и у меня в лэйбле для согласных сначала появляется "М", потом в лэйбле для гласных "А", потом снова "М" в лэйбле для согласных и так далее.
Просто не уверен, что примут работу с использованием RichTextBox.
Всем еще раз огромное спасибо за участие
0
Заблокирован
26.12.2013, 15:09 12
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
Private Sub Text1_Change()
Const G = "аеёиыоуэюя"
Const S = "бвгджзйклмнпрстфхцчшщ"
Dim I As Long
Label1 = "": Label2 = ""
For I = 1 To Len(Text1)
  If InStr(1, G, Mid$(Text1, I, 1), vbTextCompare) Then
    Label1 = Label1 & Mid$(Text1, I, 1)
  ElseIf InStr(1, S, Mid$(Text1, I, 1), vbTextCompare) Then
    Label2 = Label2 & Mid$(Text1, I, 1)
  End If
Next I
End Sub
Миниатюры
Определение количества гласных и согласных в написанной фразе  
2
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 8
26.12.2013, 15:49  [ТС] 13
Апострофф, спасибо огромное!
0
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 8
11.01.2014, 19:29  [ТС] 14
Добрый вечер, Форумчане.

В задаче нужно по введенной фразе вычислить количество гласных и согласных. То есть, если строка ввода и два Label, в которых должны отображаться некоторые числовые значения.

Прошу помощи, у самого не получается сделать.

Спасибо.
0
Заблокирован
12.01.2014, 08:31 15
Найди два отличия -
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Text1_Change()
Const G = "аеёиыоуэюя"
Const S = "бвгджзйклмнпрстфхцчшщ"
Dim I As Long
Label1 = 0: Label2 = 0
For I = 1 To Len(Text1)
  If InStr(1, G, Mid$(Text1, I, 1), vbTextCompare) Then
    Label1 = Label1 +1
  ElseIf InStr(1, S, Mid$(Text1, I, 1), vbTextCompare) Then
    Label2 = Label2+1
  End If
Next I
End Sub
0
12.01.2014, 08:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2014, 08:31
Помогаю со студенческими работами здесь

Определение гласных и согласных букв
добрый вечер, вы не могли бы помогти с ошибкой, когда вводим любую букву выводит( согласна...

Подсчет количества гласных и согласных в предложении
#include <iostream> #include <string> using namespace std; int main() { string...

Подсчет количества гласных и согласных (исправить код)
Ребят, помоги исправить код. Код написан в классах, суть кода(подсчитывает количество гласных и...

Проверить на содержание одинакового количества гласных и согласных букв
Вводятся слова построчно. Проверить на содержание одинакового количества гласных и согласных букв...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru