Заполнить двумерный массив зигзагом по диагонали - Pascal ABC

Формулировка задачи:

Нужно заполнить двумерный массив n-го порядка справа-налево сверху-вниз рандомными числами (от min к max) 10 4 3 1 11 9 5 2 15 12 8 6 16 14 13 7 Заранее спасибо за любую помощь!


textual

Код к задаче: «Заполнить двумерный массив зигзагом по диагонали - Pascal ABC»

uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax]of integer;
    n,i,j,k,l:integer;
begin
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
write('Введите минимальное значение k=');
readln(k);
clrscr;
for l:=2*n-1 downto 1  do
 begin
  if l>n then
   begin
    if l mod 2=0 then
    for i:=1 to 2*n-l do
     begin
      a[i,i+l-n]:=k;
      k:=k+1;
     end
    else
    for i:=2*n-l downto 1 do
     begin
      a[i,i+l-n]:=k;
      k:=k+1;
     end
   end
  else if l<=n then
   begin
    if l mod 2=0 then
    for i:=n-l+1 to n do
     begin
      a[i,i-n+l]:=k;
      k:=k+1;
     end
    else
    for i:=n downto n-l+1 do
     begin
      a[i,i-n+l]:=k;
      k:=k+1;
     end;
   end;
 end;
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

14   голосов, оценка 3.929 из 5

Источник