Необходимо исключить элемент, стоящий перед i-тым, тоесть как я понял делаем запрос на номер элемента, а потом удаляем перед ним стоящий, так?
Вот я сделал процедуру:
procedure del_i_1_elem(First:EL);
VAR
T,Q,R:EL;
K,N:integer;
i:integer;
Begin
N:=Count_el(First);
writeln('Введите i:');
readln(i);
IF N=1 then {esli y nas v spiske 1 element}
begin
writeln('У вас только 1 элемент, удаление предыдущего не возможно');
readkey;
exit;
end;
IF (i < 1) or (i > N) then
begin
writeln('i задано некорректно');
readkey;
exit;
end;
IF i=2 then {удаление первого элемента списка}
begin
p:=First;
First:=First^.Next;
dispose(p);
end
ELSE {удаление из середины}
begin
T:=First;
Q:=Nil;
K:=1;
While K < i-1 do
begin
inc(K);
Q:=T;
T:=T^.Next;
end;
R:=T^.Next;
Q^.Next:=R;
Dispose(T);
end;
End;
Сорри, ты же передаешь First по значению, а при n = 2 значение First меняется, надо передавать по ссылке...