Дана квадратная матрица. Получить вектор, элементами которого являются суммы элементов всех диагоналей, параллельных побочной (включаю побочную диагональ)

Для откладки программы элементы массива сформировать с помощью генератора случайных чисел.

code: #pascal
program PascalGuru;
var A:array[1..100,1..100] of integer;
    vector:array[1..100] of integer;
    n,i,j,m:integer;
 
procedure min(n:integer; var nv:integer); {процедура выводящая суммы/ nv=кол-ко сумм диагоналей}
var   i,j,p,pk,sum,index,sumarno :integer;  {нужные переменные для вычисления}
      ot:array[1..100] of integer;
begin
 pk:=1;
 sumarno:=0; {обнуляем переменную ОБЩЕЙ суммы по всем диагоналям}
 for i:=1 to 100 do
 if i mod 2=0 then begin inc(pk); ot[pk]:=i;  end; {вычисляем номера диагоналей}
 index:=0;  {обнуляем переменную индексов диагоналей }
 for p:=1 to ot[n]+1  do {цикл номеров диагоналей}
 begin
  sum:=0;  {обнуляем переменную суммы текущей диагонали }
  for i:=1 to n do
  for j:=1 to n do
  if i+j-1=p then sum:=sum+A[i,j]; {вычисляем сумму текущей диагонали }
  inc(index);  {+1 переменной индексов диагоналей }
  vector[index]:=sum;  {записываем сумму в вектор}
  sumarno:=sumarno+sum; {увеличиваем переменную ОБЩЕЙ суммы по всем диагоналям - на текущ.     сумму}
  writeln('Summa "',index,'" paralelinoi p.diagonali= ',sum); {текущ. сумму выводим на  экран}
 end;
 writeln;
 writeln('Summa vsex diagonalei= ',sumarno); {выводим на экран результат ОБЩЕЙ суммы по всем диагоналям}
 nv:=index;
end;
{*********************///***************************  }
 
begin
 randomize;
 write('N= '); readln(n);  {ввод размера матрицы}
 
 for i:=1 to n do
 for j:=1 to n do  A[i,j]:=(-3)+random(9); {заполнение элементов матрицы}
 
 for i:=1 to n do begin writeln;
 for j:=1 to n do write (A[i,j]:8);  end; { вывод матрицы на экран }
 
 writeln;
 writeln;
 min(n,m); {***вызов процедуры, выводящей суммы***}
 
 writeln;
 writeln('Vector iz summ:');;
 for i:=1 to m do write(vector[i]:8); {вывод вектора из сумм диагоналей}
 
 readln;
end.      
Поделиться:

Похожие статьи: