Ir para conteúdo
Fórum Script Brasil
  • 0

Equaçao Do 2º Grau


Edimar

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

você quer criar componentes pra fazer isso? Bem, sem necessitar de componentes adicionais eu pensei no seguinte:

3 Edits e em cada um você informa um número, assim como na equação do segundo grau. Por exemplo:

4X2 + 2X - 2 (nem sei se dá pra tirar raízes disso), mas no primeiro edit seria informado A (4), no segundo edit B (2) e no terceiro edit C (2), o resto você já sabe né, Delta e Báskhara.

É uma coisa meio sem noção, mas foi o que veio à cabeça do Joselito aqui agora.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Paulo,

seria uma nova Classe.

onde no meu form principal, ao clicar(por exemplo) em calcular ele chamaria esta classe pra dar a resoluçao da equaçao....

Orlan

o que eu pensei foi justamente isso, inclusive foi o que fiz. Dentro do evento do botao eu já crie toda a rotina pra calcular as raizes. Se quiser posso ate postar aqui depois a minha resoluçao.

So que o que eu precisa fazer agora é criar uma classe com a resoluçao pra depois criar um objeto no meu form principal chamando essa classe...

Valeu a todos pela atençao.... biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0
So que o que eu precisa fazer agora é criar uma classe com a resoluçao pra depois criar um objeto no meu form principal chamando essa classe...

Mas porque você precisa fazer isso, se calculando da forma como eu falei você mesmo já havia feito e deu certo?

Link para o comentário
Compartilhar em outros sites

  • 0
se quizer posso postar os codigos para você dar uma olhada...

Posta aí então.

Link para o comentário
Compartilhar em outros sites

  • 0

1º modo:

Aqui foi a minha biblioteca (Classe)

unit UFormula;

interface

Type

  Formula = Class

  Private

    TermoA, TermoB, TermoC: Real;

  Public

    Constructor CriaInstancia(x, y, z: Real);

    Function CalculaDelta: Real;

    Function FormulaX1: Real;

    Function FormulaX2: Real;

    Destructor Destrua;

  end;

implementation

  Constructor Formula.CriaInstancia(X, Y, Z: Real);

  Begin

    TermoA:=X;

    TermoB:=Y;

    TermoC:=Z;

  end;

  Function Formula.CalculaDelta: Real;

  Begin

    Result:= TermoB*TermoB - 4*TermoA*TermoC;

  end;

  Function Formula.FormulaX1: Real;

  Begin

    Result:=(-Termob - Sqrt(CalculaDelta))/(2*TermoA);

  End;

  Function Formula.FormulaX2: Real;

  Begin

    Result:=(-Termob + Sqrt(CalculaDelta))/(2*TermoA);

  End;

  Destructor Formula.Destrua;

  Begin

  end;

end.

Aqui o evento do Botao:

  If (EdtTermoA.text = '') or (EdtTermoB.text = '') or  (EdtTermoC.text = '') Then

    Begin

      Showmessage('Favor Informar os valores dos termos A, B e C da Equação.');

      EdtTermoA.setfocus;

    end

  else

    If EdtTermoA.text = '0' then

      Begin

        Showmessage('Termo A igual a "0", portanto não é uma equação do 2º grau');

        EdtTermoA.setfocus;

      end

    else

      Begin

        ObjFormula:= Formula.CriaInstancia(StrToFloat(EdtTermoA.text), StrToFloat(EdtTermoB.text),

                            StrToFloat(EdtTermoC.text));

        If (ObjFormula.CalculaDelta) < 0 then

          Showmessage(' Raiz Menor que zero.')

        else

          begin

            EdtRaiz01.text:=FloatToStr(ObjFormula.FormulaX1);

            EdtRaiz02.text:=FloatToStr(ObjFormula.FormulaX2);

          end;

      end;

end;

2º Modo - o algoritmo para calcular já no evento do botao:

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

If (EdtTermoA.text = '') or (EdtTermoB.text = '') or  (EdtTermoC.text = '') Then

  Begin

    Showmessage('Favor Informar os valores dos termos A, B e C da Equação.');

    EdtTermoA.setfocus;

  end

else

  Begin

    TermoA:= StrToFloat(EdtTermoA.text);

    TermoB:= StrToFloat(EdtTermoB.text);

    TermoC:= StrToFloat(EdtTermoC.text);

    Delta:= (TermoB*TermoB) - 4*TermoA*TermoC;

    If Delta < 0 then

      Showmessage('Delta Negativo. A Equação não tem Raizes.')

    else

      Begin

        X1:=(-TermoB - SQRT(Delta))/(2*TermoA);

        EdtRaiz01.text:=FloatToStr(X1);

        X2:=(-TermoB + SQRT(Delta))/(2*TermoA);

        EdtRaiz02.text:=FloatToStr(X2);

      end

  end;

end;

CERTO!!!! biggrin.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...