Дана квадратная матрица размером n x n. Напишите программу на языке Pascal, которая будет заполнять данную матрицу числами от 1 до n^2 по спирали.
Пример:
Ввод: n = 3 Вывод: 1 2 3 8 9 4 7 6 5
Программа:
program SpiralMatrix; var n, i, j, k, num: integer; matrix: array[1..100, 1..100] of integer; begin write('Введите размер квадратной матрицы: '); readln(n); num := 1; for k := 1 to (n + 1) div 2 do begin for i := k to n - k + 1 do begin matrix[k, i] := num; num := num + 1; end; for j := k + 1 to n - k + 1 do begin matrix[j, n - k + 1] := num; num := num + 1; end; for i := n - k downto k do begin matrix[n - k + 1, i] := num; num := num + 1; end; for j := n - k downto k + 1 do begin matrix[j, k] := num; num := num + 1; end; end; for i := 1 to n do begin for j := 1 to n do begin write(matrix[i, j], ' '); end; writeln; end; end.
После запуска программы и ввода размера матрицы n, она сначала заполнит элементы матрицы числами от 1 до n^2 по спирали, а затем выведет полученную матрицу на экран.
Дана квадратная матрица размером n x n. Напишите программу на языке Pascal, которая будет заполнять данную матрицу числами от 1 до n^2 по спирали.
Пример:
Ввод:n = 3
Вывод:
1 2 3
8 9 4
7 6 5
Программа:
program SpiralMatrix;var
n, i, j, k, num: integer;
matrix: array[1..100, 1..100] of integer;
begin
write('Введите размер квадратной матрицы: ');
readln(n);
num := 1;
for k := 1 to (n + 1) div 2 do
begin
for i := k to n - k + 1 do
begin
matrix[k, i] := num;
num := num + 1;
end;
for j := k + 1 to n - k + 1 do
begin
matrix[j, n - k + 1] := num;
num := num + 1;
end;
for i := n - k downto k do
begin
matrix[n - k + 1, i] := num;
num := num + 1;
end;
for j := n - k downto k + 1 do
begin
matrix[j, k] := num;
num := num + 1;
end;
end;
for i := 1 to n do
begin
for j := 1 to n do
begin
write(matrix[i, j], ' ');
end;
writeln;
end;
end.
После запуска программы и ввода размера матрицы n, она сначала заполнит элементы матрицы числами от 1 до n^2 по спирали, а затем выведет полученную матрицу на экран.