Добрый день, помогите с алгоритмом. вот задача:
Дан текстовый файл. Длина строк произвольна. Слова в строках отделены друг от друга одним или несколькими пробелами. Длина слова не более 100 символов. подсчитать количество слов в файле, состоящих только из русских букв(больших и маленьких). Спасибо
Задача с текстовым файлом
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Однопроходный алгоритм.
Флаг Rus становится false для слов, в которых есть хоть одна буква, не принадлежащая мноржеству русских букв. В результате такое слово не будет посчитано.
Если несколько пробелов идут подряд, то L=0 и такое "пустое" слово тоде не будет посчитано.
Код: Выделить всё
Определяем флаг: Rus = true
Счетчик длины слова. L=0
И счетчик слов W=0
Добавляем к строке терминальный пробел (чтобы избавить алгоритм от "особых" условий на границе строки).
Дальше пробегаем по строке в цикле и для каждого i-го символа проверяем:{
Если пробел, то {
если (Rus) and (L>0), то W=W+1
обнуляем счетчик длины (L=0)
Rus=true
} иначе {
Rus = Rus AND (буква является русской) //проверяем принадлежность
//символа к русским буквам и если нет,то Rus становится false
}
}
По завершении цикла W - количество "русских" слов.
Если несколько пробелов идут подряд, то L=0 и такое "пустое" слово тоде не будет посчитано.
-
- Сообщения: 2
- Зарегистрирован: 27 апр 2009, 14:36
как то не очень получается у меня, на паскале пишу, так что не помешает 

- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Так, то что я написал не подходит?
Ну, у меня не совсем на паскале, а на javaPetrovVasya писал(а):как то не очень получается у меня, на паскале пишу, так что не помешает![]()
