

Помогите пожалуйста доработать код!!! (PASCAL)
Вообщем задание такое: Написать процедуру которая вставляет новый элемент E после первого элемента непустого списка L, я ее написал, но она вставляет новый элемент вместо 1 элемента, а должна после. Что не так я сделал, помогите, пожалуйста!!!!:
procedure vstavka(var list: ukaz;n:integer;fioo,godd,poll,sost,det,okll:string);
var p: ukaz; i:integer;
fiooo,goddd,polll,sostt,dett,oklll:string;
begin
temp:=left;
list:=temp;
p:=list;
n:=0;
i:=1;
if (temp<>nil) and (temp^.next<>nil) then begin
Writeln('Введите элементы которые нужно вставить');
writeln('Введите ФИО студента');
readln(fioo);
writeln('Введите год рождения студента');
readln(godd);
writeln('Введите пол студента');
readln(poll);
writeln('Введите cемейное состояние студента');
readln(sost);
writeln('Введите кол-во детей студента');
readln(det);
writeln('Введите оклад студента');
readln(okll);
temp:=left;
temp^.inf.fio:=fioo;
temp^.inf.god:=godd;
temp^.inf.pol:=poll;
temp^.inf.semsost:=sost;
temp^.inf.koldet:=det;
temp^.inf.okl:=okll;
temp:=left;
while temp<>nil do
begin
n:=n+1;
writeln(i,')',temp^.inf.fio,' | ',temp^.inf.god,' | ',temp^.inf.pol,' | ',temp^.inf.semsost,' | ',temp^.inf.koldet,' | ',temp^.inf.okl);
temp:=temp^.next;
i:=i+1;
end;
end;
end;
Во-первых, ты уродски называешь переменные понижая читаемость кода, не делай так пжж.
во-вторых у тебя строка "temp:=left", затем действия с temp, а затем снова "temp:=left".
Зачем так делать?