Оригинал статьи: http://www.cyberforum.ru/pascal/thread133142.html
Благодарен всем авторам, которые внесли свой вклад в сборку кода.
Например: вставить столбец между 5 и 6 столбцом исходной матрицы.
var a: array[1..10, 1..12] of integer; b: array[1..10] of integer; i, k, n, j, q: integer; begin write('Введите размерность матрицы, не больше 10 и не меньше 6 : '); repeat read(n); until (n >= 6) and (n < 11); writeln('Введите элементы одномерного массива:'); for k := 1 to n do begin read(b[k]); end; write('В какой столбец будут вставляться элементы: '); repeat read(q); until (q >= 1) and (q <= n); writeln('Для вывода результата нажмите ENTER...'); readln; write('Исходная матрица:'); writeln; for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(10); write(a[i, j]:4); end; writeln; end; for j := n + 1 downto q do begin for i := 1 to n do begin a[i, j + 1] := a[i, j]; end; end; for i := 1 to n do begin a[i, q] := b[i]; end; writeln; writeln('Полученная матрица:'); for i := 1 to n do begin for j := 1 to n + 1 do begin write(a[i, j]:4); end; writeln; end; end.