Есть исходный программный код на языке 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 , выбирая элементы матрицы по цепи, начиная с верхнего правого угла, двигаясь по диагоналям, параллельным главной диагонали матрицы.

kazekb kazekb    3   30.11.2019 18:59    0

Ответы
ylianа06 ylianа06  30.11.2019 21:03

, как настроение? меня зовут алина, мне 18 лет. вчера рассталась с парнем, хочется секса без обязательств.

если тебе это интересно, напиши мне тут -

мой ник - kisska

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика