Показать сообщение отдельно
  #6  
Старый 07.10.2016, 19:02
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да, влетаешь на result=nil во втором условии. Надо так:
Код:
function Found_last_elem(L:TList):TList;
begin
result:=L;
while(result^.next<>nil)and (result^.info mod 2=0 ) do
result:=result^.next;
end;
вставка тогда как-то так:
Код:
var
  NewItem : TList;
...
  Podd:=Found_last_elem(L);
  if Podd = Nil  then writeln('No odd elements.')
  else
    begin
       New(NewItem);
       New^.Info := sqr(Podd^.info);
       New^.next := Podd^.next;
       Podd^.next := NewItem;
    end;
...
Ответить с цитированием