Показать сообщение отдельно
  #3  
Старый 13.06.2011, 21:45
FAZA FAZA вне форума
Прохожий
 
Регистрация: 05.01.2011
Сообщения: 16
Репутация: 10
По умолчанию

Bargest спасибо.
помогите найти ошибку в функции. после её выполнения список не выводится.
Код:
Procedure Double_pol(top:p_list); // дублирует пониндромы
Function pal(x:integer):boolean;
var l,d,i:integer;
    s:string;
begin
  pal:=true;
  str(x,s);
  d := length(s);
  If d=1 then begin result:=false; exit end;
  l := d div 2;
  for i := 1 to l do
  if s[i] <> s[d+1-i] then pal := false;
end;
var p1,q:p_list;
begin
  p1:=top;
  while p1^.next<>top do begin
    if pal(p1^.num) then begin
      new(q);
      q^.num:=p1^.num;
      q^.next:=p1^.next;
      p1^.next:=q;
      p1:=p1^.next;
    end;
    p1:=p1^.next;
  end;
end;
Ответить с цитированием