10.01.2010, 20:30
|
#21 (permalink)
|
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Цитата:
Сообщение от Vladimir_S
Вот черт, вечно я отстаю от жизни. В каких-то реализациях Паскаля, с которыми я имел дело, задавать в явном виде массив в качестве аргумента функции было нельзя, вот я с тех пор и не задаю. Надо будет попробовать - может быть на современных пакетах и можно.
В принципе это не "превращение двумерного массива в одномерный", а просто чуть иное описание двумерного массива. Вот представьте себе, например, матрицу (двумерный массив), имеющую 3 строки и 4 столбца. Ее можно описать, как
A:ARRAY[1..3,1..4] of REAL;
Но если в той же матрице каждую строку рассматривать как одномерный массив, то можно записать и так:
A:ARRAY[1..3] of ARRAY[1..4] of REAL;
И, наконец, если в начале программы массив-строка был объявлен типом, т.е.
TYPE
AR=ARRAY[1..4] of REAL;
то массив может быть задан, как
A:ARRAY[1..4] of AR;
А теперь - внимание! ВСЕ ТРИ ЗАПИСИ МАССИВА А АБСОЛЮТНО ЭКВИВАЛЕНТНЫ! Просто, поскольку аргументом функции в программе выступали строки, то мне показалось, что так нагляднее. Если запутал, извините.
Между прочим, при обращении к элементу двумерного массива выражения A[2,3] и A[2][3] тоже абсолютно эквивалентны.
|
Хм... будем знать!!!
|
|
|