Здравствуйте, помогите пожалуйста с со второй частью задания!
Процедуру, которая вставляет в непустой список L пару новых элементов E1 и E2 перед его последним элементом.
Код:
program DemoQuery;
uses crt;
type
data=record
FIO:string[15];
god_rozh:integer;
pol:string[10];
ss:string[15];
deti:integer;
oklad:string[30];
end;
ukaz=^Query;
Query=record
inf:data;
next:ukaz;
end;
var E1,E2,NewE,left,right,temp:ukaz;
l:data;
key:char;
procedure org;
begin
writeln('Выполняется процедура организации');
writeln('Для выхода из процедуры нажмите *');
writeln('=========================================');
writeln('Введите ФИО');
readln(l.FIO);
writeln('Введите год рождения');
readln(l.god_rozh);
writeln('Введите пол');
readln(l.pol);
writeln('Введите семейное состояние');
readln(l.ss);
writeln('Введите кол-во детей');
readln(l.deti);
writeln('Введите оклад ');
readln(l.oklad);
if l.FIO='*' then exit;
new(NewE);
NewE^.Inf.FIO:=l.FIO;
NewE^.Inf.god_rozh:=l.god_rozh;
NewE^.Inf.pol:=l.pol;
NewE^.Inf.ss:=l.ss;
NewE^.Inf.deti:=l.deti;
NewE^.Inf.oklad:=l.oklad;
NewE^.Next:=nil;
right:=NewE;
left:=NewE;
while true do begin
writeln('Введите ФИО');
readln(l.FIO);
writeln('Введите год');
readln(l.god_rozh);
writeln('Введите пол');
readln(l.pol);
writeln('Введите Семейное состояние');
readln(l.ss);
writeln('Введите кол-во детей');
readln(l.deti);
writeln('Введите оклад');
readln(l.oklad);
if l.FIO='*' then exit;
new(NewE);
NewE^.Inf.FIO:=l.FIO;
NewE^.Inf.god_rozh:=l.god_rozh;
NewE^.Inf.pol:=l.pol;
NewE^.Inf.ss:=l.ss;
NewE^.Inf.deti:=l.deti;
NewE^.Inf.oklad:=l.oklad;
NewE^.Next:=nil;
right^.next:=NewE;
right:=NewE
end
end;
procedure dob;
begin
writeln('Введите ФИО');
readln(l.FIO);
writeln('Введите год рождения');
readln(l.god_rozh);
writeln('Введите пол');
readln(l.pol);
writeln('Введите');
readln(l.ss);
writeln('Введите кол-во детей');
readln(l.deti);
writeln('Введите оклад');
readln(l.oklad);
if l.FIO='*' then exit;
new(NewE);
NewE^.Inf.FIO:=l.FIO;
NewE^.Inf.god_rozh:=l.god_rozh;
NewE^.Inf.pol:=l.pol;
NewE^.Inf.ss:=l.ss;
NewE^.Inf.deti:=l.deti;
NewE^.Inf.oklad:=l.oklad;
NewE^.Next:=nil;
if right=nil then
left:=NewE
else
right^.next:=NewE;
right:=NewE;
end;
procedure udal;
begin
writeln('Исключается головной элемент очереди');
writeln('Нажмите клавишу "Enter" ');
readln;
if left <> nil then
begin
temp:=left;
left:=left^.next;
dispose(temp);
if left=nil then
right:=nil;
end
end;
procedure prosmotr;
var i:integer;
begin
writeln('Очередь содержит следующие элементы');
temp:=left;
i:=1;
while temp <> nil do begin
writeln(i,' ',temp^.Inf.FIO,' ',temp^.Inf.god_rozh,' ',temp^.Inf.pol,' ',temp^.Inf.ss,' ',temp^.Inf.deti,' ',temp^.Inf.oklad);
temp:=temp^.next;
i:=i+1;
end;
writeln('Нажмите клавишу "Enter" ');
readln;
end;
procedure vstavka;
begin
writeln('Введите ФИО');
readln(l.FIO);
writeln('Введите год рождения');
readln(l.god_rozh);
writeln('Введите пол');
readln(l.pol);
writeln('Введите семейное состояние');
readln(l.ss);
writeln('Введите кол-во детей');
readln(l.deti);
writeln('Введите оклад');
readln(l.oklad);
if l.FIO='*' then exit;
new(E1);
E1^.Inf.FIO:=l.FIO;
E1^.Inf.god_rozh:=l.god_rozh;
E1^.Inf.pol:=l.pol;
E1^.Inf.ss:=l.ss;
E1^.Inf.deti:=l.deti;
E1^.Inf.oklad:=l.oklad;
new(E2);
E1^.Next:=E2;
E2^.Inf.FIO:=l.FIO;
E2^.Inf.god_rozh:=l.god_rozh;
E2^.Inf.pol:=l.pol;
E2^.Inf.ss:=l.ss;
E2^.Inf.deti:=l.deti;
E2^.Inf.oklad:=l.oklad;
E2^.Next:=nil;
right^.next:=E1;
right:=E2;
end;
begin
{}
until key='6'
end.