![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте. У меня есть массив в StringGrid, имеющий размерность 2строки и n количество столбцов. Первая строка- это значения P1,P2,...Pn, а вторая строка- это значения t1,t2,...tn. У меня есть код, котрый обрабатывает массив следующим образом: P=Sqrt((P1^2*t1+P2^2*t2+...+Pn^2*tn)/(t1+t2+...+tn)).
Код:
procedure TForm1.Button1Click(Sender: TObject); Var i,j: Integer; Pr, SumP, t, P: Real; begin For i:= 0 To StringGrid1.ColCount - 1 Do For j:= 0 To StringGrid1.RowCount - 1 Do if StringGrid1.Cells[i,j] = '' Then StringGrid1.Cells[i,j]:= '0'; t:= 0; SumP:= 0; For i:= 0 To StringGrid1.ColCount - 1 Do begin Pr:= 1; For j:= 0 To StringGrid1.RowCount - 1 Do Pr:= (Sqr(Pr))*StrToFloat(StringGrid1.Cells[i,j]); SumP:= SumP + Pr; t:=t + StrToFloat(StringGrid1.Cells[i,StringGrid1.RowCount-1]); end; P:= Sqrt(SumP/t); Label1.Caption:='d= '+FloatToStrF(P,ffFixed,5,2); end; end. 1) Формула высчитывалась так: P=Sqrt((P1^2*t1+P2^2*t2+...+Pn^2*tn)/(0,75*t1+t2+...+tn)). индекс 0,75 должен применятся только к t1. 2) если какой-то из Pn=0, то соответсвующий ему tn(т.е. весь столбец) не входили в данную формулу. 3) Посчитать новый элемент PV=а1/а2. а1-это сумма элементов t у которых Р=0; а2- сумма всей второй строки. Если сможете помочь, буду очень благодарен!!! |
#2
|
|||
|
|||
![]() Забыл поставить скобки :P=Sqrt(((P1^2)*t1+(P2^2)*t2+...+(Pn^2)*tn)/(t1+t2+...+tn)).
|