Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Чет про программирование / практика / 1) Обход матрицы по спирали

.docx
Скачиваний:
24
Добавлен:
25.04.2015
Размер:
13.65 Кб
Скачать

Обход матрицы по спирали (n^2)

const

n = 5;

var

a: array[1..n, 1..n] of integer;

i, j, dx, dx1, dy, dy1, x, y, dir: integer;

procedure inc_dir; inline;

begin

case dir of

1: inc(dy);

2: inc(dx);

3: inc(dy1);

4: inc(dx1);

end;

if dir < 4 then inc(dir) else

if dir = 4 then dir := 1;

end;

begin

for i := 1 to n do begin

for j := 1 to n do begin

a[i, j] := i*10 + j;

write(a[i, j], ' ');

end;

writeln;

end; // вывод матрицы

dir := 1;

x := 1;

y := 1;

dx1 := 1;

for i := 1 to n*n do begin

writeln(a[x, y]);

case dir of

1:

begin

inc(y);

if y = n-dy then inc_dir;

end;

2:

begin

inc(x);

if x = n-dx then inc_dir;

end;

3:

begin

dec(y);

if y = 1+dy1 then inc_dir;

end;

4:

begin

dec(x);

if x = 1+dx1 then inc_dir;

end;

end;

end;

readln;

end.