Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Кто шарит по массивам


Автор: ADAM83 18.1.2006, 14:46
Уважаемые эксперты.
smile Кто нибудь может мне обяснить как работает простые и вложенные массивы, в чем их отличия.
Мне просто очень нужно понять их структуру чтоб использовать. Вот например, Arr[Arr2[i]] ну типа такого.
Может их различия состоит в индексах? Может быть они используется как ссылки?
Спасибо заранее

Автор: Alexeis 18.1.2006, 14:54
Цитата

  Кто нибудь может мне обяснить как работает простые и вложенные массивы

Нет понятия вложенный масив Просто в данном случае значение элемента массива Arr2[i] является индексом для Arr.

анолог Arr[Arr2[i]] ->

j := Arr2[i];
Arr[j]....
Добавлено @ 14:55
Arr[Arr2[i]] просто короткая запись предыдущего

Автор: ADAM83 18.1.2006, 15:02
alexeis1 А можно хороший простой примерчик, если не сложно

Автор: Guedda 18.1.2006, 15:20
Код

var
  arr1, arr2 : array[0..100] of Integer;
  x : Integer;
begin
  arr2[0] := 13;
  arr1[13] := 100;
  x := arr1[arr2[0]]; //х в этом случае равен 100.
end;

Автор: ADAM83 18.1.2006, 16:06
Guedda Спасибо за пример. А если я использую массив как
Код

type T1=record
b1:integer;
b2:integer;
end;
T2=record
c1:integer;
c2:integer;
end;
var Ar1:array[1..15]  of T1;
Ar2:array[1..5] of T2;

Как мне теперь обращаться, плиз укажите

Автор: Alexeis 18.1.2006, 17:22
Код

  x := ar1[ar2[2].с1].b1; 

Автор: Albinos_x 18.1.2006, 17:27
Код
...
Ar1[1].b1:=10;
...

Автор: Dimannn 18.1.2006, 18:26
Может, ты имеешь в виду не вложенные, а двухмерные массивы?

Автор: ADAM83 19.1.2006, 06:32
Dimannn Нет у меня не двумерный масив, я про него ничего не знаю в смысле не умею пользоваться вот поэтому не использую. Как это сказать, у меня массив под рекордом.
alexeis1
Цитата

x := ar1[ar2[2].с1].b1;

Здесь как я понял, если
Код

T2=record
  c1=[10, 5, 3];//может так не пишется, я просто указал значения элементов
  end; 

тогда
Код

x:=ar1[ar2[2].c1].b1; это означает что
x:=ar1[5].b1; или я ошибаюсь?


Автор: Guedda 19.1.2006, 08:37
Синтаксис у тебя неправильный.
Лучше так:
Код

T2 = record
  c1 : Integer;
  c2 : Integer;
  c3 : Integer = 4;
end;

...

x := arr1[arr2[0].c3].bl;
x := arr1[4].bl; //вот тоже самое

Автор: ADAM83 19.1.2006, 09:18
Guedda Все, я помоему понял как они работают, спасибо.
Спасибо всем!!!

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