![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
||||
|
||||
|
а вообще попробую в своей программе удалить цикл for, а то что внутри цикла оставить
а переменные которые ты к нулю приравневаешь перенеси в начало программы |
|
#17
|
|||
|
|||
|
Цитата:
вот этот момент можешь объяснить, непонимаю... |
|
#18
|
|||
|
|||
|
Цитата:
![]() |
|
#19
|
||||
|
||||
|
вообще я ток заметил, у тебя циклы while бесконечные, тебе твои i и j надо увеличивать, поэтому перед закрытем цикла увеличивай переменную на единицу , т.е. i:=i+1; или j:=j+1;
|
|
#20
|
||||
|
||||
|
Может такое решение пойдет?
Код:
var
i, j: Byte;
Sum: Double;
begin
for i := 0 to StringGrid1.RowCount - 1 do
begin
Sum := 0;
for j := 0 to StringGrid1.ColCount - 1 do
Sum := Sum + StrToFloatDef(StringGrid1.Cells[j,i], 0);
Label1.Caption := Label1.Caption + 'Строка №' + IntToStr(i+1) +
' = ' + FloatToStr(Sum) + '; ';
end;
end; |
|
#21
|
|||
|
|||
|
спасибо! а как еще найти сумму всех элементов???
|
|
#22
|
||||
|
||||
|
Сумма всех элементов произвольной матрицы
Код:
var Summ:real; //сумма
col:integer; //столбец
row:integer; //строка
begin
Summ:=0;
for row := 1 to StringGrid1.RowCount do
begin
for col := 1 to StringGrid1.ColCount do
//если ячейка не пустая то суммируем ее
if StringGrid1.Cells[col,row]<>'' then
begin
try
Summ:=Summ+strtofloat(StringGrid1.Cells[col,row]);
Except
MessageDlg('Ошибка. Данные введены не правильно',mtError,[mbOK],0);
end;
end;
end;
Label1.Caption:='Сумма: '+floattostr(Summ);
Вот код. считает суммы если матрица 3 на 3.
.....
var SummR1:real; //сумма строки 1
SummR2:real; //сумма строки 2
SummR3:real; //сумма строки 3
col:integer; //столбец
row:integer; //строка
begin
SummR1:=0;
SummR2:=0;
SummR3:=0;
for col := 1 to 3 do
begin
//если ячейка не пустая то суммируем ее
if StringGrid1.Cells[col,1]<>'' then
begin
try
SummR1:=SummR1+strtofloat(StringGrid1.Cells[col,1]);
Except
MessageDlg('Ошибка. Данные введены не правильно',mtError,[mbOK],0);
end;
end;
if StringGrid1.Cells[col,2]<>'' then
begin
try
SummR2:=SummR2+strtofloat(StringGrid1.Cells[col,2]);
Except
MessageDlg('Ошибка. Данные введены не правильно',mtError,[mbOK],0);
end;
end;
if StringGrid1.Cells[col,3]<>'' then
begin
try
SummR3:=SummR3+strtofloat(StringGrid1.Cells[col,3]);
Except
MessageDlg('Ошибка. Данные введены не правильно',mtError,[mbOK],0);
end;
end;
end;
Label1.Caption:='Сумма стр. 1: '+floattostr(SummR1);
Label2.Caption:='Сумма стр. 2: '+floattostr(SummR2);
Label3.Caption:='Сумма стр. 3: '+floattostr(SummR3);
end;Последний раз редактировалось Admin, 11.06.2010 в 09:53. |
|
#23
|
||||
|
||||
|
блин, я его мучал мучал, а вы ему ответ написали
|