Помогите!!!
Вариант №11 Дан двумерный массив целых чисел А[1..N,1..N]. Сформируйте линейный массив В[1..NN], получающийся при чтении данного массива так, как показано на рисунке 11
М | а ты сам поиском пользуешься? ![]() Altair |
const
n = 7;
k = -1;
arr: array[1 .. n, 1 .. n] of integer =
((1, 2, 3, 4, 5, 6, 7),
(2, 3, 4, 5, 6, 7, 8),
(3, 4, 5, 6, 7, 8, 9),
(2, 3, 4, 5, 6, 7, 8),
(1, 5, 3, 2, 8, 7, 6),
(8, 3, 2, 9, 0, 3, 2),
(9, 8, 7, 6, 5, 4, 3));
var
lin: array[1 .. sqr(n)] of integer;
i, j, count: integer;
begin
i := n; j := n;
count := 0;
repeat
while (j > 0) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
dec(j)
end;
inc(j); dec(i);
while (i > 0) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
dec(i)
end;
inc(i); inc(j);
while (j < succ(n)) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
inc(j)
end;
dec(j); inc(i);
while (i < succ(n)) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
inc(i)
end;
dec(i); dec(j)
until count = sqr(n);
for i := 1 to count do
write(lin[i]:4);
writeln;
end.