Создать квадратную матрицу, расположив числа натурального ряда по направлению стрелки - 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.
Объяснение кода листинга программы
- Объявляются переменные: n, i, j, z, k (размер матрицы, индексы строк и столбцов, счётчик для заполнения матрицы, номер элемента) типа integer.
- Цикл repeat предназначен для получения от пользователя размера матрицы.
- В цикле for z:=n-1 downto -n+1 выполняется вычисление смещения строки и столбца для заполнения элементов матрицы.
- В зависимости от значения переменной z (четность или нечетность) выполняется соответствующий цикл for для заполнения элементов матрицы.
- Выполняется вывод матрицы на экран с помощью цикла for i:=1 to n и цикла for j:=1 to n.
- Каждый элемент матрицы выводится на экран с помощью выражения write(a[i,j]:3).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д