текстовые файлы

Тема в разделе "Delphi - FAQ", создана пользователем Frogs2009, 18 июн 2008.

  1. Frogs2009

    Frogs2009 Гость

    Дан файл, содержащий текст на русском языке. Определить, сколько раз встречается в нем самое длинное слово.
    алгоритм:
    1. Открываем файл [Assign(), ReSet() ]
    2. Читаем его While Not Eof(File) Do ReadLn(File,S);
    3. Каждую прочитанную строчку (S) разбиваем на слова. Можно даже внутри предыдущего цикла. Критерием разбива наверное будет служить пробельный символ ' ' (#32)
    4. Каждое получившееся слово сохраняем для дальнейшей работы с ним, но предварительно ищим в уже "существующих" (сохраненных ранее) словах на предмет его уже "встречаемости", ну что б не повтиряться. И если совпадение было найдено - увеличиваем счетчик для этого слова на 1. Если же нет - то сохраняем в новой ячейке.
    5. После выхода из цикла (пункт 2) мы достигнем конца файла, заодно будем иметь список слов, которые были в файле с указанием их количества. Осталось только выяснить какое из них самое длинное.
    6. Для этого используем обычный цикл
    For I:=1 To Скока-там-слов-насчиталось Do
    If Length(Текущее_слово)>Max_length Then Begin
    Max_length:=Length(Текущее_слово);
    Номер-Самого-Длинного-Слова := I
    End

    7. После этого у нас все есть - номер самого длинного слова, само слово, и количество его повторений.
    8. закрываем файл, и выводим результат на экран.
    помогите составить программу, алгоритм сделал, а на составление мозгов не хватает, заранее спасибо!!
     
  2. astronom

    astronom Гость

    А не легче сразу при считывании каждого отдельного слова, выяснять, является ли оно самым длинным? Просто запоминать сразу все слова текстового файла в памяти - это как-то прожорливо получается для ресурсов. :)
    Например так:
    1. Считать слово.
    2. Определить длину слова.
    3. Если это слово длиннее ранее запомненного (т.е. того, которое ранее считалось самым длинным), то сбросить счетчик до единицы, запомнить текущее слово, как самое длинное, запомнить его длину.
    Иначе, если длины слов совпадают, то проверить слова на соответствие друг другу. Если слова совпадают, увеличить счетчик, если нет - создать новый, для второго слова. Иначе, перейти к следующему слову.
     
Загрузка...
Похожие Темы - текстовые файлы
  1. lmike
    Ответов:
    27
    Просмотров:
    296
  2. garrick
    Ответов:
    25
    Просмотров:
    664
  3. sgfsdg
    Ответов:
    1
    Просмотров:
    431
  4. vovanabali
    Ответов:
    0
    Просмотров:
    539
  5. anatoliygorbunov
    Ответов:
    1
    Просмотров:
    772

Поделиться этой страницей