X
Xatiko
Доброго времени суток!
Есть проблема при написании формулы. Приведу пример:
Для одного объекта:
(x1*z1)/(z1)
(y1*z1)/(z1)
Ed-это (х) Ed1-это (у) Ed2-это (z)
Для двух:
(x1*z1)+(x2*z2)/(z1+z2)
(y1*z1)+(y2*z2)/(z1+z2)
В этой же процедуре.
Вопрос в том что, для одного работает, а для двух выводит огромные значения которых даже не вводили. А вообще надо хотя бы до 20. Но так как уже не работает для двух, смысла дальше нет двигаться.
Есть догадки, что не так расставленны скобки и компилятор выполняет не те арифмитические действия.
Есть проблема при написании формулы. Приведу пример:
Для одного объекта:
(x1*z1)/(z1)
(y1*z1)/(z1)
Ed-это (х) Ed1-это (у) Ed2-это (z)
Код:
procedure TForm1.Button8Click(Sender: TObject);
begin
if form1.ComboBox1.ItemIndex=0 then
begin
label37.Caption:=Floattostr(StrToInt(Ed[1].text)*StrToInt(Ed2[1].text)/StrToInt(Ed2[1].text));
label38.Caption:=Floattostr(StrToInt(Ed1[1].text)*StrToInt(Ed2[1].text)/StrToInt(Ed2[1].text));
end
Для двух:
(x1*z1)+(x2*z2)/(z1+z2)
(y1*z1)+(y2*z2)/(z1+z2)
В этой же процедуре.
Код:
else
if form1.ComboBox1.ItemIndex=1 then
begin
label37.Caption:=Floattostr(((StrToInt(Ed[1].text)*StrToInt(Ed2[1].text))+((StrToInt(Ed[2].text)*StrToInt(Ed2[2].text)))/(StrToInt(Ed2[1].text)+StrToInt(Ed2[2].text))));
label38.Caption:=Floattostr(((StrToInt(Ed1[1].text)*StrToInt(Ed2[1].text))+((StrToInt(Ed1[2].text)*StrToInt(Ed2[2].text)))/(StrToInt(Ed2[1].text)+StrToInt(Ed2[2].text))));
end;
end;
Вопрос в том что, для одного работает, а для двух выводит огромные значения которых даже не вводили. А вообще надо хотя бы до 20. Но так как уже не работает для двух, смысла дальше нет двигаться.
Есть догадки, что не так расставленны скобки и компилятор выполняет не те арифмитические действия.