Вывести матрицу спиралью - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Дан массив NxN (N<=10), заполненный буквами. Вывести массив спиралью. Пример: Ввод a b c d e f g h i Вывод a b c h i d g f e

Решение задачи: «Вывести матрицу спиралью»

textual
Листинг программы
  1. const n=4;
  2. type matr=array[1..n,1..n] of char;
  3.      mas=array[1..n*n] of char;
  4. var a:matr;
  5.     b:mas;
  6.     i,imax,imin,j,jmax,jmin,k:integer;
  7. begin
  8.  k:=1;
  9.  writeln('A:');
  10.  for i:=1 to n do
  11.   begin
  12.    for j:=1 to n do
  13.     begin
  14.      a[i,j]:=chr(97+random(26));
  15.      b[k]:=a[i,j];
  16.      inc(k);
  17.      write(a[i,j]:3)
  18.     end;
  19.    writeln
  20.   end;
  21.  writeln;
  22.  jmin:=1;jmax:=n;imin:=2;imax:=n;
  23.  k:=0;
  24.  repeat
  25.    for j:=jmin to jmax do
  26.     begin
  27.       inc(k);
  28.       a[imin-1,j]:=b[k];
  29.     end;
  30.    for i:=imin to imax do
  31.     begin
  32.       inc(k);
  33.       a[i,jmax]:=b[k];
  34.     end;
  35.     dec(jmax);
  36.    for j:=jmax downto jmin do
  37.     begin
  38.       inc(k);
  39.       a[imax,j]:=b[k];
  40.     end;
  41.     dec(imax);
  42.    for i:=imax downto imin do
  43.     begin
  44.       inc(k);
  45.       a[i,jmin]:=b[k];
  46.     end;
  47.    inc(imin);
  48.    inc(jmin);
  49.   until k>=n*n;
  50.  writeln('A'':');
  51.  for i:=1 to n do
  52.   begin
  53.     writeln;
  54.     for j:=1 to n do write(a[i,j]:3);
  55.   end;
  56.   readln;
  57. end.

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

  1. Объявлены две матрицы: квадратная матрица a размером n x n типа array[1..n,1..n] of char и одномерная матрица b размером n x n типа array[1..n*n] of char.
  2. В цикле заполняется матрица a случайными символами.
  3. Задаются границы для внутреннего цикла, который будет выводить символы матрицы a в консоль.
  4. Внутренний цикл перебирает строки матрицы a.
  5. Внешний цикл перебирает столбцы матрицы a.
  6. Каждая итерация внутреннего цикла выводит символ из матрицы a в консоль.
  7. В конце программы выводится итоговая матрица a.

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы