ВУЗ:
Составители:
Рубрика:
{вводимого в очередь; age - возраст пациента}
function pospat(age:integer):elem;
var a,b:elem; {a - текущий элемент списка}
begin
a:=first;
while (a^.next <> nil) and (a^.age > age)
do begin
{организация движения по списку от элемента к следующему элементу}
b := a; a := a^.next
end;
if a^.age > age then pospat := a
else pospat := b
end;
{процедура inspat вводит элемент в очередь на}
{позицию, соответствующую возрасту пациента}
procedure inspat(pat:elem);
var a:elem; {a - текущий элемент списка}
begin
a:=first;
if pat^.age > 60
then if a^.age <= 60
{если возраст пациента больше60 лет и все пациенты в очереди }
{моложе 60 лет,
элемент становится первым в списке}
then begin
pat^.next := first; first := pat; exit end
{если возраст пациента больше 60 лет и не все пациенты в очереди }
{моложе 60 лет, позицию элемента определяется функцией pospat }
else a := pospat(60);
{если возраст пациента не превышает }
{60 лет, pospat ищет "хвост" очереди}
if pat^.age <= 60 then a := pospat(0);
pat^.next := a^.next; {переопределение ссылок}
a^.next := pat
end;
{процедура delpat удаляет элемент из очереди по имени nm пациента}
procedure delpat(nm:s_t_r);
var a,b:elem; {a - текущий элемент списка}
begin
a:=first;
while a <> nil do
if a^.fio = nm
then begin
if a = first
then begin
{удаление первого элемента}
first := a^.next;
{вводимого в очередь; age - возраст пациента}
function pospat(age:integer):elem;
var a,b:elem; {a - текущий элемент списка}
begin
a:=first;
while (a^.next <> nil) and (a^.age > age)
do begin
{организация движения по списку от элемента к следующему элементу}
b := a; a := a^.next
end;
if a^.age > age then pospat := a
else pospat := b
end;
{процедура inspat вводит элемент в очередь на}
{позицию, соответствующую возрасту пациента}
procedure inspat(pat:elem);
var a:elem; {a - текущий элемент списка}
begin
a:=first;
if pat^.age > 60
then if a^.age <= 60
{если возраст пациента больше60 лет и все пациенты в очереди }
{моложе 60 лет, элемент становится первым в списке}
then begin
pat^.next := first; first := pat; exit end
{если возраст пациента больше 60 лет и не все пациенты в очереди }
{моложе 60 лет, позицию элемента определяется функцией pospat }
else a := pospat(60);
{если возраст пациента не превышает }
{60 лет, pospat ищет "хвост" очереди}
if pat^.age <= 60 then a := pospat(0);
pat^.next := a^.next; {переопределение ссылок}
a^.next := pat
end;
{процедура delpat удаляет элемент из очереди по имени nm пациента}
procedure delpat(nm:s_t_r);
var a,b:elem; {a - текущий элемент списка}
begin
a:=first;
while a <> nil do
if a^.fio = nm
then begin
if a = first
then begin
{удаление первого элемента}
first := a^.next;
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »
