GARANTIR DESCONTO

Fórum Formula no delphi #198551

03/12/2003

0

Tenho que fazer uma sequencia de programas de fisica e uma delas é a seguinte.

[img:fdb4023114]http://www.cyberterrorismo.kit.net/formula.jpg[/img:fdb4023114]

como faço pra colocar essa formula no delphi???

Grato[/url][/list][/list]


Paulohnt

Paulohnt

Responder

Posts

03/12/2003

Deus

Bem, eu fiz isso em 10 minutos.. acho que você estava com um pouco de preguiça, hein? ;) Assumindo que você tem um form com 4 componentes: 2 edits (para a entrada da massa em gramas e da largura em cm), 1 botão (para o evento OnClick) e um label (para ser exibido o resultado), ficaríamos então com:

procedure TForm1.Button1Click(Sender: TObject);

   function ftDensidade(m, v: Real): Real;
   begin
     m := m * 0.001; 
     v := (v * v * v) * 0.000001;

     Result := m / v;
   end;

var
  tmpStr: String;
begin
  tmpStr := FloatToStrF(ftDensidade(StrToFloat(edMassaemGramas.Text),
                                    StrToFloat(edArestaemcm.Text)),
                                    ffExponent, 2, 2);

  if (Pos(´+´, tmpStr) > 0) then
    tmpStr := Copy(tmpStr, 1, Pos(´E´, tmpStr)  - 1) + ´ * 10^´ +
              Copy(tmpStr,    Pos(´+´, tmpStr)  + 1, Length(tmpStr) - Pos(´+´, tmpStr)) + ´ kg/m3´
  else
    tmpStr := Copy(tmpStr, 1, Pos(´E´, tmpStr)  - 1) + ´ * 10^-´ +
              Copy(tmpStr,    Pos(´-´, tmpStr)  + 1, Length(tmpStr) - Pos(´+´, tmpStr)) + ´ kg/m3´

  Label1.Caption := tmpStr ;
end;


Eu criei a variável tmpStr só para guardar temporariamente o resultado da função ftDensidade, e transformo do formato ffExponent para um formato mais legível. Por exemplo, ao invés de 0.12E+02 você teria 0.12 * 10^2. Melhor, né?

Abraços, dEUS.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar