Показать сообщение отдельно
Старый 10.01.2010, 20:30   #21 (permalink)
Dram
Экономичный вид памяти
 
Аватар для Dram
 
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 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] тоже абсолютно эквивалентны.
Хм... будем знать!!!
Dram вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070