Вопрос 1: cube:array[1..12,1..2,1..3] of integer = ( ((-10,-10,-10),(10,-10,-10)), ((-10,-10,-10),(-10,10,-10)), ((-10,10,-10),(10,10,-10)), ((10,-10,-10),(10,10,-10)), ((-10,-10,10),(10,-10,10)), ((-10,-10,10),(-10,10,10)), ((-10,10,10),(10,10,10)), ((10,-10,10),(10,10,10)), ((-10,-10,10),(-10,-10,-10)), ((-10,10,10),(-10,10,-10)), ((10,10,10),(10,10,-10)), ((10,-10,10),(10,-10,-10)) ); пишет после integer пропущен ; , но почему? всё же правильно!
Вопрос 2: Я правильно сделал предидущий массив? (-10,-10,-10) это получается x,y,z у меня. Размеры array я правильно задал? Вроде бы нет =( Кстатей если я хочу вызвать второе число массива это делается так? cube[1,1,2] ?
volvo
23.08.2006 10:23
Цитата
пишет после integer пропущен ; , но почему? всё же правильно!
Если это описано как Const, то правильно... Если как Var - то будет ошибка, которую ты и привел...
Цитата
Кстатей если я хочу вызвать второе число массива это делается так? cube[1,1,2] ?
Что значит "второе число"? У тебя не одномерный массив, заметь, а трехмерный... Так что говори, в каком "слое" (будем так называть первое измерение), в какой строке (второе измерение), и в каком столбце (третье измерение)...
X.XaM_MaX.X
23.08.2006 10:28
А на счёт размера массива? Правильно? я написал от 1 до 12 в первом значении хотя это у меня вроде идёт по горизонтали =\
volvo
23.08.2006 10:31
Правильно... Не беспокойся, если будет неправильно, программа не будет компилироваться... Скажет тебе что-то вроде "ожидаю число, а ты какую-то скобку поставил"
X.XaM_MaX.X
23.08.2006 10:33
Стоп если массив приставить как трёхмерный куб из чисел то получается так [x,y,z] ? Тоенсть длина слоя потом высота слоя , а потом количество слоёв?
volvo
23.08.2006 11:05
Нет... Сначала количество слоев, потом - высота, и только потом - длина.. А если ты добавишь четвертое измерение (скажем, время) - то чтобы это описать, нужно будет добавить еще один индекс ПЕРЕД количеством слоев...
Формально это объясняется так: родитель ЛЕВЕЕ потомка... КАЖДЫЙ слой содержит в себе описывающие его матрицы, поэтому индекс матрицы - правее индекса слоя... То же самое, матрица СОДЕРЖИТ координаты X, Y, Z Поэтому индекс отдельных координат ПРАВЕЕ индекса матрицы...
У меня такое ощущение, что ты попутал координаты X, Y, Z и индексы (которые ты назвал так же...) Просто обращайся к массиву так:
n_cube := 2; { <--- Номер куба } my_cube := cube[n_cube]; { <--- Обращение к кубу с определенным номером (№2) } n_vec := 1; { <--- Номер вектора, задающего куб } my_layer := cube[n_cube, n_vec]; { <--- обращение к массиву координат заданного вектора куба №2 } n_coord := 2; { <--- Координата Y } my_coord := cube[n_cube, n_vec, n_coord]; { <--- обращение к координате Y заданного вектора куба №2 }
Только следи за типами, это важно...
X.XaM_MaX.X
23.08.2006 11:13
Нет вроде не попутал сам взгляни!
volvo
23.08.2006 11:24
А что собственно смотреть-то? Этот отрывок кода? Ну, посмотрел, и что? Не будет компилироваться. Ты ж даже задачу, которую решаешь, не описал. Откуда я знаю, что ты хочешь получить?
X.XaM_MaX.X
23.08.2006 11:31
Перепутал файл =(. Задачка вывести плоский квадрат, а за тем обьёмный, а затем добавить функцию поворота. Первое я пожалуй сделал теперь его надо преобразовать в обьёмный =( У меня куча времени ушло писать кординаты одной сторона, а делать все шесть =\ Если более простой способ ?
volvo
23.08.2006 11:42
X.XaM_MaX.X, вот этот код, который ты привел в посте №7 - КОМПИЛИРУЕТСЯ ???