Задача с текстовым файлом

Алгоритмы: от сортировки пузырьком до численных методов

Модераторы: C_O_D_E, DeeJayC

Ответить
PetrovVasya
Сообщения: 2
Зарегистрирован: 27 апр 2009, 14:36

Добрый день, помогите с алгоритмом. вот задача:
Дан текстовый файл. Длина строк произвольна. Слова в строках отделены друг от друга одним или несколькими пробелами. Длина слова не более 100 символов. подсчитать количество слов в файле, состоящих только из русских букв(больших и маленьких). Спасибо
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Однопроходный алгоритм.

Код: Выделить всё

Определяем флаг: Rus = true
Счетчик длины слова. L=0
И счетчик слов W=0
Добавляем к строке терминальный пробел (чтобы избавить алгоритм от "особых" условий на границе строки).

Дальше пробегаем по строке в цикле и для каждого i-го символа проверяем:{
  Если пробел, то {
    если (Rus) and (L>0), то W=W+1
    обнуляем счетчик длины  (L=0)
    Rus=true
  } иначе {
     Rus = Rus AND (буква является русской)   //проверяем принадлежность 
     //символа к русским буквам и если нет,то Rus становится false
  }
}

По завершении цикла W - количество "русских" слов.

Флаг Rus становится false для слов, в которых есть хоть одна буква, не принадлежащая мноржеству русских букв. В результате такое слово не будет посчитано.

Если несколько пробелов идут подряд, то L=0 и такое "пустое" слово тоде не будет посчитано.
disappear
Сообщения: 4
Зарегистрирован: 03 дек 2006, 01:04

Реализация нужна?
PetrovVasya
Сообщения: 2
Зарегистрирован: 27 апр 2009, 14:36

как то не очень получается у меня, на паскале пишу, так что не помешает :o
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Так, то что я написал не подходит?
disappear
Сообщения: 4
Зарегистрирован: 03 дек 2006, 01:04

PetrovVasya писал(а):как то не очень получается у меня, на паскале пишу, так что не помешает :o
Ну, у меня не совсем на паскале, а на java ;) но зато в нескольких вариантах, втч реализация алгоритма предложенного Naeel (он, кстати, самый эффективный по времени). Все работает, протестировано на примерах и изобилует комментариями. Так что если жаба устроит - скину.
Ответить