Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 13:34   #1
ichi
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 144
По умолчанию Трехмерный массив в Delphi. Как реализовать?

Здравствуйте. Прошу подсказать каким образом в Delphi определяются статические и динамические многомерные массивы. По большому счету мне бы хотелось узнать о 3х-мерных массивах. Представленный ниже трехмерный делал по принципу и подобию с двумерного статического массива, но увы почему-то Delphi не понимает его.

Пример двумерного массива брал отсюда:

http://delphi.about.com/od/beginners/a/arrays.htm

http://www.delphibasics.co.uk/RTL.asp?Name=Array

Код:
  var coords: Array[0..6, 0..4, 0..3] of Real = [
    [ [1.0, -1.0, 1.0], [1.0, -1.0, 1.0],
      [1.0, 1.0, -1.0], [1.0, 1.0, 1.0] ],
    [ [-1.0, -1.0, -1.0], [-1.0, -1.0, 1.0],
      [-1.0, 1.0, 1.0], [-1.0, 1.0, -1.0] ],
    [ [1.0, -1.0, -1.0], [-1.0, -1.0, -1.0],
      [-1.0, 1.0, -1.0], [1.0, 1.0, -1.0] ],
    [ [-1.0, -1.0, 1.0], [1.0, -1.0, 1.0],
      [1.0, 1.0, 1.0], [-1.0, 1.0, 1.0] ],
    [ [-1.0, -1.0, -1.0], [1.0, -1.0, -1.0],
      [1.0, -1.0, 1.0], [-1.0, -1.0, 1.0] ],
    [ [-1.0, 1.0, 1.0], [1.0, 1.0, 1.0],
      [1.0, 1.0, -1.0], [-1.0, 1.0, -1.0] ]
    ];
ichi вне форума Ответить с цитированием
Старый 05.04.2012, 13:47   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

У вас все правильно, но границы масива начинаются с ( и заканчиваются );
А вот заполнение отдельногоо массива в массиве начинается с квадратных и имиже заканчиваются.

Код:
  var coords: Array[0..6, 0..4, 0..3] of Real =([заполняем 0..6 через ,],[заполняем 0..4 через ,],[заполняем 0..3 через ,]);
Код:
  var coords: Array[0..6, 0..4, 0..3] of Real =([1.0, 1.1,1.2, 1.3, 1.4, 1.5], //Массив 0..6
                                                             [2.0, 2.1, 2.2, 2.3, 2.4],             //Массив 0..4
                                                             [3.0, 3.1, 3.2, 3.3]);                  //Массив 0..3

Последний раз редактировалось Человек_Борща; 05.04.2012 в 14:12.
Человек_Борща вне форума Ответить с цитированием
Старый 05.04.2012, 13:58   #3
Silver_S
Форумчанин
 
Регистрация: 14.03.2011
Сообщений: 104
По умолчанию

Помимо скобок (), указание диапазона [0..n] говорит о наличии n+1 элемента массива.
Silver_S вне форума Ответить с цитированием
Старый 11.04.2012, 04:13   #4
__123
Пользователь
 
Аватар для __123
 
Регистрация: 15.09.2011
Сообщений: 36
По умолчанию

Код:
Var coords : array of array of array of Real;
(...)
SetLength(coords,7);
For a:=0 to 6 do 
Begin
SetLength(coords[a],5)
For b:=0 to 4 do SetLength(coords[a,b],4);
End;

Finalize(coords) //-kill coords
динамический 3-мерный.

Последний раз редактировалось __123; 11.04.2012 в 04:49.
__123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Трехмерный массив Leisan_S Паскаль, Turbo Pascal, PascalABC.NET 7 09.01.2015 19:17
трехмерный массив Bape}l{ka Microsoft Office Excel 12 26.01.2012 15:11
трехмерный массив world12_tk Помощь студентам 2 06.01.2012 17:04
как заполнить трехмерный массив процедурой? MyLastHit Общие вопросы Delphi 9 03.01.2011 21:00
Трехмерный дин. массив revanatar Общие вопросы C/C++ 3 29.11.2010 22:02