Заполнить квадратную матрицу числами натурального ряда в последовательности указанной на рисунке - Pascal ABC

Узнай цену своей работы

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

Нужно заполнить (квадратную) матрицу a(n,n) числами натурального ряда в последовательности указанной на рисунке и вывести ее на экран. Pascal abc. Делал программу для вывода такой же матрицы с левого верхнего угла, но сделать такую не получается. Кто может киньте готовы код, пожалуйста.

Решение задачи: «Заполнить квадратную матрицу числами натурального ряда в последовательности указанной на рисунке»

textual
Листинг программы
  1. const n=8;
  2. var a:array[1..n,1..n]of integer;
  3.     i,j,k,l:integer;
  4. begin
  5. k:=0;
  6. for l:=2*n-1 downto 1  do
  7.  begin
  8.   if l>n then
  9.    begin
  10.     if odd(l) then
  11.     for i:=1 to 2*n-l do
  12.      begin
  13.       k:=k+1;
  14.       a[i,i+l-n]:=k;
  15.      end
  16.     else
  17.     for i:=2*n-l downto 1 do
  18.      begin
  19.       k:=k+1;
  20.       a[i,i+l-n]:=k;
  21.      end
  22.    end
  23.   else if l<=n then
  24.    begin
  25.     if odd(l) then
  26.     for i:=n-l+1 to n do
  27.      begin
  28.       k:=k+1;
  29.       a[i,i-n+l]:=k;
  30.      end
  31.     else
  32.     for i:=n downto n-l+1 do
  33.      begin
  34.       k:=k+1;
  35.       a[i,i-n+l]:=k;
  36.      end;
  37.    end;
  38.  end;
  39. for i:=1 to n do
  40.  begin
  41.   for j:=1 to n do
  42.   write(a[i,j]:4);
  43.   writeln;
  44.  end;
  45. writeln;
  46. end.

Объяснение кода листинга программы

  1. Переменная n инициализируется значением 8.
  2. Создается переменная a, которая является массивом целых чисел размером от 1 до n на 1 до n.
  3. Определяются три переменные i, j и k типа integer.
  4. Переменная k инициализируется значением 0.
  5. Запускается цикл for, который выполняется для каждого элемента l массива a начиная с 2*n-1 и до 1.
  6. Внутри цикла проверяется условие if l>n then .... Если это условие истинно, то l больше n, и цикл прерывается.
  7. Если условие if l>n then ... ложно, то выполняются следующие действия:
    • if odd(l) then ... - проверяется, является ли l нечетным числом.
    • Если odd(l) истинно, то выполняется цикл for i:=1 to 2*n-l do ....
    • Если odd(l) ложно, то выполняется цикл for i:=2*n-l downto 1 do ....
  8. В обоих циклах выполняется следующая последовательность действий:
    • k:=k+1; - увеличивается значение переменной k на 1.
    • a[i,i+l-n]:=k; - записывается значение k в ячейку массива a с индексами i и i+l-n.
  9. После выполнения всех циклов внутреннего цикла for, выводится информация о матрице a в формате write(a[i,j]:4); writeln;.
  10. Выводится завершающий символ writeln;.
  11. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы