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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 20:29   #1
WeRsUs
 
Регистрация: 26.10.2010
Сообщений: 7
По умолчанию Проблема в STRINGGRID !!!

Народ . У меня проблема со Stringgrid . Моя задача состоит в том , что бы найти в stringgrid столбец , в котором находиться наибольшее количество положительный чисел . Вот мой код :
procedure TForm1.Button2Click(Sender: TObject);
var
jmax,max,sum,i,j:integer;
begin
sum:=0;
max:=0;
for j:=0 to stringgrid1.colCount-1 do begin
sum:=0;
for i:=0 to stringgrid1.rowCount-1 do begin
if strtoint(stringgrid1.Cells[j,i])>0 then
sum:=sum+strtoint(stringgrid1.Cells[j,i]);
end;
if sum>max then begin
max:=sum;
jmax:=j;
end;
end;
for j := jmax to StringGrid1.colCount - 2 do
for I := 0 to StringGrid1.rowCount - 1 do begin
StringGrid1.Cells[j,i]:=StringGrid1.Cells[j+1,i];
end;
StringGrid1.colCount:=StringGrid1.c olCount-1;
я заполняю Stringgrid кнопкой рандомно , мне выводиться какой то массив . Проблема состоит в том , что когда в массиве есть несколько столбцов , в которых одинаковое количество положительных чисел , то мне нужно удалять первый такой столбец , а удаляет самый последний . И я не знаю как так сделать .
WeRsUs вне форума Ответить с цитированием
Старый 28.10.2010, 20:58   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

используйте цикл с downto
и еще, sum:=sum + strtoint(stringgrid1.Cells[j,i]) - наверное надо Inc(Sum) вам ведь нужно найти кол-во положительных эл-тов, а не их сумму.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 28.10.2010, 21:00   #3
WeRsUs
 
Регистрация: 26.10.2010
Сообщений: 7
По умолчанию

а можешь показать как ?
WeRsUs вне форума Ответить с цитированием
Старый 28.10.2010, 21:16   #4
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

на счет downto я тупанул, это если бы у тебя проверялось по условию Sum >= Max.
Вот код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Jmax, Max, Sum, i, j: integer;
begin
  Max:=0;
  for j:=0 to StringGrid1.ColCount - 1 do
    begin
      Sum:=0;
      for i:=0 to StringGrid1.RowCount - 1 do
        if StrToInt(StringGrid1.Cells[j,i]) > 0 then Inc(Sum);
      if Sum > Max then
                       begin
                         Max:=Sum;
                         Jmax:=j;
                       end;
    end;

  for j:=Jmax to StringGrid1.ColCount - 2 do
    for i:=0 to StringGrid1.RowCount - 1 do
      StringGrid1.Cells[j,i]:=StringGrid1.Cells[j+1,i];

  StringGrid1.ColCount:=StringGrid1.ColCount - 1;
end;
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 28.10.2010, 21:35   #5
WeRsUs
 
Регистрация: 26.10.2010
Сообщений: 7
По умолчанию

не не работает . теперь оно удаляет просто последний столбец при любом результате
WeRsUs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема в StringGrid kta87 Общие вопросы Delphi 3 12.06.2010 14:42
Проблема со StringGrid(Не прозрачное выделение)) sawer5 Общие вопросы C/C++ 0 04.04.2010 12:24
Проблема со StringGrid. Не работает код. -=aHTPoПоС=- Помощь студентам 9 05.11.2009 16:07
Проблема выделения ячейки в StringGrid Velh Компоненты Delphi 5 23.10.2009 00:20
StringGrid[..]..... zotox Помощь студентам 3 24.07.2009 10:49