Получить последовательность чисел, образующуюся при чтении массива по спирали - Pascal ABC
Формулировка задачи:
Дан двухмерный массив размером 9x9, заполненный произвольным образом. Получить последовательность чисел, образующуюся при чтении этого массива по спирали.
Решение задачи: «Получить последовательность чисел, образующуюся при чтении массива по спирали»
textual
Листинг программы
const n=9; var a:array[1..n,1..n] of integer; i,j,r,k:integer; begin randomize; writeln('Матрица'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=10+random(90); write(a[i,j]:4); end; writeln; end; writeln('Последовательность по спирали'); k:=0; r:=0; repeat inc(r); for i:=r to n-r+1 do begin inc(k); write(a[r,i]:4); end; for i:=r+1 to n-r+1 do begin inc(k); write(a[i,n-r+1]:4); end; for i:=n-r downto r do begin inc(k); a[n-r+1,i]:=k; end; for i:=n-r downto r+1 do begin inc(k); write(a[i,r]:4); end; until k=n*n; end.
Объяснение кода листинга программы
- Объявлены переменные: n, a, i, j, r, k типа integer.
- Задано значение переменной n равное 9.
- Заполнен массив a случайными числами от 10 до 100.
- Выведена матрица a на экран.
- В цикле выводится последовательность чисел, образующаяся при чтении массива по спирали, на экран.
- Переменная k инициализируется нулем.
- Переменная r устанавливается в 0.
- Цикл повторяется до тех пор, пока значение переменной k не станет равным n*n.
- Внутри цикла:
- Увеличивается значение переменной r.
- Внутренний цикл:
- Увеличивается значение переменной k.
- Выводится элемент массива a[r,i] на экран.
- Внешний цикл:
- Увеличивается значение переменной r.
- Увеличивается значение переменной k.
- Элемент массива a[i,n-r+1] присваивается значение переменной k.
- Увеличивается значение переменной r.
- Внутренний цикл:
- Увеличивается значение переменной k.
- Выводится элемент массива a[i,r] на экран.
- Цикл повторяется до тех пор, пока значение переменной k не станет равным n*n.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д