Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача:заштрихованная область квадратной матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Анастасия
Задача .Дана квадратная матрица 9*9 . Найти наибольший элемент и его индексы внутри заштрихованной(в прикрепленном файле -зеленой) области. (Знаю , что надо как-то формулой связать строки и столбцы(i и j), но как?).
klem4
Не уверен что оптимальный вариант, но работать с этим куском можнотак :

uses crt;
const
  n = 13;
var
   x : array [1..n, 1..n] of byte;
   i,j,m : byte;

begin

   clrscr;

   FillChar(x, sizeof(x), 0);

   m := n div 2 + 1;


   for i := 1 to m  do
    for j := m-i+1 to m + i - 1 do x[i,j] := 7;

   for i := m + 1 to n do
    for j := i - m + 1 to m + n - i do x[i,j] := 7;

   for i := 1 to n do begin
      writeln;
      for j := 1 to n do write(x[i,j],' ');
   end;
   readln;
end.
APAL
Цитата(Анастасия @ 15.02.2006 19:49) *

... (Знаю , что надо как-то формулой связать строки и столбцы(i и j), но как?).Нажмите для просмотра прикрепленного файла


Костяк (т.е. скелет) проги:

Код

For j:=5 downto 1 do
  For i:=6-j to 5 do
  Begin

    If m[i,j]>MaxM then Begin
    Begin
      MaxM:=m[i,j];
      MaxX:=i;
      MaxY:=j;
    End;

    If m[10-i,j]>MaxM then Begin
    Begin
      MaxM:=m[10-i,j];
      MaxX:=10-i;
      MaxY:=j;
    End;

    If m[i,10-j]>MaxM then Begin
    Begin
      MaxM:=m[i,10-j];
      MaxX:=i;
      MaxY:=10-j;
    End;

    If m[10-i,10-j]>MaxM then Begin
    Begin
      MaxM:=m[10-i,10-j];
      MaxX:=10-i;
      MaxY:=10-j;
    End;

  End;


Примерно так, но у меня тут Паскаль не установлен на работе, так что требуется проверка... smile.gif


P.S.: Извини, Клем, отвлекали по работе, а то был бы раньше... smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.