Вывести матрицу по спирали в текстовый файл. - Pascal ABC

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

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

Дана квадратная матрица A порядка M (M — нечетное число). Начиная с элемента A1;1 и перемещаясь по часовой стрелке, вывести все ее элементы в текстовый файл по спирали: первая строка, последний столбец, последняя строка в обратном порядке, первый столбец в обратном порядке, оставшиеся элементы второй строки и т. д.; последним выводится центральный элемент матрицы.

Решение задачи: «Вывести матрицу по спирали в текстовый файл.»

textual
Листинг программы
var
  k,ki,kj: integer;
...
  assign(output, 'output.txt');
  rewrite(output);
  i:=1; j:=1;
  ki:=0; kj:=1;
  for k:=1 to m*m do begin
    write(a[i,j], ' ');
    inc(i,ki); inc(j, kj);
    if (kj>0) and (j>m-i+1) then begin
      dec(j); inc(i); kj:=0; ki:=1;
    end;
    if (kj<0) and (j<m-i+1) then begin
      inc(j); dec(i); kj:=0; ki:=-1;
    end;
    if (ki>0) and (i>j) then begin
      dec(i); dec(j); kj:=-1; ki:=0;
    end;
    if (ki<0) and (i<=j) then begin
      inc(i); inc(j); kj:=1; ki:=0;
    end;
  end;
  close(output);

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

  1. Переменные k, ki, kj объявлены как целочисленные.
  2. Указатель output присвоен значение 'output.txt'.
  3. Функция rewrite(output) используется для перезаписи файла output.txt.
  4. Переменные i и j инициализированы как 1.
  5. Переменные ki и kj инициализированы как 0.
  6. Цикл for k:=1 to m*m do начинается. Здесь m — размер матрицы.
  7. Строка a[i,j] выводится в файл output.txt с пробелом.
  8. Переменные i и j инкрементируются на ki и kj соответственно.
  9. Если kj больше 0 и j больше m-i+1, то переменные i, j и kj инкрементируются и устанавливаются в 0 и 1 соответственно.
  10. Если kj меньше 0 и j меньше m-i+1, то переменные i, j и kj инкрементируются и устанавливаются в -1 и 0 соответственно.
  11. Если ki больше 0 и i больше j, то переменные i и j инкрементируются и устанавливаются в 0 и -1 соответственно.
  12. Если ki меньше 0 и i<=j, то переменные i и j инкрементируются и устанавливаются в 1 и 0 соответственно.
  13. Цикл for заканчивается.
  14. Файл output.txt закрывается.

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


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

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

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