Заполнение матрицы в соответствии со схемой - Pascal
Формулировка задачи:
Дано натуральное N (1<=N<=10). Заполнить матрицу порядка NxN целыми числами 1, 2, 3, …, N в соответствии со схемой расположения:
Решение задачи: «Заполнение матрицы в соответствии со схемой»
textual
Листинг программы
uses crt; type arr = array [1..100, 1..100] of integer; var a: arr; p, q, n: integer; procedure makeArr(var massiv: arr; nMax: integer); var k, m, i: integer; begin k := 0; m := 0; repeat for i := m + 1 to nMax - m do begin inc(k); a[i, m + 1] := k; end; for i := m + 2 to nMax - m do begin inc(k); a[nMax - m, i] := k; end; for i := nMax - m - 1 downto m + 1 do begin inc(k); a[i, nMax - m] := k; end; for i := nMax - m - 1 downto m + 2 do begin inc(k); a[m + 1, i] := k; end; inc(m); until m + 1 = nMax div 2 + 2; end; begin writeln('Vvesti chislo'); readln(n); makeArr(a,n); for p := 1 to n do begin for q := 1 to n do write(a[p, q]:3, ' '); writeln; end; end.
Объяснение кода листинга программы
- Создается тип данных
arr
, который представляет собой массив целых чисел размером от 1 до 100 в каждой из двух осей. - Создается переменная
a
типаarr
. - Создаются три переменные
p
,q
иn
, которые будут использоваться для заполнения матрицы. - Вызывается процедура
makeArr
, которая принимает массивmassiv
и максимальное значениеnMax
в качестве параметров. - Внутри процедуры
makeArr
создаются три переменныеk
,m
иi
, которые будут использоваться для заполнения матрицы. - Цикл
repeat
выполняется столько раз, сколько необходимо для заполнения матрицы размеромnMax
. - Внутри цикла
repeat
выполняется циклfor
, который проходит по всем элементам матрицы отm + 1
доnMax — m
. - Для каждого элемента выполняется три вложенных цикла
for
, которые проходят по всем индексам отi = m + 1
доi = nMax — m
. - В каждом из вложенных циклов
for
значение переменнойk
увеличивается на единицу, а затем присваивается соответствующему элементу матрицы. - После завершения всех вложенных циклов
for
значение переменнойm
увеличивается на единицу. - Цикл
repeat
завершается, когдаm + 1
становится равнымnMax / 2 + 2
. - После завершения процедуры
makeArr
выводится сообщение с числомn
, которое было введено пользователем. - Выводится заполненная матрица с помощью цикла
for
и оператораwrite
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д