Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Из списка смежности в матрицу смежности!


Автор: Andrey87 27.5.2008, 23:44
Помогите с решением:

есть список смежности
(например)
12
234
4
24
5
36

нужно из этого сделать матрицу смежности
(т.е. вот это)
110000
011100
000100
010100
000010
001001

В частности не понимаю как преобразовать строку StrinGrid'е в числа и по их значениям напихать единиц в матрицу...

Автор: MaXL 28.5.2008, 05:23
Andrey87, ну а что непонятного то ? ищешь строку в StringGrid'е максимальной длины(будет m) и создаёшь массив, размерностью m. И потом просто бежишь по стринг гриду, и заполняешь.
А код, который выдирает из строки числа, разделённые пробелом, будет выглядеть примерно вот так:
Код

const
  MAX_NUMBERS = 10;
var
  Text: string;
  Number: string;
  i, j: integer;
  a: array[0..MAX_NUMBERS] of integer;
begin
  ZeroMemory(@a, Length(a) * 4);
  Text:= MyText;
  i:= 1; j:= 0;
  Number:= '';
  for i := 1 to Length(Text) do
  begin
    if not (Text[i] in ['0'..'9']) then
    begin
      a[j]:= StrToInt(Number);
      Number:= '';
      Inc(j);
    end
    else
      Number:= Number + Text[i];
  end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)