![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Florensita |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 1 Регистрация: 14.5.2007 Город: Нижний Новгород Учебное заведение: ННГУ Вы: студент ![]() |
Слушайте, народ, реально очень-очень поможете, если напишите ну если не решение, то хотя бы как специальным образом и каким обрабатывать звездочку. В звездочке кстати вся и проблема, это уже не просто поиск в тексте.
Задан текст, состоящий из нескольких строк, каждая из которых в свою очередь состоит из слов, разделенных пробелами. Подсчитать количество слов в тексте, совпадающих с заданным ключевым словом. При проверке совпадения слов символ «*»(звездочка) в начале или в конце слова обрабатывать специальным образом: считать его признаком того, что в проверяемом слове на этом месте может находится непустая последовательность произвольной длины, состоящая из любых символов, кроме пробела. Можно считать, что символ «*» в ключевом слове встречается 1 раз. Например: Ключевое слово «кор*» будет совпадать со словами «корпус», «корабль» и т.п. или слову «корпус» могут соответствовать ключевые слова «*пус», «корп*» и т.п. Случай включения ключевого слова можно не рассматривать(т. е. ключ «прав*» не соответствует слову «управление») Заранее спасибо. (IMG:style_emoticons/default/smile.gif) |
AlexDemche |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 83 Регистрация: 18.3.2007 Город: Казань Учебное заведение: Казанский Государственный Университет Вы: преподаватель ![]() |
Ну а Вы сами думали над этой самой звездочкой? Какие идеи?
|
Ботаник |
![]()
Сообщение
#3
|
Аспирант ![]() ![]() ![]() Группа: Активисты Сообщений: 414 Регистрация: 1.3.2007 Город: Люберцы Вы: другое ![]() |
Звёздочку можно обрабатывать так:
Sub main() Dim ИсходныйТекст As String Dim Ключ As String Dim ЗвёздочкаВпереди As Boolean Dim ЗвёздочкаСзади As Boolean Dim i As Integer, j As Integer, k As Integer Const Пробел = " " Debug.Print "---" ИсходныйТекст = "Корабль с коркой плыл корпусом по морю субкорпускул" 'Добавляю пробелы в начало и в конец ИсходныйТекст = Пробел & ИсходныйТекст & Пробел Ключ = "кор*" If (Left(Ключ, 1) = "*") Then ЗвёздочкаВпереди = True 'Убираю звёздочку из ключа и добавляю пробел Ключ = Right(Ключ, Len(Ключ) - 1) & Пробел ElseIf (Right(Ключ, 1) = "*") Then ЗвёздочкаСзади = True 'Убираю звёздочку из ключа и добавляю пробел Ключ = Пробел & Left(Ключ, Len(Ключ) - 1) End If i = 1 Do 'Ищу строку ключа в тексте j = InStr(i, ИсходныйТекст, Ключ) If (j = 0) Then Exit Do If (ЗвёздочкаСзади) Then 'Искать пробел правее ключа k = InStr(j + 1, ИсходныйТекст, Пробел) Debug.Print Mid(ИсходныйТекст, j, k - j) End If If (ЗвёздочкаВпереди) Then 'Искать пробел левее ключа For k = j - 1 To 1 Step -1 If (Mid(ИсходныйТекст, k, 1) = Пробел) Then Exit For Next k If (k < 1) Then k = 1 Debug.Print Mid(ИсходныйТекст, k + 1, j - k + 1) End If i = j + 1 Loop End Sub Для ключа "*л" программа выдаёт: --- плыл субкорпускул Для ключа "кор*" программа выдаёт: --- Корабль коркой корпусом Ха! Какой прикольный номер у моего сообщения: раз-два-три |
Diablo |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 1 Регистрация: 11.9.2007 Город: Фрязино Учебное заведение: МГУЛ Вы: студент ![]() |
Помогите написать в паскале курсовик плиз
задача звучит так: Написать простейший текстовой редактор. зы: зарание благодарен |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 16:37 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru