Yorksik
1

Найти количество слов, у которых первый и последний символы совпадают между собой

10.12.2011, 22:22. Показов 2006. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята поправте код плз, чтото он у меня не работает. вот задача

Дана текстовая строка. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Найти количество слов, у которых первый и последний символы совпадают между собой.

Код

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Command1_Click()
Dim S As String
Dim S1 As String
Dim i As Byte
S = InputBox("Введите текст", "Ввод текста для обработки")
S = Len(S)
i = 0
Do While S > 0
    Trim (S)
    S1 = Left(S, InStr(S, " "))
    S = Right(S, S - S1)
        If Left(S1, 1) = Right(S1, 1) Then
        i = i + 1
        End If
Loop
Print i
End Sub
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2011, 22:22
Ответы с готовыми решениями:

Поменять местами первый и последний символы строки, а так же третий и десятый символы
Завтра экзамен по информатике, для допуска нужно сдать последнюю задачу, помогите пожалуйста ее...

Найти номера строк, элементы в каждой из которых одинаковы между собой.
Дан двумерный квадратный массив. Найти номера строк, элементы в каждой из которых одинаковы между...

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

Найти количество слов, у которых первый и последний символы совпадают между собой
Помогите пожалуйста написать программу, никак разобраться не могу(

4
Alex77
12.12.2011, 16:10 2
Попробуй сделать коментарии к коду
Visual Basic
1
2
3
4
5
6
7
8
9
S = InputBox("Введите текст", "Ввод текста для обработки") ' получили в переменую S исходную строку
 S = Len(S)' зачем-то заменили исходную строку на значение её длены в строковом формате
 i = 0' обнулили счётчик
 Do While S > 0' пока строка больше 0: S As String сравнивать строку с 0???
 Trim (S)' тут я не знаю что должно было сделаться
 S1 = Left(S, InStr(S, " "))' ищем пробел в числе в строково формате. Откуда он там может взяться?
потом если находим, берём какое-то количество символов. типа если вдруг число окажется "12 54"
возмём "12"(S1 As String)
 S = Right(S, S - S1)' здесь берем правые символы в количестве.. Даже трудно придумать каком.
Из одной строки вычитаем другую строку
Продолжишь сам?
Определись с переменными и типами данных
MadChildNSK
13.12.2011, 16:24 3
Уточню. Пример строки: "Это строка для обработки. Итоги."
Нужно чтобы программа выводила слова, у которых 1-й и последний символ одинаковы. Из приведённой выше строки получим только слово "ИТОГИ".
Я всё верно понял?
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
03.03.2012, 19:22 4
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Compare Text
Sub Command1_Click()
 Dim s As Variant, kol As Integer
 
 
  For Each s In Split(Replace(InputBox("Введите текст", _
                      "Ввод текста для обработки", _
                      "Это строка для обработко. Итоги."), _
                                                  ".", " "))
    If Left(s, 1) = Right(s, 1) And Len(s) > 1 Then
      Print s: kol = kol + 1
    End If
  Next s
  
  Print
  Print "Kоличество слов, у которых первый и последний " & vbCrLf _
        & "символы совпадают между собой = "; kol
End Sub
0
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
07.03.2012, 16:07 5

Не по теме:

почему-то цитирование не работает


>>Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами

так что слово Итоги выводиться не должно, так как после него следует точка, а не пробел
вот, правильно работает
Visual Basic
1
2
3
4
5
6
s = "оргазм маразм маг\хам мука апельсин никон нога Алма-Ата аватар радар развод доход?"
    With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
        .Pattern = "(?:^|\s)([А-ЯЁ]).*?\1(?=\s|$)"
        Set ms = .Execute(s)
        MsgBox ms.Count
    End With
Добавлено через 11 часов 50 минут
и начинаться может не с буквы. тогда так
Visual Basic
1
2
3
4
5
6
s = "<TAG>  îðãàçì ìàðàçì ìàã\õàì ìóêà àïåëüñèí íèêîí íîãà Àëìà-Àòà àâàòàð ðàäàð ðàçâîä äîõîä?   </TAG>"
    With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
        .Pattern = "(?:^|\s)(\S).*?\1(?=\s|$)"
        Set ms = .Execute(s)
        MsgBox ms.Count
    End With
0
07.03.2012, 16:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2012, 16:07
Помогаю со студенческими работами здесь

Найти количество слов, у которых первый и последний символы совпадают между собой
Дана строка длиной не более 255 символов. Строка содержит слова, разделенные между собой пробелами....

Найти количество слов, у которых первый и последний символы совпадают между собой
Даны натуральное число n, символы s1, …, sn. Группы символов, разделенные пробелами (одним или...

Найти количество слов, у которых первый и последний символы совпадают между собой
Дан текст. а) Найти количество слов, начинающихся с буквы б; б) Найти количество слов, у которых...

Найти количество слов, у которых первый и последний символы совпадают между собой.
Даны натуральное число n, символы s1,...,sn. Группы символов, разделенные пробелами (одним или...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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