Помощь - Поиск - Пользователи - Календарь
Полная версия: квадратная матрица...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
MI666
По заданной квадратной матрице размером 10*10 построить вектор длиной 19, элементы которого - максимумы элементов диагоналей, паралельных главной диагонали.

thanks...
trminator
Элементы, стоящие на диагонали, параллельной главной:
x[i,j] : (i - j = c = const)

c дает номер диагонали. В твоей матрице будут диагонали с номерами
-9, -8, -7, ..., 0 (главная), 1, ..., 9

То есть можно просто пройти по матрице, выясняя, какой диагонали принадлежит текущий элемент, и запихивая его в соответствующий элемент вектора.

ЗЫЖ: много же вам задали... smile.gif
virt
Код
program maxins_on_diags;
var a:array[1..10,1..10]of integer;
   i,j,k:integer;
   b:array[1..19]of integer;
   v:integer;

begin
  assign(input,'gdiagmax.in');reset(input);
  assign(output,'gdiagmax.out');rewrite(output);
  for i:=1 to 10 do
     for j:=1 to 10 do
        read(a[i,j]);
  for k:=1 to 10 do
  begin
     v:=-maxint-1;
     for i:=1 to 11-k do
        if a[i,k+i-1] > v then v:=a[i,k+i-1];
     b[11-k]:=v;
     v:=-maxint-1;
     for i:=1 to 11-k do
        if a[k+i-1,i] > v then v:=a[k+i-1,i];
     b[9+k]:=v;
  end;
  for i:=1 to 19 do
     write(b[i],' ');
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.