Помощь - Поиск - Пользователи - Календарь
Полная версия: Передача матрицы процедуре
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
gfx
Каким образом можно передать матрицу NxM функции в качестве аргумента?
если с одномерными массивами всё более-менее понятно, то как быть в этом случае?
мисс_граффити
как объявлена матрица?
и как ты передаешь одномерный массив?
volvo
Цитата
как объявлена матрица?
Совершенно неважно... Как бы ты не объявила матрицы, при передаче чарез Бестиповый параметр (Var-параметр), и, естественно, зная в процедуре, как именно объявлена матрица, всегда можно с ней правильно работать...
мисс_граффити
неправильно выразилась smile.gif
скажем так: создан ли тип?
или просто написано "имя переменной: array[1..n] of тип"?
gfx
Цитата(мисс_граффити @ 21.10.2006 16:38) *

неправильно выразилась smile.gif
скажем так: создан ли тип?
или просто написано "имя переменной: array[1..n] of тип"?

с
type mn = array [1..n,1..m] of integer
всё так же понятно.
но можно ли обойтись без создания типа? smile.gif
volvo
Цитата
можно ли обойтись без создания типа?
Можно... Либо передавай как тебе написали выше матрицу через Var параметр (вообще без типа)
procedure test(var mx; const m, n: integer);
begin
...
end;
, либо как открытый массив:
procedure test(var mx: array of T; const m, n: integer);
begin
...
end;

и работай с одномерным массивом, как с матрицей (вычисляя линейный адрес элемента через известные тебе M и N)...

(код приводить не буду, ибо раздел чисто теоретический)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.