Есть исходный программный код на языке pascal, который решает определённую **, составить словесный подробный алгоритм решения (почему в циклах мы используем именно такие выражения, почему так происходит перебор элементов и т.п.)
*
uses crt;
const nmax=16;
var x: array[1..nmax,1..nmax]of integer;
y: array[1..nmax*nmax] of integer;
n,i,j,k,l: integer;
begin
randomize;
repeat
write('размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('матрица: ');
for i: =1 to n do
begin
for j: =1 to n do
begin
x[i,j]: =random(50);
write(x[i,j]: 4);
end;
writeln;
end;
writeln('массив: ');
k: =0;
for l: =2*n-1 downto 1 do //количество диагоналей
begin
if l> n then //выше главной
begin
if odd(l) then //нечетные-вниз
for i: =1 to 2*n-l do
begin
k: =k+1;
y[k]: =x[i,i+l-n];
end
else
for i: =2*n-l downto 1 do //четные-вверх
begin
k: =k+1;
y[k]: =x[i,i+l-n];
end
end
else if l< =n then //ниже главной и на ней
begin
if odd(l) then
for i: =n-l+1 to n do
begin
k: =k+1;
y[k]: =x[i,i-n+l];
end
else
for i: =n downto n-l+1 do
begin
k: =k+1;
y[k]: =x[i,i-n+l];
end;
end;
end;
for i: =1 to k do
write(y[i]: 4);
end.
**
дана матрица x размерности n*n . получить одномерный массив y размерности n^2 , выбирая элементы матрицы по цепи, начиная с верхнего правого угла, двигаясь по диагоналям, параллельным главной диагонали матрицы.
, как настроение? меня зовут алина, мне 18 лет. вчера рассталась с парнем, хочется секса без обязательств.
если тебе это интересно, напиши мне тут -
мой ник - kisska