IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> ОДнонаправленные линейные списки, удалить из файла 1 слова, встречающиеся в файле 2
сообщение
Сообщение #1


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Текст программы приведен ниже. Не могу понять, в чем моя ошибка. Вроде бы первая процедура составляет список1 из первого файла, вторая процедура составляет список2 из второго файла, третья процедура собственно проверяет есть ли в списке 1 слова из списка 2 и если есть, удаляет их. А четвёртая процедура выводит изменённый список 1 в выходной файл.
Если кто заметил ошибку, подскажите пожалуйста где она, может я не правильно передаю параметры при заходе в третью процедуру?


Type
next=^elem;
Elem=RECORD
EL:string;
Sled:next;
END;
VAR
head,head2:next;

Procedure p1(var p:next);
var
m:next;
F1:text;
BEGIN
Assign(f1,'dan.inp');
Reset(f1);
Assign(output,'res.out');
Rewrite(output);
New(m);
New(m^.sled);
p:=m;
Readln(f1, m^.el);
m^.sled:=nil;
while not EOF(f1) do
begin
New(m^.sled);
m:=m^.sled;
Readln(f1, m^.el);
m^.sled:=nil;
End;
Close(f1);
end;

Procedure p2(var p:next);
var
m:next;
F1:text;
BEGIN
Assign(f1,'dan1.inp');
Reset(f1);
New(m);
New(m^.sled);
p:=m;
Readln(f1, m^.el);
m^.sled:=nil;
while not EOF(f1) do
begin
New(m^.sled);
m:=m^.sled;
Readln(f1, m^.el);
m^.sled:=nil;
End;
Close(f1);
end;

procedure p3(var uk,d2:next);
var pp,df,q:next;
Begin
pp:=uk;
While pp^.sled<>NIL do
BEGIN
df:=d2;
While df^.sled<>NIL do
Begin
If pp=df then
Begin
q:=pp^.sled^.sled;
Dispose(pp^.sled);
pp^.sled:=q;
end;
df:=df^.sled;
end;
pp:=pp^.sled;
end;
END;

procedure p4(var dr:next);
var dt:next;
Begin
writeln('=======REZULTAT=======');
dt:=dr;
While dt<>NIL do
Begin
Writeln(dt^.el);
dt:=dt^.sled;
End;
close(output);
end;

BEGIN
p1(head);
p2(head2);
p3(head,head2);
p4(head);
END.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Тёмный Эльф   ОДнонаправленные линейные списки   22.12.2006 4:33
volvo   Сразу вопрос на засыпку: в чем, собственно, разниц…   22.12.2006 4:41
Тёмный Эльф   Да, я так для начала и сделал. Но если честно моро…   22.12.2006 5:05
volvo   If pp=df then... Вот кстати об этом условии я и хо…   22.12.2006 5:09
Тёмный Эльф   А ведь и правда! Здесь я сглупил! Теперь …   22.12.2006 5:14
volvo   :yes2: Во-первых, ты не идешь до конца списка, а …   22.12.2006 5:33
Тёмный Эльф   Точняк! Впредь буду более внимателен. Спасиб…   22.12.2006 5:43
Тёмный Эльф   А кстати, программа почему-то не хочет удалять пос…   22.12.2006 6:03
volvo   "Последний элемент" - это тот, PP, для к…   22.12.2006 6:15
Тёмный Эльф   Не знаю..не идет.. Может пустить счетчик? И пото…   22.12.2006 7:17
volvo   Так тоже не идет? procedure p3(var uk,d2:next); va…   22.12.2006 7:46
Тёмный Эльф   :nea: Ну да. Он все-равно в этом мест…   22.12.2006 8:01
volvo   "Не верю !!!" (С) ... Толь…   22.12.2006 8:20
Тёмный Эльф   Ну я бы не стал врать! На самом деле не шло…   22.12.2006 8:32


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 18:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name