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

Erro conta de bhaskara


Ferneves

Pergunta

Sou novo na linguagem e gostaria que vocês me ajuda sem ,estou tentando fazer um algoritmo que faça uma conta de bhaskara, mas não está dando o devido resultado.

 E mais uma duvida, a minha IDE é o Falcon, poderiam me falar se tem uma IDE melhor ?

#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char** argv)
{
    int a, b, c, m1, m2, m3, num, sub, div;
    
    cout << "Digite o valor A: " << endl;
    cin >> a;
    
    cout << "Digite o valor B: " << endl;
    cin >> b;
    
    cout << "Digite o valor " << endl;
    cin >> c;
    //Colocando valores
    
    m1 = pow (b,2); //Quadrado de b
    
    num = -4 * (a *c); // -4 vezes resultado do m2
    
    sub = (m1 + num); //resultado do m1 vezes num
    
    m3 = 2 * a; // 2 vezes a
    
    div = m3 / sub; // m3 dividindo sub
    
    cout << "Resultado da formula de baskhara de primeiro grau: " << div << endl;
    
    return 0;
}

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
Em 22/06/2018 at 03:29, Ferneves disse:

E mais uma duvida, a minha IDE é o Falcon, poderiam me falar se tem uma IDE melhor ?

Recomendo o Code Brocks ou o Visual Studio para C/C++

Link para o comentário
Compartilhar em outros sites

  • 0
Em 26/06/2018 at 23:20, Thiago André Cardoso disse:

Boa noite,

Resta retirar a raiz quadrada de sub

E o div é raiz quadrada de sub dividido por m3.

percebi isso a um tempo já, agora o problema é outro, não sei como faz a raiz.

 

#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char** argv)
{
    // VARIAVEIS
    float a, b, c, quad, n2, num, soma, raiz, nx1, nx2, div1, div2, x1, x2;
    
    
    cout << "============== FORMULA DE BASKHARA 1 grau ======================" << endl;
    
    // ATRIBUINDO VALORES
    cout << "   Digite o valor A: ";
    cin >> a;
    
    cout << "   Digite o valor B: " ;
    cin >> b;
    
    cout << "   Digite o valor 😄 " ;
    cin >> c;
    
    //  CONTAS
    quad = pow (b,2); //Quadrado de b
    
    num = -4 * (a * c); // "-4" Vezes resultado do "n1"
    
    soma = (quad + num); //Resultado do "n1" vezes "num"
    
    n2 = 2 * a; // "2" vezes a
    
    raiz =  sqrt(soma);  //AQUI O POBLEMA
    
    //            X1          \\
    
    nx1 = b + raiz; 
    
    div1 = nx1 / n2;
    
    x1 = div1;
    
    //           X2            \\

    nx2 = b - raiz;
    
    div2 = nx2 / n2;
    
    x2 = div2;
    
    
    cout << "                                 " << endl;
    cout << "---------------------------------------------------------" << endl;
    
    // Resultados
    
    cout << "X1: " << x1 << endl;
    cout << "              " << endl;
    cout << "X2: " << x2 << endl;
    
    cout << "---------------------------------------------------------" << endl;
    
    return 0;
}

Editado por Ferneves
Link para o comentário
Compartilhar em outros sites

  • 0
Em 05/07/2018 at 14:14, Ferneves disse:

percebi isso a um tempo já, agora o problema é outro, não sei como faz a raiz.

 

#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char** argv)
{
    // VARIAVEIS
    float a, b, c, quad, n2, num, soma, raiz, nx1, nx2, div1, div2, x1, x2;
    
    
    cout << "============== FORMULA DE BASKHARA 1 grau ======================" << endl;
    
    // ATRIBUINDO VALORES
    cout << "   Digite o valor A: ";
    cin >> a;
    
    cout << "   Digite o valor B: " ;
    cin >> b;
    
    cout << "   Digite o valor 😄 " ;
    cin >> c;
    
    //  CONTAS
    quad = pow (b,2); //Quadrado de b
    
    num = -4 * (a * c); // "-4" Vezes resultado do "n1"
    
    soma = (quad + num); //Resultado do "n1" vezes "num"
    
    n2 = 2 * a; // "2" vezes a
    
    raiz =  sqrt(soma);  //AQUI O POBLEMA
    
    //            X1          \\
    
    nx1 = b + raiz; 
    
    div1 = nx1 / n2;
    
    x1 = div1;
    
    //           X2            \\

    nx2 = b - raiz;
    
    div2 = nx2 / n2;
    
    x2 = div2;
    
    
    cout << "                                 " << endl;
    cout << "---------------------------------------------------------" << endl;
    
    // Resultados
    
    cout << "X1: " << x1 << endl;
    cout << "              " << endl;
    cout << "X2: " << x2 << endl;
    
    cout << "---------------------------------------------------------" << endl;
    
    return 0;
}

Acho que tem que importar o #include <cmath>

Veja aqui neste exemplo: 

 

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double x;
    cin >> x;
    cout << sqrt(x) << endl;
    return 0;
}
Link para o comentário
Compartilhar em outros sites

  • 0
Em 06/07/2018 at 22:18, Thiago André Cardoso disse:

Acho que tem que importar o #include <cmath>

Veja aqui neste exemplo: 

 

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double x;
    cin >> x;
    cout << sqrt(x) << endl;
    return 0;
}

Fiz do jeito que você falou e está dando "NaN" dependendo dos números da variáveis.

 

#include <iostream>
#include <math.h>
#include <cmath>

using namespace std;

int main(int argc, char** argv)
{
    // VARIAVEIS
    float a, b, c, quad, n2, num, soma, raiz;
    
    
    cout << "============== FORMULA DE BASKHARA 1 grau ======================" << endl;
    
    // ATRIBUINDO VALORES
    cout << "   Digite o valor A: ";
    cin >> a;
    
    cout << "   Digite o valor B: " ;
    cin >> b;
    
    cout << "   Digite o valor 😄 " ;
    cin >> c;
    
    //  CONTAS
    quad = pow (b,2); //Quadrado de b
    
    num = -4 * (a * c); // "-4" Vezes resultado do "n1"
    
    soma = (quad + num); //Resultado do "n1" vezes "num"
    
    n2 = 2 * a; // "2" vezes a
    
    raiz =  sqrt(soma);
    
    
    cout << "raiz : " << raiz << endl;
    
}

Link para o comentário
Compartilhar em outros sites

  • 0

Observem esse código que está funcionando para raízes reais bhaskara c++:

/**                                                                           *
 * programa C++ C  --- Resolução de Polinômios do 2 Grau Cpp (Bhaskara)       *
 * enconding: OEM 860, compiler: MinGW GCC-6.3.0-1 32  bits                   *
 * editor: Notepad++ 7.5.7 32 bits - 2018, OS: win7 64 bits                   *
 * file: bhaskara.c                              ver: 1.0.0                   */

/* INCLUSOES                                                                  */
#include <iostream>
#include <cmath>

/* DEFINICOES                                                                 */
/* FUNCOES                                                                    */
/* main ---função principal do programa                                       */
int main(void)
{
/* TIPOS LOCAIS                                                               */
    /// Coeficiente de uma Função do Tipo Quadrática
    float   coefa = 0.f,   // Coeficiente ângular / forma da parábola
            coefb = 0.f,   // Coeficiente secante ao eixo das coordenadas
            coefc = 0.f,   // Coeficiente do termo independente
            delta = 0.f,   // Delta da fórmula canônica b²-4.a.c
            x1, x2= 0.f;   // Raizes reais da função
    bool    haraiz= true;  // Há raiz real somente se delta é não negativo
/* ENTRADA DE DADOS                                                           */
    std::cout <<("Por favor entre com os valores para os coeficientes a, b, c."
                 "\nRespectivamente e separados por espaços: ");
    std::cin  >>(coefa)>>(coefb)>>(coefc);
/* PROCESSAMENTO                                                              */
    /// Determinar o Delta da Função, e o(s) valor(es) da(s) raiz(es)
    /// somente se delta for maior que 0.
    delta = (coefb*coefb) - 4*coefa*coefc;
    haraiz= 0 <= delta;
    if (haraiz == true) {
        x1 = (-coefb + sqrt(delta))/(2*coefa);
        x2 = (-coefb - sqrt(delta))/(2*coefa);
        if (x1 > x2) {
            float x = x1;
            x1 = x2;
            x2 = x;
        }
    }
    std::cout << std::endl;
/* RESULTADO                                                                  */
    std::cout <<("Para resolução do problema, dados os coeficientes ...\n");
    if (haraiz == true) {
        std::cout <<("Determinou-se que as raiz(es) são respectivamente: ");
        std::cout <<(x1)<<(" e ")<<(x2)<<("!");
        std::cout << std::endl;
    } else {
        std::cout <<("Determinou-se não existe raízes reais"
                     " para a questão!\n");
    }
/* FIM                                                                        */
 return 0;
}

Procurei entender esse código, e dele descobrir tudo para fazer o seu funcionar.

Link para o comentário
Compartilhar em outros sites

  • 0
14 horas atrás, britivaldo disse:

Observem esse código que está funcionando para raízes reais bhaskara c++:


/**                                                                           *
 * programa C++ C  --- Resolução de Polinômios do 2 Grau Cpp (Bhaskara)       *
 * enconding: OEM 860, compiler: MinGW GCC-6.3.0-1 32  bits                   *
 * editor: Notepad++ 7.5.7 32 bits - 2018, OS: win7 64 bits                   *
 * file: bhaskara.c                              ver: 1.0.0                   */

/* INCLUSOES                                                                  */
#include <iostream>
#include <cmath>

/* DEFINICOES                                                                 */
/* FUNCOES                                                                    */
/* main ---função principal do programa                                       */
int main(void)
{
/* TIPOS LOCAIS                                                               */
    /// Coeficiente de uma Função do Tipo Quadrática
    float   coefa = 0.f,   // Coeficiente ângular / forma da parábola
            coefb = 0.f,   // Coeficiente secante ao eixo das coordenadas
            coefc = 0.f,   // Coeficiente do termo independente
            delta = 0.f,   // Delta da fórmula canônica b²-4.a.c
            x1, x2= 0.f;   // Raizes reais da função
    bool    haraiz= true;  // Há raiz real somente se delta é não negativo
/* ENTRADA DE DADOS                                                           */
    std::cout <<("Por favor entre com os valores para os coeficientes a, b, c."
                 "\nRespectivamente e separados por espaços: ");
    std::cin  >>(coefa)>>(coefb)>>(coefc);
/* PROCESSAMENTO                                                              */
    /// Determinar o Delta da Função, e o(s) valor(es) da(s) raiz(es)
    /// somente se delta for maior que 0.
    delta = (coefb*coefb) - 4*coefa*coefc;
    haraiz= 0 <= delta;
    if (haraiz == true) {
        x1 = (-coefb + sqrt(delta))/(2*coefa);
        x2 = (-coefb - sqrt(delta))/(2*coefa);
        if (x1 > x2) {
            float x = x1;
            x1 = x2;
            x2 = x;
        }
    }
    std::cout << std::endl;
/* RESULTADO                                                                  */
    std::cout <<("Para resolução do problema, dados os coeficientes ...\n");
    if (haraiz == true) {
        std::cout <<("Determinou-se que as raiz(es) são respectivamente: ");
        std::cout <<(x1)<<(" e ")<<(x2)<<("!");
        std::cout << std::endl;
    } else {
        std::cout <<("Determinou-se não existe raízes reais"
                     " para a questão!\n");
    }
/* FIM                                                                        */
 return 0;
}

Procurei entender esse código, e dele descobrir tudo para fazer o seu funcionar.

 Sou iniciante em programação, quero saber se esses códigos que você escreveu, vou usar quanto eu ter conhecimento mais avançado ?

ps: Te admiro muito  ^_^

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade você meio que já está, com pequenas diferenças.

Por exemplo,

eu escrevo:      std::cout <<("Digite o valor A: "); 

você escreve:          cout <<  "Digite o valor A:  ";

São dois comandos sinônimos porque fazem a mesma coisa no programa.

 

Com relação ao seu problema, já que não respondeu a si mesmo. Eu respondo!

Em 08/07/2018 at 03:29, Ferneves disse:

Fiz do jeito que você falou e está dando "NaN" dependendo dos números da variáveis.

Isso acontece porque você esta calculando a raiz de delta negativo. E NaN[ not a number] que dizer; não é um número.  tente usar a função sqrt(-9), vai obter NaN.

 

 

7 horas atrás, Ferneves disse:

ps: Te admiro muito  ^_^

Obrigado, comecei a alguma tempo já.

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...