Перестановка элементов матрицы по правилу - 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.

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы