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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2014, 17:56   #1
Джек12
Пользователь
 
Регистрация: 07.09.2014
Сообщений: 18
По умолчанию таблица StringGrid

Помогите пожалуйста,нужно заполнить таблицу случайными числами.. и посчитать сумму каждого столбца и строки.. таблица 11 на 11 в 11 строке должны выводиться суммы столбцов.. а в 11 столбце - суммы строк..
Джек12 вне форума Ответить с цитированием
Старый 14.09.2014, 18:36   #2
Foreseen
Техножрец
Форумчанин
 
Аватар для Foreseen
 
Регистрация: 04.07.2014
Сообщений: 289
По умолчанию

Так сойдет?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, k, sum_Y, sum_X: Integer;
begin
Randomize;
 for i := 0 to Stringgrid1.ColCount-2 do
 for k := 0 to Stringgrid1.RowCount-2 do
   Stringgrid1.Cells[i, k]:=inttostr(Random(100));
 for i := 0 to Stringgrid1.ColCount-2 do
  Begin
   sum_Y:=0;
   for k := 0 to Stringgrid1.RowCount-2 do
    begin
      sum_Y:=sum_Y+strtoint(Stringgrid1.Cells[i, k]);
      Stringgrid1.Cells[i, Stringgrid1.RowCount-1]:=inttostr(sum_Y);
    end;
  End;
 for k := 0 to Stringgrid1.ColCount-2 do
  Begin
   sum_X:=0;
   for i := 0 to Stringgrid1.RowCount-2 do
    begin
     sum_X:=sum_X+strtoint(Stringgrid1.Cells[i, k]);
     Stringgrid1.Cells[Stringgrid1.ColCount-1, k]:=inttostr(sum_X);
    end;
  End;
end;
— Двери есть везде. Просто нужно знать, как в них войти.
Foreseen вне форума Ответить с цитированием
Старый 14.09.2014, 18:51   #3
Джек12
Пользователь
 
Регистрация: 07.09.2014
Сообщений: 18
По умолчанию

Эх..на for ... почему то выдает ошибку((
я вот сделала.. чтоб считал столбцы.. он считает.. а как сделать чтоб считал строки..я не могу сообразить(( подскажите пожалуйста как...

procedure TForm1.BitBtn1Click(Sender: TObject);
var i, j, a: integer;

begin
for i:=0 to 9 do
begin
a := 0;
for j:=0 to 9 do
a := a + StrToInt(StringGrid1.Cells[i,j]);
StringGrid1.Cells[i,10] := IntToStr(a);
end;
end;
Джек12 вне форума Ответить с цитированием
Старый 14.09.2014, 18:54   #4
Foreseen
Техножрец
Форумчанин
 
Аватар для Foreseen
 
Регистрация: 04.07.2014
Сообщений: 289
По умолчанию

Цитата:
Сообщение от Джек12 Посмотреть сообщение
procedure TForm1.BitBtn1Click(Sender: TObject);
var i, j, a: integer;

begin
for i:=0 to 9 do
begin
a := 0;
for j:=0 to 9 do
a := a + StrToInt(StringGrid1.Cells[i,j]);
StringGrid1.Cells[i,10] := IntToStr(a);
end;
end;
begin
for j:=0 to 9 do
begin
a := 0;
for i:=0 to 9 do
a := a + StrToInt(StringGrid1.Cells[i,j]);
StringGrid1.Cells[10,j] := IntToStr(a);
end;
end;


Цитата:
Эх..на for ... почему то выдает ошибку((
А ошибку сюда написать конешно нельзя, секретная ошибка, да?)
— Двери есть везде. Просто нужно знать, как в них войти.
Foreseen вне форума Ответить с цитированием
Старый 14.09.2014, 19:01   #5
Джек12
Пользователь
 
Регистрация: 07.09.2014
Сообщений: 18
По умолчанию

Теперь работает)) спасибо огромное!)))
Джек12 вне форума Ответить с цитированием
Старый 14.09.2014, 19:05   #6
Foreseen
Техножрец
Форумчанин
 
Аватар для Foreseen
 
Регистрация: 04.07.2014
Сообщений: 289
По умолчанию

На здоровье
— Двери есть везде. Просто нужно знать, как в них войти.
Foreseen вне форума Ответить с цитированием
Старый 14.09.2014, 19:24   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Или так:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i, j, a: integer;
   b:array[0..9]of Integer;
begin
 for j:=0 to 9 do b[j]:=0;
 for i:=0 to 9 do
  begin
   a := 0;
   for j:=0 to 9 do
    begin
     a := a + StrToIntDef(StringGrid1.Cells[i,j],0);  // Def - на всякий  случай
     b[j]:=b[j]+StrToIntDef(StringGrid1.Cells[i,j],0);
    end;
   StringGrid1.Cells[i,10] := IntToStr(a);
  end;
 for j:=0 to 9 do StringGrid1.Cells[10,j] := IntToStr(b[j]);;
end;
PS Сейчас подумал - StrToIntDef не обязательно, чтожно просто StrToInt, потому что здесь не вручную заполняют, а из Random, поэтому белиберды в ячейках точно не будет.

Последний раз редактировалось type_Oleg; 14.09.2014 в 19:32.
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таблица Stringgrid Nightway Общие вопросы Delphi 11 15.05.2014 18:20
Дана таблица StringGrid rostik123 C++ Builder 4 30.09.2012 19:31
Таблица StringGrid hacker-allv Общие вопросы Delphi 1 26.03.2012 21:43
Stringgrid и таблица Word Максон11 Помощь студентам 0 11.04.2011 13:42
таблица stringgrid Hilda Помощь студентам 6 06.05.2010 21:37