Получить последовательность чисел, образующуюся при чтении массива по спирали - 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.

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

  1. Объявлены переменные: n, a, i, j, r, k типа integer.
  2. Задано значение переменной n равное 9.
  3. Заполнен массив a случайными числами от 10 до 100.
  4. Выведена матрица a на экран.
  5. В цикле выводится последовательность чисел, образующаяся при чтении массива по спирали, на экран.
  6. Переменная k инициализируется нулем.
  7. Переменная r устанавливается в 0.
  8. Цикл повторяется до тех пор, пока значение переменной k не станет равным n*n.
  9. Внутри цикла:
  10. Увеличивается значение переменной r.
  11. Внутренний цикл:
  12. Увеличивается значение переменной k.
  13. Выводится элемент массива a[r,i] на экран.
  14. Внешний цикл:
  15. Увеличивается значение переменной r.
  16. Увеличивается значение переменной k.
  17. Элемент массива a[i,n-r+1] присваивается значение переменной k.
  18. Увеличивается значение переменной r.
  19. Внутренний цикл:
  20. Увеличивается значение переменной k.
  21. Выводится элемент массива a[i,r] на экран.
  22. Цикл повторяется до тех пор, пока значение переменной k не станет равным n*n.

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


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

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

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