Форум «Всё о Паскале» _ Теоретические вопросы _ Передача матрицы процедуре
Автор: gfx 21.10.2006 19:43
Каким образом можно передать матрицу NxM функции в качестве аргумента? если с одномерными массивами всё более-менее понятно, то как быть в этом случае?
Автор: мисс_граффити 21.10.2006 20:05
как объявлена матрица? и как ты передаешь одномерный массив?
Автор: volvo 21.10.2006 20:35
Цитата
как объявлена матрица?
Совершенно неважно... Как бы ты не объявила матрицы, при передаче чарез Бестиповый параметр (Var-параметр), и, естественно, зная в процедуре, как именно объявлена матрица, всегда можно с ней правильно работать...
Автор: мисс_граффити 21.10.2006 20:38
неправильно выразилась скажем так: создан ли тип? или просто написано "имя переменной: array[1..n] of тип"?
Автор: gfx 21.10.2006 23:03
Цитата(мисс_граффити @ 21.10.2006 16:38)
неправильно выразилась скажем так: создан ли тип? или просто написано "имя переменной: array[1..n] of тип"?
с type mn = array [1..n,1..m] of integer всё так же понятно. но можно ли обойтись без создания типа?
Автор: volvo 21.10.2006 23:53
Цитата
можно ли обойтись без создания типа?
Можно... Либо передавай как тебе написали выше матрицу через 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)...
(код приводить не буду, ибо раздел чисто теоретический)