В текстовом файле записаны слова. Определить, сколько раз встречается каждое слово и вывести в обратном порядке.
Прошу выслать код

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
avaness |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот задали такую задачку:
В текстовом файле записаны слова. Определить, сколько раз встречается каждое слово и вывести в обратном порядке. Прошу выслать код ![]() |
![]() ![]() |
avaness |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
успеть-то успел...
но прогу забраковал препод (типа - "не универсальная") Мне теперь нужно сделать прогу с помощью бинарных деревьев. Прога уже почти готова. Надо только дописать процедуры, чтобы слова выводились по частоте появления. Принцип таков: надо из одного дерева скопировать данные в другое, а потом в другом дереве изменить критерий вывода (cnt) и потом вывести на экран. Кто-нибудь в курсе – как это делать? Мне надо к утру завтрашнего дня. Код только надо чуть-чуть дописать, препод код, который я высылаю, посмотрел - всё нормально, только дописать надо процедурки. (прога должна быть в консоли) program durilka;
{$APPTYPE CONSOLE}
type Droot=^doot;
doot = record
cnt:integer;
inf:string;
next:droot;
end;
PRoot=^Root;
Root = record
cnt:integer;
inf:string;
Left:PRoot;
Right:PRoot;
end;
Procedure Add(var Root:Proot;i:string);
begin
if Root<>nil then
with Root^ do
begin
if inf<i then Add(Right,i)
else
if inf>i then Add(Left,i)
else
if inf=i then
Inc(cnt);
end
else
begin
{добавляем новый узел}
New(Root);
with Root^ do
begin
Inf:=i;
cnt:=1;
Left:=Nil;
Right:=Nil;
end
end
end; {end procedure add}
{ процедура печати элементов дерева в порядке убывания значения }
Procedure Print(P:Proot);
begin
if P<>Nil then with P^ do
begin
{ обход справа налево}
Print(left);
writeln(inf, '(', cnt, ')');
print(right);
end;
end;
Procedure Delete(R:PRoot);
begin
if R<>Nil then begin
Delete(R^.right);
Delete(R^.left);
DisPose(r)
end;
end;
{программа}
var F:text;
Filename:string;
inf:string;
c:Proot;
tree2:Droot;
{Count:integer;}
begin
//write('input filename - ');readln(Filename);
Assign(f,'f.txt');
{$I-} reset(f); {$I+}
if IOResult<>0 then
begin
writeln('error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
exit
end;
c:=Nil;
{заполняем дерево дв.поиска}
{write('Enter are word - ');
read(inf);
Count:=0;}
while not eof(f) do
begin
readln(f,inf);
Add(c,inf);
end;
{Writeln('Count');}
Close(f);
if c=Nil then
writeln('file is empty')
else
begin
writeln('####->4321->####');
Print(c);
//******
//tree:=nil;
writeln;
Delete(c);
end;
readln;
end.
Текстовый файл отдельно создавал. Его содержание: Цитата moloko student ogurec moloko salo salo Ну чё - кто-нибудь поможет мне? Сообщение отредактировано: volvo - |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата(avaness @ 8.06.2006 13:31) прогу забраковал препод (типа - "не универсальная") Мне теперь нужно сделать прогу с помощью бинарных деревьев. <...> Ну чё - кто-нибудь поможет мне? Ага... А завтра тебе твой препод скажет, что и это решение неуниверсально... Окажется, что надо через стеки реализовывать, например. Сейчас прям, будем десятки раз править... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 28.04.2025 15:19 |