Показать сообщение отдельно
  #6  
Старый 18.01.2016, 16:36
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Ну как-то так
Код:
type
  uk=^list;
  list=record
   i,j:Integer;
   next:uk;
  end;


var
  blist:uk=nil;

И не забывайте, если используются типизированные указатели, то значок ^ можно не писать

Код:
procedure make(var ablist:uk; aI,aJ:Integer);

begin
  new(ablist);
  ablist.i:=ai;
  ablist.j:=aj;
  ablist.next:=nil;
end;

//вставка эл-та в конец списка
procedure incertK(ablist:uk);
var
  temp:uk;
begin
 if(pust(blist))then
  begin
   blist:=ablist;
   exit;
  end;
  temp:=blist;
 while(temp.next<>nil) do
  begin
   temp:=temp.next;
  end;
  temp.next:=ablist;
end;


function printspisok(blist:uk):tsring;
begin
 if pust(blist) then
 begin
  Result:='Pustoy';
  Exit;
 end;
 Result:='';
 while(blist<>nil)do
 begin
  Result:=Result+#13#10+ //этот жуткий код-перевод строки
            format([blist.i, blist.j]);
  blist:=blist.next;
 end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
 i,j:Integer;
 temp:uk;
begin
 for i:=1 to n do
 begin
  for j:=1 to i do
  begin
   if (StrToInt(sd1.Cells[j,i])=1) then
   begin
     make(temp,i,j);
     incertK(temp);
   end;
  end;
 end;
 Label1.caption := printspisok(blist);
end;


end.
function printspisok(ablist:uk):tsring;
begin
 if pust(ablist) then
 begin
  Result:='Pustoy';
  Exit;
 end;
 Result:='';
 while(ablist<>nil)do
 begin
  Result:=Result+#13#10+
            format('%d %d,[ablist.i,  ablist.j]);
  ablist:=ablist.next;
 end;
end;
Ответить с цитированием