Ir para conteúdo
Fórum Script Brasil

joaopaulolessa

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por joaopaulolessa

  1. /*
        Programa para calcular as raizes da equacao do segundo grau e os pontos maximo e minimo
        Autor: Joao Paulo Lessa
        Data:20/04/2021
    */

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

    using namespace std;

    int tipoFunc(float a, float b,float c){
        
        if (a==0 && b!=0 && c!=0){
        
            return 1;
        }
     else if (a==0 && b==0 && c!=0) {
        
        return 2;
        
    } else if (a==0 && b==0 && c==0){
        
        return 3;
        
    } else if (a!= 0 && b==0 && c!=0){
        
        return 4;
        
    } else if (a!=0 && b== 0 && c==0){
        
        return 5;
        
    } else if (a!=0 && b!=0 && c==0){
        
        return 6;
        
    } else if (a==0 && b!=0 && c==0){
        
        return 7;

    } else {
        
        return 8;
    }

        float funcAfim (float b, float c) {
            
            float resultado;
        
            resultado = ((-1)*c/b);
        
            return resultado;
        
        }
        
            
    float funcRaiz (float a, float c){
        
        float teste, resultado;
        
        teste = -c/a;
        
        if (teste < 0){
            
            cout << " A fracao -c/a e menor que zero, logo: " << endl;
            
            cout << " A raiz não é Real!!! " << endl;

            cout << " O ponto de maximo ou minimo não pode ser calculado! " << endl;
            
    //        goto fim;
            
        } else {
            
            resultado = sqrt(teste);
            
        }
             
             return resultado;
             
    }
        
    float delta (float a, float b, float c)    {
        
        float resultado;
        
        resultado = b*b-4*a*c;
        
        return resultado;
    }

    float baskara (float a, float b, float c, int j){
        
        float teste, resultado;
        
        teste = delta(a,b,c);
        
        if (delta<0){
            
            cout << " não existe raizes reais!!!";
            
        } else {
            
            resultado = (-b+j*sqrt(delta(a,b,c)))/(2*a);
        
            return resultado;
        }
        
        
        
    }

    int main (){
        
        float a,b,c,x1,x2,pm;
        
        int n;
        
        cin >> a;
        
        cin >> b;
        
        cin >> c;
        
        n = tipoFunc(a,b,c);

        if ( n==1){
            
            x1 = funcAfim(b,c);
            
            cout << " A funcao passar a ser do primeiro grau, com raiz: " << x1 << endl;
            
            cout << " O ponto de maximo ou minimo  não pode ser calculado. " << endl;
            
        } else if (n==2){
            
            x1 = c
            
            cout << "A funcao é constante de valor: " << x1 << endl;
        
        } else if (n==3) {
            
            cout << " Todos os coeficientes são zero, portanto a funcao é igual a 0. " << endl;
            
            cout << " O ponto de maximo ou minino não existe!!! " << endl;
            
        } else if (n==4) {
            
            x1 = funcRaiz (a,c);
            
            x2 = -x1;
            
            cout << " A raizes são: " << endl;
            
            cout << " X1: " << x1 << endl;
            
            cout << " X2: " << x2 << endl;
            
            cout << " O ponto de maximo é: " << endl;
            
            cout << " Xv = " << (-b/(2*a)) << endl;
            
            cout << " Yv = " << (-delta(a,b,c)/4*a) << endl;
            
        } else if (n==5) {
            
            cout << "Ambas as raizes são zero!!! " << endl;
            
            cout << " O ponto de maximo ou minimo é igual a zero! " << endl;
            
            
        } else if (n==6) {
            
            x1 = 0;
            
            x2 = funcAfim (a,b);
            
            cout << " X1 é: " << x1 << endl;
            
            cout << " X2 é: " << x2 << endl;
            
            cout << " O ponto de maximo é: " << endl;
            
            cout << " Xv = " << (-b/(2*a)) << endl;
            
            cout << " Yv = " << (-delta(a,b,c)/4*a) << endl;

        } else if (n==7) {
            
            cout << " A funcao passa a ser do primeiro grau, sendo raiz igual a zero! " << endl;
            
            cout << " O ponto de maximo ou minimo não é calculado! " << endl;
        
        } else {
            
            x1 = baskara (a,b,c,0);
            
            x2 = baskara (a,b,c,1);
            
            cout << "As raizes da funcao são: " << endl;
            
            cout << x1 << endl;
            
            cout << x2 << endl;
            
            cout << " Xv = " << (-b/(2*a)) << endl;
            
            cout << " Yv = " << (-delta(a,b,c)/4*a) << endl;
    }
        
    //    fim:
            
        return 0;
        
    }

×
×
  • Criar Novo...