![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
НЕ могу найти среж\днее значение . данные забиты в массиве. а правильно считать - не хочет. в Чём Ошибка ??
Вот: Код:
rocedure TForm1.Button_calcClick(Sender: TObject);
var k,i,j,s:integer; g:real;
begin
k:=0;
s:=0;
g:=0;
for i:=1 to n do
begin
for j:=1 to m do
begin
s:=s+a[i,j];
k:=k+1;
end;
g:=s/k;
memo3.Lines.Add(FloatToStr(g));
k:=0;
s:=0;
g:=0;
end;
Button_calc.Enabled:=False;
end;Последний раз редактировалось Admin, 29.09.2010 в 14:46. |
|
#2
|
||||
|
||||
|
матрица как я понимаю NxM значит k= NxM
зачем его считать в цикле? насколько я помню массивы в oPascal начинаются с нуля т.е. мой вариант таков: Код:
for i:=0 to n do for j:=0 to m do summ:=summ+a[i,j]; k:=n*m; SrSumm:=Summ/k; |
|
#3
|
|||
|
|||
|
массивы могут начинаться с любого числа - как опишешь, так и будет.
так что мой вариант среднего для строки такой: Код:
var
i, j : Integer;
s : double;
begin
for i := Low(a) to high(a) do
begin
s := 0;
for j := low(a[i]) to high(a[i]) do s := s + a[i,j];
memo3.Lines.Add(FloatToStr(s/length(a[i]));
end;
end; |