Jump to content
Fórum Script Brasil
  • 0

Alguém sabe o problema desse código?


Question

/*
    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 to post
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149410
    • Total Posts
      645901
×
×
  • Create New...