Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ текстовый файл

Автор: Frogs2009 20.06.2008 3:00

а)Дан файл, содержащий текст на русском языке. Определить, сколько раз встречается в нем самое длинное слово.
Алгоритм:
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 20.06.2008 4:21

blink.gif

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

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

Могу сделать за опр. сумму (в личку)