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

Alguém sabe o problema desse código?


joaopaulolessa

Pergunta

/*
    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;
    
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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,5k
×
×
  • Criar Novo...