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
 К началу страницы 
+ Ответить 
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

 

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