Вывести матрицу по спирали в текстовый файл. - 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);
Объяснение кода листинга программы
- Переменные k, ki, kj объявлены как целочисленные.
- Указатель output присвоен значение 'output.txt'.
- Функция rewrite(output) используется для перезаписи файла output.txt.
- Переменные i и j инициализированы как 1.
- Переменные ki и kj инициализированы как 0.
- Цикл for k:=1 to m*m do начинается. Здесь m — размер матрицы.
- Строка a[i,j] выводится в файл output.txt с пробелом.
- Переменные i и j инкрементируются на ki и kj соответственно.
- Если kj больше 0 и j больше m-i+1, то переменные i, j и kj инкрементируются и устанавливаются в 0 и 1 соответственно.
- Если kj меньше 0 и j меньше m-i+1, то переменные i, j и kj инкрементируются и устанавливаются в -1 и 0 соответственно.
- Если ki больше 0 и i больше j, то переменные i и j инкрементируются и устанавливаются в 0 и -1 соответственно.
- Если ki меньше 0 и i<=j, то переменные i и j инкрементируются и устанавливаются в 1 и 0 соответственно.
- Цикл for заканчивается.
- Файл output.txt закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д