Подпрограммы для создания двумерных динамических массивов

function Matr<T>(m,n: integer; params data: array of T): array [,] of T;
        Возвращает двумерный массив размера m x n, заполненный указанными значениями по строкам
function Matr<T>(params aa: array of array of T): array [,] of T;
        Возвращает двумерный массив, заполненный значениями из одномерных массивов
function MatrByCol<T>(a: array of array of T): array [,] of T;
        Генерирует двумерный массив по массиву массивов столбцов
function MatrByCol<T>(a: sequence of array of T): array [,] of T;
        Генерирует двумерный массив по последовательности массивов столбцов
function MatrByCol<T>(a: sequence of sequence of T): array [,] of T;
        Генерирует двумерный массив по последовательности последовательностей столбцов
function MatrByCol<T>(m,n: integer; a: sequence of T): array [,] of T;
        Генерирует двумерный массив по столбцам из последовательности
function MatrByRow<T>(a: array of array of T): array [,] of T;
        Генерирует двумерный массив по массиву массивов строк
function MatrByRow<T>(a: sequence of array of T): array [,] of T;
        Генерирует двумерный массив по последовательности массивов строк
function MatrByRow<T>(a: sequence of sequence of T): array [,] of T;
        Генерирует двумерный массив по последовательности последовательностей строк
function MatrByRow<T>(m,n: integer; a: sequence of T): array [,] of T;
        Генерирует двумерный массив по строкам из последовательности
function MatrFill<T>(m, n: integer; x: T): array [,] of T;
        Возвращает двумерный массив размера m x n, заполненный элементами x
function MatrGen<T>(m, n: integer; gen: (integer,integer)->T): array [,] of T;
        Возвращает двумерный массив размера m x n, заполненный элементами gen(i,j)
function MatrRandom(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer;
        Возвращает двумерный массив размера m x n, заполненный случайными целыми значениями
function MatrRandomInteger(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer;
        Возвращает двумерный массив размера m x n, заполненный случайными целыми значениями
function MatrRandomReal(m: integer := 5; n: integer := 5; a: real := 0; b: real := 10): array [,] of real;
        Возвращает двумерный массив размера m x n, заполненный случайными вещественными значениями
function ReadMatrInteger(m, n: integer): array [,] of integer;
        Возвращает матрицу m на n целых, введенных с клавиатуры
function ReadMatrReal(m, n: integer): array [,] of real;
        Возвращает матрицу m на n вещественных, введенных с клавиатуры
function Transpose<T>(a: array [,] of T): array [,] of T;
        Транспонирует двумерный массив