Помощь - Поиск - Пользователи - Календарь
Полная версия: текстовый файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
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. закрываем файл, и выводим результат на экран.

Алгоритм есть,а ка делать не пойму
Sozialist
blink.gif

Алгоритм подробнейший. "а ка делать не пойму"-?? Синтаксиса не знаешь? Что за вопрос..
Сохранять слова можно в массив записей:

type
Tws=record
word:string;
count:integer;
end;
Var
Mws:array [0..0] of TWS;

Могу сделать за опр. сумму (в личку)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.