Страница 1 из 1

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

Добавлено: 27 апр 2009, 14:38
PetrovVasya
Добрый день, помогите с алгоритмом. вот задача:
Дан текстовый файл. Длина строк произвольна. Слова в строках отделены друг от друга одним или несколькими пробелами. Длина слова не более 100 символов. подсчитать количество слов в файле, состоящих только из русских букв(больших и маленьких). Спасибо

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

Добавлено: 27 апр 2009, 19:17
Naeel Maqsudov
Однопроходный алгоритм.

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

Определяем флаг: 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 и такое "пустое" слово тоде не будет посчитано.

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

Добавлено: 30 апр 2009, 01:23
disappear
Реализация нужна?

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

Добавлено: 02 май 2009, 12:39
PetrovVasya
как то не очень получается у меня, на паскале пишу, так что не помешает :o

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

Добавлено: 02 май 2009, 22:59
Naeel Maqsudov
Так, то что я написал не подходит?

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

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