Создать квадратную матрицу, расположив числа натурального ряда по направлению стрелки - PascalABC.NET

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

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

Нужно создать квадратную матрицу, расположив числа натурального ряда по направлению стрелки. На других позициях элементы равняются нулю. Начать с правого верхнего угла

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

textual
Листинг программы
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    n,i,j,z,k:integer;
begin
repeat
write('Размер массива от 3 до ',nmax,' n=');
readln(n);
until n in [3..nmax];
k:=0;
for z:=n-1 downto -n+1 do
 begin
  if z mod 2=0 then
   begin
    for j:=n downto 1 do
    if (j-z>0) and (j-z<=n) then
     begin
      inc(k);
      a[j-z,n-j+1]:=k;
     end;
   end
  else
   begin
    for j:=1 to n do
    if (j-z>0) and (j-z<=n) then
     begin
      inc(k);
      a[j-z,n-j+1]:=k;
     end
    end
 end;
writeln('Массив:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:3);
  writeln;
 end;
end.

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

  1. Объявляются переменные: n, i, j, z, k (размер матрицы, индексы строк и столбцов, счётчик для заполнения матрицы, номер элемента) типа integer.
  2. Цикл repeat предназначен для получения от пользователя размера матрицы.
  3. В цикле for z:=n-1 downto -n+1 выполняется вычисление смещения строки и столбца для заполнения элементов матрицы.
  4. В зависимости от значения переменной z (четность или нечетность) выполняется соответствующий цикл for для заполнения элементов матрицы.
  5. Выполняется вывод матрицы на экран с помощью цикла for i:=1 to n и цикла for j:=1 to n.
  6. Каждый элемент матрицы выводится на экран с помощью выражения write(a[i,j]:3).

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


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

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

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