Resultados 1 a 5 de 5
  1. #1
    Newbie
    Data de Ingresso
    Aug 2009
    Posts
    31

    Thumbs up [Source] Programa resolutivo da equação de segundo grau (Bhaskara)

    Resolvi postar esse programa que resolve a equação de segundo grau através da fórmula resolutiva (erroneamente) conhecida como Bhaskara.
    (ele também escreve todo o desenvolvimento)
    PS: foi o meu primeiro programa em C++ (e único até o momento xD), por isso deve conter alguns erros, mas espero sinceramente que vocês gostem!
    Código:
    #include <iostream>
    #include <math.h>
    
    
    using namespace std;
    
    
    int main()
    {
        cout << "-=============================================-" << endl;
        cout << "-=============== BHASKARATOR =================-" << endl;
        cout << "-=============================================-" << endl;
    
        cout << "Programa resolutivo da equacao de segundo grau:" << endl;
        cout << "ax^2 + bx + c = 0" << endl;
        cout << "~~~~~ ~~~~~ ~~~~~~~~" << endl;
        int a;
        cout << "Entre com a:" ;
        cin >> a;
        int b;
        cout << "Entre com b:";
        cin >> b;
        int c;
        cout << "Entre com c:";
        cin >> c;
        cout << "Calculando..." << endl;
        cout << "~~~~~~~~~~~~~ ~~~~" << endl;
        int delta;
        delta = b * b - 4 * (a * c);
        cout << "Delta = b^2 - 4 * (a * c)" << endl;
        cout << "Delta = " << b << "^2 - 4 * (" << a << " * " << c << ")" << endl;
        cout << "Delta = " << b * b << " - 4 * (" << a * c << ")" << endl;
        cout << "Delta = " << b * b << " - " << 4 * (a * c) << endl;
        cout << "Delta = " << delta << endl;
        if (delta < 0)
        {
            cout << "Raiz impossivel!" << endl;
            system("PAUSE");
            return 0;
        }
        int xlinha;
        xlinha = (-b + sqrt(delta)) / (2 * a);
        cout << "x' = (-b + raiz(delta)) / (2 * a)" << endl;
        cout << "x' = (" << -b << " + raiz(" << delta << ") / (2 * " << a << ")" << endl;
        cout << "x' = (" << -b << " + " << sqrt(delta) << ") / " << 2 * a << endl;
        cout << "x' = " << -b + sqrt(delta) << " / " << 2 * a << endl;
        cout << "x' = " << xlinha << endl;
        int xduaslinhas;
        xduaslinhas = (-b - sqrt(delta)) / (2 * a);
        cout << "x'' = (-b - raiz(delta)) / (2 * a)" << endl;
        cout << "x'' = (" << -b << " - raiz(" << delta << ") / (2 * " << a << ")" << endl;
        cout << "x'' = (" << -b << " - " << sqrt(delta) << ") / " << 2 * a << endl;
        cout << "x'' = " << -b - sqrt(delta) << " / " << 2 * a << endl;
        cout << "x'' = " << xduaslinhas << endl;
        system("PAUSE");
        return 0;
    }

  2. #2
    Moderador Avatar de _Guga_
    Data de Ingresso
    Apr 2006
    Localização
    Salvador - BA
    Posts
    2.118
    muito legal!!! ^^

    críticas construtivas:

    1º já que vc está utilizando a linguagem C++, para vc incluir as funções matemáticas, dê um include em <cmath> ao invez de math.h, o math.h, é o header da linguagem C que contém definições de macros, constantes, e declarações de funções e tipos usados por várias operações matemáticas. ++, por razões de compatibilidade, inclui math.h como <cmath>, o qual declara funções do math.h e tipos dentro do namespace std. Em outras palavras, usar math.h nesse programa estara mesclando C com C++, e cmath, estara, por padrao utilizando apenas C++ ^^'

    2º ser um programa C++, fica bastante contraproducente vc implementar todas as suas caracteristicas funcionais dentro da função main, o ideal seria se vc pudesse "quebrar" seu código em funções ou classes separadas por headers ( .h ou .hpp ) e seus respectivos .cpp

    3º vc esta trabalhando com números, e o tipo int não é capaz de representar, por exemplo, números decimais, o ideal para o seu programa que calcula equações de 2º grau seriam os tipos float, double ou long double, sendo os dois ultimos os mais recomendáveis para esse caso.


    enfim é só, e parabéns novamente! ^^'

    abração


    I must not fear. Fear is the mind killer.

  3. #3
    White Hat Administrador Avatar de fvox
    Data de Ingresso
    Sep 2005
    Localização
    São Paulo - SP
    Posts
    4.428
    Hi.

    Esperamos que seja o primeiro de muitos.
    Tem encontrado dificuldades ou tá tudo suave por enquanto? =p

    Good luck. ;-)

    []'s
    Acha que está caindo na insanidade? Mergulhe!

    Twitter | Blog | Facebook | Github

  4. #4
    Newbie
    Data de Ingresso
    May 2011
    Localização
    São Paulo
    Posts
    62
    Citação Postado originalmente por _Guga_ Ver Post
    muito legal!!! ^^

    críticas construtivas:

    1º já que vc está utilizando a linguagem C++, para vc incluir as funções matemáticas, dê um include em <cmath> ao invez de math.h, o math.h, é o header da linguagem C que contém definições de macros, constantes, e declarações de funções e tipos usados por várias operações matemáticas. ++, por razões de compatibilidade, inclui math.h como <cmath>, o qual declara funções do math.h e tipos dentro do namespace std. Em outras palavras, usar math.h nesse programa estara mesclando C com C++, e cmath, estara, por padrao utilizando apenas C++ ^^'
    Po, não conhecia essa <cmath>, muito util esse comentario..
    Guga manda muito bem em C

  5. #5
    Newbie
    Data de Ingresso
    Aug 2009
    Posts
    31
    Muito obrigado pelas dicas e pela atenção de vocês!
    Vou tentar melhorar o código, depois posto aqui

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •