Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Через 3 дня :

День победы русской эскадры под командованием П.С. Нахимова над турецкой эскадрой у мыса Синоп (1853)


Поможите, люди добрые!
На страницу Пред.  1, 2

Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Alekc
Частый гость




Зарегистрирован: 01.04.2007
Сообщения: 28

СообщениеВт, 22-Май-2007 8:38 
Цитата

to Ktf
Попробуй запустить программу с такой матрицей: ;)
delphi:
  1. a: array[1..m] of array[1..n] of byte =
  2.     ( (1,1,0,1,1,1,1,1,1,1),
  3.       (1,1,1,1,1,1,1,1,1,1),
  4.       (1,1,0,1,1,1,1,1,1,1),
  5.       (1,1,0,1,1,1,1,1,1,1),
  6.       (1,1,0,1,1,1,1,1,1,1),
  7.       (1,1,0,1,1,1,1,1,1,1),
  8.       (1,1,1,1,1,1,1,1,1,1)
  9.     );
  10.  

ИМХО надо так:
delphi:
  1.   for i:=1 to m do begin
  2.     c_0:=0;
  3.     for j:=1 to n do begin
  4.       if (a[i][j]=0) then inc(c_0)
  5.       else if (c_0>0) then begin
  6.         max_0:=Max(c_0, max_0);
  7.         c_0 := 0;
  8.       end;
  9.     end;
  10.     max_0:=Max(c_0, max_0);
  11.   end;
  12.  
  13.   for j:=1 to n do begin
  14.     c_0:=0;
  15.     for i:=1 to m do begin
  16.       if (a[i][j]=0) then inc(c_0)
  17.       else if (c_0>0) then begin
  18.         max_0:=Max(c_0, max_0);
  19.         c_0 := 0;
  20.       end;
  21.     end;
  22.     max_0:=Max(c_0, max_0);
  23.   end;


PS: Max() находится в юните Math.
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж FIDO
Я живу тут....


Возраст: 30
Знак зодиака: Рыбы
Зарегистрирован: 21.03.2007
Сообщения: 483
Откуда: г. Тверь
СообщениеВт, 22-Май-2007 8:47 
Цитата

а если мне надо отдельно по вертикали цепочку и по горизонтали?

Добавлено спустя 35 секунд:

Как быть в таком случае?

_________________
Существуют три вида лжи: бахвальство, вранье и отчетность.
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж Ktf
Администратор


Возраст: 39
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеВт, 22-Май-2007 9:15 
Цитата

to Alekc
ты разумеется прав.
но я намеренно в каждом своем примере допускаю как минимум одну ошибку.
чтоб приходилось все-таки подумать после тупого копирования кода.
;)

_________________
Пойду посплю перед сном.
В начало
Посмотреть профиль Отправить личное сообщение
Alekc
Частый гость




Зарегистрирован: 01.04.2007
Сообщения: 28

СообщениеВт, 22-Май-2007 9:25 
Цитата

to Ktf
Надо заранее предупреждать ;)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 39
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеВт, 22-Май-2007 9:36 
Цитата

to Alekc
договорились ;)

вот мой вариант без ошибки
не требует модуля math

delphi:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. const
  3.   m = 7;
  4.   n = 10;
  5.   a: array[1..m] of array[1..n] of byte =
  6.     ( (1,1,0,1,1,1,1,1,1,1),
  7.       (1,1,1,1,1,1,1,1,1,1),
  8.       (1,1,0,1,1,1,1,1,1,1),
  9.       (1,1,0,1,1,1,1,1,1,1),
  10.       (1,1,0,1,1,1,1,1,1,1),
  11.       (1,1,0,1,1,1,1,1,1,1),
  12.       (1,1,1,1,1,1,1,1,1,1)
  13.     );
  14. var
  15.   i,j: integer;
  16.   max_0, c_0: integer;
  17. begin
  18.   max_0:=0;
  19.  
  20.   for i:=1 to m do begin
  21.     c_0:=0;
  22.     for j:=1 to n do begin
  23.       c_0:=(c_0+1)*ord(a[i][j]=0);
  24.       if c_0>max_0 then max_0:=c_0;
  25.     end;
  26.   end;
  27.  
  28.   for j:=1 to n do begin
  29.     c_0:=0;
  30.     for i:=1 to m do begin
  31.       c_0:=(c_0+1)*ord(a[i][j]=0);
  32.       if c_0>max_0 then max_0:=c_0;
  33.     end;
  34.   end;
  35.  
  36.   ShowMessage(IntToStr(max_0));
  37.  
  38. end;


to *Александр*
ты же ведь просил подкинуть "идейку основательную", ну так не взыщи с подкинувшего за то, что подкинутый вариант тебе придется дотачивать самому.

_________________
Пойду посплю перед сном.
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж FIDO
Я живу тут....


Возраст: 30
Знак зодиака: Рыбы
Зарегистрирован: 21.03.2007
Сообщения: 483
Откуда: г. Тверь
СообщениеВт, 22-Май-2007 9:42 
Цитата

ok=))) Ребят, реально выручили...

Добавлено спустя 1 минуту 10 секунд:

только вот можете рассказать, для чего служит допустим ord???

_________________
Существуют три вида лжи: бахвальство, вранье и отчетность.
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alekc
Частый гость




Зарегистрирован: 01.04.2007
Сообщения: 28

СообщениеВт, 22-Май-2007 9:52 
Цитата

to Ktf
Оптимизация внушает :)

to *Александр*
F1
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж FIDO
Я живу тут....


Возраст: 30
Знак зодиака: Рыбы
Зарегистрирован: 21.03.2007
Сообщения: 483
Откуда: г. Тверь
СообщениеВт, 22-Май-2007 9:55 
Цитата

Все, понял, сделал...ОГРОМНОЕ ВСЕМ СПАСИБО!!!
_________________
Существуют три вида лжи: бахвальство, вранье и отчетность.
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Страница 2 из 2 На страницу Пред.  1, 2
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100