![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый вечер господа.
Есть код: var i,j,s,ss:integer; arr:array[0..4,0..4]of integer; begin for i:=0 to 4 do for j:=0 to 4 do arr[i,j]:=StrToInt(StringGrid1.Cells[j,i]);//Заполняем массив {счетчики i,j идут соответственно от нуля к четырем} ss:=0; s:=0; for i:=0 to 4 do //А вот здесь они считаются от ПЯТИ к НУЛЮ! begin for j:=0 to 4 do //И здесь тоже. if arr[i,j]=arr[i,j+1] then ss:=ss+1; if ss>s then s:=ss; ss:=0; end; Программирую на Дельфи уже достаточно давно, а такого еще ни разу не видел. Что подскажите? |
|
#2
|
||||
|
||||
|
Цитата:
Не могут они считаться в обратную сторому! Может проблема в чем-то другом? Проверь все остальное! Цитата:
Последний раз редактировалось Yurk@, 07.01.2008 в 23:25. |
|
#3
|
||||
|
||||
|
Может два витка цикла совпадают и получается новое значение. Непонятно...
![]() |
|
#4
|
||||
|
||||
|
Два витка не могут совпадать!
for i:=0 to 4 do Переменная каждый раз обнуляется! Последний раз редактировалось Yurk@, 08.01.2008 в 00:01. |
|
#5
|
||||
|
||||
|
Ну это я знаю, из-за чего же тогда, пытаюсь тоже решить. А вдруг ?
|
|
#6
|
||||
|
||||
|
Это так(никакой 5 не вылезает) ?
Код:
var i,j,s,ss:integer; arr:array[0..4,0..4]of integer; begin for i:=0 to 4 do begin for j:=0 to 4 do begin arr[i,j]:=StrToInt(StringGrid1.Cells[j,i]);//Заполняем массив ss:=0; s:=0; end; end; for i:=0 to 4 do begin for j:=0 to 4 do begin if arr[i,j]=arr[i,j+1] then ss:=ss+1; if ss>s then s:=ss; ss:=0; end; end; end; Последний раз редактировалось Oleg, 08.01.2008 в 00:31. |
|
#7
|
||||
|
||||
|
Я тя немножко дополню:
Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j,s,ss:integer; arr:array[0..4,0..4]of integer; begin ss:=0; s:=0; for i:=0 to 4 do for j:=0 to 4 do begin if Length(StringGrid1.Cells[i,j])<>0 then //проверка на наличие текста в ячейке (не исключено что его там нет) arr[i,j]:=StrToInt(StringGrid1.Cells[i,j]); end; for i:=0 to 4 do for j:=0 to 4 do begin if arr[i,j]=arr[i,j+1] then ss:=ss+1; if ss>s then s:=ss; ss:=0; end; end; Поддерживаю! НИКАКОГО 5 там нет ! Последний раз редактировалось Yurk@, 08.01.2008 в 00:53. |
|
#8
|
||||
|
||||
|
Dastik отключи оптимизацию для этого куска кода.
|
|
#9
|
||||
|
||||
|
Цитата:
Код:
for i:=4 downto 0 do ... |
|
#10
|
||||
|
||||
|
Цитата:
Абсолютно с тобой согласен! Но у него код выглядит иначе! Код:
for i:=0 to 4 do //при таком коде обратно он считать не будет |