F
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. закрываем файл, и выводим результат на экран.
помогите составить программу, алгоритм сделал, а на составление мозгов не хватает, заранее спасибо!!
алгоритм:
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. закрываем файл, и выводим результат на экран.
помогите составить программу, алгоритм сделал, а на составление мозгов не хватает, заранее спасибо!!