Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с текстовым файлом+динамические списки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
TrindelSev
Буду очень признателен за помощ в решении следующущей задачи:

Дан текстовый файл. Построить динамический список по всем словам из файла. Вычислить среднюю длину слова. Создать два новых списка: в одним слова с длиной меньше средней, в другом слова с длинной большей средней. Оба списка вывести в текстовый файл out1.txt, out2.txt
Гость
Это то, для красоты сделано: Все о динамических структурах данных -> Списки ?

а вот это:
FAQ: Файлы ?

Где именно проблема?
TrindelSev
Проблема в нахождении средней длины слов, точнее в програмной реализации этой процедуры.
volvo
Пробегаешь по всему списку (точный код - зависит от реализации списка, примерно - вот такsmile.gif

average := 0;
s_len := 0; n := 0;
p := list_head; { указатель на "голову" списка }
while p <> nil do begin
inc(n);
inc(s_len, length(p^.data));
p := p^.next;
end;
if n <> 0 then
average := s_len / n; { вот тебе средняя длина строки... }

Естественно, что элементами списка должны быть строки...
TrindelSev
2volvo:
Огромное спасибо, это то что нужно good.gif .

Еще один вопрос:
Как построить динамический список по словам находящимся в файле?
volvo
Разбиение на слова. Все способы.

Это как раз со списком... Читаешь файл построчно и запускаешь для каждой строки GetWords... Можно еще проверять при внесении очередного слова, чтобы его не было в списке (если слова в списке не должны повторяться...)
TrindelSev
Задачу я решил, всем спасибо, отдельная благодарность volvo good.gif за предоставленную помощь...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.