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

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

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

> Очередь. Линейные структуры данных, нужна процедура
ПухАчОк
сообщение 28.03.2006 20:35
Сообщение #1


Гость






Люди добрые!!! Помогите!!!!
Мне нужно написать процедуру, которая удаляет из непустого списка L за каждым вхождением элемента E один элемент, если такой есть и он отличен от E. Список L-- таблица(поля:номер,ФИО,год рождения,пол,семейное состояние,количество детей,оклад), элементы-- строки таблицы.
даю описание таблицы:

Type
rabotnik=record
number:integer;
FIO:string[15];
godroj:integer;
pol:char;
cem:string[15];
koldet:integer;
oklad:integer;
end;
rab=file of rabotnik;
Queryptr=^query;
query=record
inf:rabotnik;
next:Queryptr;
end;

Var
f:rab;
left,rigth,newe,temp:Queryptr;


Напишите,плиз, эту процеДУРУ!!!!! Оч надо, а то в универе выговор сделают!!!!!!!! mega_chok.gif unsure.gif
2. Все тексты программ должны помещаться в теги [ CODE ] [ /CODE ].
APAL
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 1)
virt
сообщение 31.03.2006 8:47
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

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


 function eq(z1,z2 : rabotnik) : boolean;
begin
...............//сам допиши
end;

procedure make_del(var queue : Queryptr);
var q1, q2 ,q3 : Queryptr;
i, n : integer;
begin
n := 0;
q1 := queue;
while q1 <> nil do
begin
n := n + 1;
q1 := q1^.next;
end;
q1 := queue;
i := 0;
while (i < n) and (q1 <> nil) do
begin
i := i + 1;
q2 := q1;
q3 := nil;
while (q2 <> nil) and eq (q2,q1) do begin q3 := q2;q2 := q2^.next;end;
if q2 = nil then
begin
queue := q1;
q1 := nil;
end else
begin
if q3 = nil then
begin
q3 := q1;
q1 := q1^.next;
dispose(q3);
end else
begin
q3^.next := q2^.next;
dispose(q2);
end;
end;
end;
end;


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

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

 



- Текстовая версия 24.06.2025 14:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"