Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача:заштрихованная область квадратной матрицы
Форум «Всё о Паскале» > 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.