ВУЗ:
Составители:
Рубрика:
{вводимого в очередь; 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
- …
- следующая ›
- последняя »