Перестановка элементов матрицы по правилу - Turbo Pascal
Формулировка задачи:
Квадратная матрица А (треугольная или симметричная) по- рядка n в целях экономии памяти задана в виде одномерного массива из (n + 1)n/2 чисел: сначала идет n элементов первой строки, затем n – 1 элементов второй строки, начиная со второго элемента, и т. д. (из последней n-й строки берется только n-й элемент).
Решение задачи: «Перестановка элементов матрицы по правилу»
textual
Листинг программы
const nmax=20; var a: array[1..((nmax+1)*nmax) div 2] of integer; b: array[1..nmax,1..nmax] of integer; n,i,j: byte; k: integer; begin repeat write('Введите размерность квадратной матрицы: '); readln(n); until n in [1..nmax]; randomize; writeln('Одномерный массив:'); for i:=1 to ((n+1)*n) div 2 do begin a[i]:=random(99)+1; write(a[i]:4); end; writeln; k:=0; writeln('Квадратная матрица:'); for i:=1 to n do begin for j:=1 to n-i+1 do begin inc(k); b[i,j]:=a[k]; write(b[i,j]:4); end; writeln; end; readln; end.