Доброго времени суток.
Насколько я понял, требуется переставить строки в массивах с разными размерностями одной процедурой. Что ж.. . Такое возможно. Для этого нужно знать, что двухмерные массивы располагаются в памяти последовательно, строка за строкой и уметь пользоваться директивой absolute с помощью которой переменные совмещаются в памяти. Другими словами, два идентификатора указывают на одну область в памяти.
Общий ход действий таков. Объявляется пользовательский тип данных.
type
TData = Integer; {для другого типа просто измените эту строку}
Объявляются две переменные типа массив с нужными размерностями.
var
A : array[1..3,1..4] of TData;
B : array[1..5,1..5] of TData;
Объявляется и реализуется процедура перестановки строк в массиве.
{перестановка строк}
procedure SwapRows(var Arr; RowCount, ColCount, Row1, Row2: Byte);
var
A : array[1..MaxInt] of TData absolute Arr;
j : Integer;
T : TData;
begin
for j:=1 to ColCount do begin
T := A[ColCount * (Row1-1) + j];
A[ColCount * (Row1-1) + j] := A[ColCount * (Row2-1) + j];
A[ColCount * (Row2-1) + j] := T;
end;
end;
В этой процедуре директивой absolute выполняется совмещение в памяти формального параметра Arr и локальной переменной A, что позволяет обращаться к элементам двухмерного массива, как к одномерному. Причем, верхняя граница одномерного массива, равная MaxInt, позволяет в широких пределах варьировать размерность двухмерного массива.
А дальше все просто. В программе делаете так.
SwapRows(A, 3, 4, 2, 3);
SwapRows(B, 5, 5, 2, 4);
Проверено и работает.
Используя приведенный механизм, не трудно написать набор процедур для работы с двухмерными массивами произвольной размерности. Например, вывод массива на экран, очистка строки или столбца, копирование и т. д.
Удачи!
Другие языки программирования и технологии
Программирование. Матрицы. Pascal.
Если срочно не горит. . Завтра могу помочь. . Добавляйся в агент
Похожие вопросы
- Здравствуйте! помогите пожалуйста выполнить зачётные задания по программированию на Pascal
- Программирование на pascal
- Программирование на PASCAL
- 1.Рекурсия в языке программирования Borland Pascal 7.0. 2.Понятие и виды информации. Ее свойства.
- программирование в pascal. Даны 3 числа. Определить сколько среди них нулей
- Помогите с программированием на Pascal ABC
- С чего лучше начать изучение программирования? С Pascal или можно сразу с Java?
- Олимпиадная задача по программированию в Pascal (Free, ABC.net) 10 класс! Помогите решить?)
- Программирование на Pascal
- ИКТ. Программирование на Pascal Turbo