![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.12.2010
Сообщений: 16
|
![]()
Определить количество слов в заданном предложении, заканчивающихся заданной буквой.. Помогите, буду очень признательна
|
![]() |
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]() Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Предложение в переменную, переменную в массив по пробелам (Split()), перебор - анализ буквы - счётчик.
Можно обойтись без переменной. Добавлю - посмотрел код Игоря - если использовать InputBox, то без переменной не получится.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 13.12.2010 в 01:12. |
![]() |
![]() |
![]() |
#4 | |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
![]()
Формула массива:
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 26.11.2006
Сообщений: 584
|
![]()
Еще вариант:
Последний раз редактировалось ZORRO2005; 13.12.2010 в 02:29. |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 16.05.2010
Сообщений: 1,249
|
![]()
Второй лучше
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
А мне больше нравится вариант от IgorGO. Только я бы добавил удаление "лишних" пробелов:
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 12.12.2010
Сообщений: 16
|
![]()
Благодарна за помощь, но мы не используем таких операторов и функций((( Вот пример похожей задачи. пробовала сделать по аналогии, но не получается(((
Предложением будем называть любой набор символов. «Слова» в предложении разделяются пробелом. Найти первое слово, начинающееся заданной буквой. Решение задачи основывается на поиске начала и конца «слова» в предложении. Используется следующий алгоритм: (i+1)-й – номер первой буквы «слова» - это когда (i+1)-й символ пробел, а i-й символ НЕ пробел; i-й – номер последней буквы «слова» - это когда i-й символ НЕ пробел, а (i+1)-й символ пробел. Private Sub CB_Res_Click() Dim R_Str As String, Res As String Dim Simb As String, rs As String Dim N_Let As Integer, i As Integer Dim k0 As Integer, k1 As Integer Dim Ok As Boolean ' =True- слово найдено, False - нет R_Str = TB_Str.Text R_Str = LTrim(R_Str) ' Убираем пробелы в начале строки R_Str = RTrim(R_Str) ' Убираем пробелы в конце строки N_Let = Len(R_Str) ' Длина строки Simb = TB_Simb.Text ' Буква для поиска Ok = Mid(R_Str, 1, 1) = Simb ' Это буква первого слова? If Ok Then k0 = 1 ' Если - да, то k0 = 1 Else ' Просматриваем предложение и ищем начало слова For i = 1 To N_Let - 1 If (Mid(R_Str, i, 1) = " ") And _ (Mid(R_Str, i + 1, 1) <> " ") Then ' Нашли начало слова rs = Mid(R_Str, i + 1, 1) ' выделяем первую букву слова Ok = rs = Simb ' Совпадение есть? If Ok Then ' Если - да, то k0 = i + 1 ' k0=i+1 - Номер буквы Exit For ' Выход из цикла End If End If Next i End If If Ok Then ' Если совпадение было, то ищем конец слова For i = k0 + 1 To N_Let - 1 If Mid(R_Str, i, 1) <> " " And _ Mid(R_Str, i + 1, 1) = " " Then ' Нашли конец слова k1 = i ' Номер буквы If Ok Then Exit For End If Next i End If If Ok Then If k1 = 0 Then k1 = N_Let ' т.е. это последнее слово Res = Mid(R_Str, k0, k1 - k0 + 1) TB_Res.Text = Res Else TB_Res.Text = "Нет такого слова" End If End Sub |
![]() |
![]() |
![]() |
#9 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
я пугаюсь таких длинных процедур...
Код:
если в предложении из примера посчитать слова, которые закончились на "и", таких слов окажется 1 - это слово и, хотя в преложении есть слова задачи и аналогии, которые строго говоря следовало бы засчитать как соответствующие.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 22.12.2010 в 02:24. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 472
|
![]()
пример через регулярные выражения. Текст в ячейке А1
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка строк | Тигран001 | Помощь студентам | 7 | 28.04.2010 23:42 |
Обработка строк | Тигран001 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 24.04.2010 11:34 |
Обработка строк | Vad56 | Помощь студентам | 1 | 03.12.2009 23:26 |
Обработка строк в C++ | defol-777 | Помощь студентам | 1 | 12.03.2009 18:10 |