и находятся во входном файле.
Что -то я никак не могу сообразить.

Сообщение отредактировано: Bandit -
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Bandit |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Задача состоит в чтении некоторого текста, выборе из него слов и подсчете частоты их появления, то есть, в составлении частотного словаря. Для чего нужно составить список слов, найденных в тексте. Каждое очередное слово, прочитанное в тексте, ищется в списке. Если слово найдено, то счетчик его частоты увеличивается, в противном случае слово добавляется к списку.Предполагается, что слова уже выделены из исследуемого текста
и находятся во входном файле. Что -то я никак не могу сообразить. ![]() Сообщение отредактировано: Bandit - |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
1. Объясни мне, неучу, что такое ЛОС. Честно искал в словарях и просто в Яндексе, не нашел ничего подходящего..
![]() 2. Текст на каком языке? На русском? Тогда как ты собираешься поступать с различными формами слова? разные окончания, суффиксы, приставки.. Или это не есть реальный текст, а просто набор слов, и о таких вещах беспокоиться не нужно? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
1. Объясни мне, неучу, что такое ЛОС. Честно искал в словарях и просто в Яндексе, не нашел ничего подходящего.. ![]() 2. Текст на каком языке? На русском? Тогда как ты собираешься поступать с различными формами слова? разные окончания, суффиксы, приставки.. Или это не есть реальный текст, а просто набор слов, и о таких вещах беспокоиться не нужно? ЛОС- Линейный Односвязный Список. Слова скорее всего любые. Должно быть 100% совпадение. Я думаю здесь лучше тип String использовать. |
Bandit |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
ЛОС- Линейный Односвязный Список. Слова скорее всего любые. Должно быть 100% совпадение. Я думаю здесь лучше тип String использовать. Я первый раз забыл на форум зайти. ![]() Сообщение отредактировано: Bandit - |
Bandit |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Type
te=string;
pe=^el;
el=Record
inf:te;
next:pe
end;
Var sag,p,q,sag2:pe;
n,i,j:integer;
procedure COPY (sag:pe; Var sag2:pe); //Копирование списка sag в список sag2
begin
if sag=nil then sag2:=nil
else begin
new (sag2);
sag2^.inf:=sag^.inf;
COPY (sag^.next, sag2^.next)
end;
end;
procedure PRINT (sag:pe);// вывод на экран
Var q:pe;
begin
q:=sag^.next;
while q<>nil do
begin write (q^.inf, ' ');
q:=q^.next
end;
end;
{--------------------------------------------------------------------------------}
begin
New (sag);
sag^.next:=Nil;
p:=sag;
writeln ('Zadayte kol-vo elementov LOS');
readln (n);
For i:=1 to n do
Begin
New (q);
Writeln ('Vvedite zna4 o4erednogo elementa:');
readln (q^.inf);
p^.next:=q; p:=q;
end;
q^.next:=Nil;//Ввод ЛОСа
PRINT (sag);
COPY (sag, sag2);
PRINT (sag2);
writeln;
writeln ('Lx');
PRINT (sag);
readln;
end.
Написал вот как вводить Список и вывести его. Мне для этой задачи как я понял нужно при вводе слова или символа его нужно искать в списке. Если его там нет, добавить к списку, а если есть повысить счётчик данного слова/символа. Вот у меня вопрос: как реализовать счетчик у каждого символа, и что б к ним ещё можно было потом обратится для увеличения счётчика. Для этого, что нужно создать ещё один Список, или тут чем-то другим можно обойтись? Сообщение отредактировано: Bandit - |
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
разберешься ?
type
PTListElem = ^TListElem;
TListElem = record
data: String;
count: Integer;
next: PTLIstElem
end;
PTList = ^TList;
TList = object
head, last: PTListElem;
constructor Create;
destructor Free;
function Empty: Boolean;
procedure Push(const value: String);
procedure Pop(var value: TListElem);
procedure PrintList;
end;
constructor TList.Create;
begin
head := nil;
last := nil;
end;
destructor TList.Free;
var
T: PTListElem;
begin
while not Empty do begin
T := head;
head := head^.next;
dispose(T);
end;
end;
function TList.Empty: Boolean;
begin
Empty := head = nil;
end;
procedure TList.Pop(var value: TListElem);
var
T: PTListElem;
begin
if not Empty then begin
T := head;
head := head^.next;
value := T^;
dispose(T);
end;
end;
procedure TList.Push(const value: String);
var
R, first: PTListElem;
begin
first := head;
while (head <> nil) and (head^.data <> value) do
head := head^.next;
if head <> nil then begin
inc(head^.count);
head := first;
end else begin
new(r);
R^.data := value;
R^.count := 1;
R^.next := nil;
head := first;
if Empty then begin
head := R;
last := head;
end else begin
last^.next := R;
last := R;
end;
end;
end;
procedure TList.PrintList;
var
T: TListElem;
begin
while not Empty do begin
Pop(T);
writeln(T.data, ': ', T.count);
end;
end;
var
list: PTList;
begin
new(list, Create);
list^.Push('asd');
list^.Push('asd');
list^.Push('123');
list^.Push('qwerty');
list^.Push('asd');
list^.Push('123');
list^.Push('poiuytrewq');
list^.Push('asd');
list^.PrintList;
dispose(list, Free);
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Bandit |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Спасибо, попробую разобраться.
![]() Эта ошибка как я заметил, появляется в крупных программах. ![]() Сообщение отредактировано: Bandit - Прикрепленные файлы ![]() |
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
ну это явно не Паскалевский еррор ... В Паскале 105 - я ошибка связана с использованием inline вроде ... Какой у тебя компилятор ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Если в Runtime - "File not open for output"
Особенно актуально при запуске на Дельфи неконсольного приложения, и попытке выполнить WriteLn ![]() |
Bandit |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
У меня Delphi 7. Прогу пишу в Console Application.
Сообщение отредактировано: Bandit - |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Тогда проверь наличие директивы {$APPTYPE CONSOLE}, потому что с ней ошибки не возникает, а вот без нее - очень даже...
|
Lapp |
![]()
Сообщение
#12
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
У меня Delphi 7. Прогу пишу в Console Application.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Bandit |
![]()
Сообщение
#13
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Спасибо!!!
![]() ![]() Прошу прощения, что не в том разделе форума тему создал. Но ведь консоль Делфи, это ж Турбо Паскаль. |
Lapp |
![]()
Сообщение
#14
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Прошу прощения, что не в том разделе форума тему создал. Но ведь консоль Делфи, это ж Турбо Паскаль. Да?.. Ну, тогда вставляй эту строчку во все ТР-программы и ни в коем случае не выбрасывай! ![]() Тема, может, и в том разделе, если ты касаешься только того, что совместимо с ТР. Но вопрос про ошибку - уже не в том. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 21.04.2025 17:04 |