Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2010, 19:23   #1
hewlett
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 29
По умолчанию Массивы

Матрица A[n;m] состоит из нулей и единиц. Какова в ней длина самой длинной цепочки подряд стоящих нулевых элементов по горизонтали, вертикали и диагонали
hewlett вне форума Ответить с цитированием
Старый 13.06.2010, 19:50   #2
Roland_Lviv_ua
 
Аватар для Roland_Lviv_ua
 
Регистрация: 13.06.2010
Сообщений: 9
По умолчанию

Немного коряво но горизонтальные компоненты вычислить можно, остальные по аналогии=))



m:=1;
while i<=m do
for i:=1 to n do
begin
if A[i,m]=0 then inc(k[i]);
end;
for i:=1 to n do
if k[1]<k[i] then k[1]:=k[i];
inc (m);
end;


к -- ето количество 0
Roland_Lviv_ua вне форума Ответить с цитированием
Старый 14.06.2010, 00:35   #3
zmey31313
Форумчанин
 
Регистрация: 19.11.2009
Сообщений: 155
Сообщение

Цитата:
m:=1;
while i<=m do
for i:=1 to n do
begin
if A[i,m]=0 then inc(k[i]);
end;
for i:=1 to n do
if k[1]<k[i] then k[1]:=k[i];
inc (m);
end;
По моему, он вообще ни как не правильный.
Вот вроде так :
Код:
var
  n, m : integer;
  a : array[n, m];
  kol, oc, i, j, Bufkol : integer;
  vert, diag, gor : integer;  //результаты по горизонтали, вертикали и диагонали
begin
//горизонталь
  for i := 0 to n do
  for j := 0 to m do
    begin
      If oc <> i then kol := 0;
      If a[n, m] = 0 then 
        begin
          kol := kol + 1;
          If Bufkol < kol then 
            BufKol := kol;
        end
       else
        begin
          If Bufkol < kol then 
            BufKol := kol; 
          kol := 0;
        end;
      oc := i;
     gor := BufKol;
    end;

kol := 0;
oc := 0;
BufKol := 0;

//вертикаль
  for i := 0 to m do
  for j := 0 to n do
    begin
      If oc <> i then kol := 0;
      If a[n, m] = 0 then 
        begin
          kol := kol + 1;
          If Bufkol < kol then 
            BufKol := kol;
        end
       else
        begin
          If Bufkol < kol then 
            BufKol := kol; 
          kol := 0;
        end;
      oc := i;
      vert := BufKol;
    end;

kol := 0;
oc := 0;
BufKol := 0;

//Диагональ
  for i := 0 to m do
    begin
      If oc <> i then kol := 0;
      If a[m, m] = 0 then 
        begin
          kol := kol + 1;
          If Bufkol < kol then 
            BufKol := kol;
        end
       else
        begin
          If Bufkol < kol then 
            BufKol := kol; 
          kol := 0;
        end;
      oc := i;
      diag := BufKol;
    end;

end;
По всем вопросам связанным с Делфи или Паскаль обращайтесь, чем смогу тем и помогу.
Помог жми на весы!!!
dmi83206389@mail.ru
zmey31313 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Массивы на С++ Qwerik Помощь студентам 0 05.04.2010 16:49
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12