Anomalia output a video

di il
3 risposte

Anomalia output a video

Buonasera a tutti.
Sto programmando un software in grado di risolvere equazioni di secondo grado.
Il software funziona bene nei calcoli, c'è solamente una cosa che non riesco a capire.
Definisco a,b e c come coefficienti di x e termine noto.
Faccio tutti i calcoli.
Dopo di che definisco che se a=0 l'equazione è di primo grado e lo scrivo.
Ora il problema qual'è: pur avendo definito che solo se a=0 l'equazione è di primo grado quando eseguo il programma e assegno ad a valori diversi da 0 lui calcola correttamente i valori di x ma mi ritorna comunque la stringa che l'equazione è di primo grado.

Qui sotto il listato, in allegato l'anomalia che ottengo.
In sintesi non vorrei che appaia che l'equazione è di primo grado quando ho definito a diverso da 0.
Grazie a chiunque potrà aiutarmi

#include<iostream>
#include<cmath>
using namespace std;
int main ()
{
double a,b,c;
double D;
double x1,x2,x3;
cout<<"inserire il valore di a: ";
cin>> a;
cout<<"inserire il valore di b: ";
cin>> b;
cout<<"inserire il valore di c: ";
cin>> c;
x3=-c/b;
D=(b*b)-4*a*c;
x1=(-b-sqrt(D))/2*a;
x2=(-b+sqrt (D))/2*a;

if (D>0 and a!=0)
{
cout<<" il valore di x1 e': "<<x1<<endl;
cout<<" il valore di x2 e': "<<x2<<endl;
}

if (D==0 and a!=0)
{
cout<<" il delta e' uguale a 0, le soluzioni saranno coincidenti, il loro valore e': "<<x1<<endl;
}

if (D<0 and a!=0)
{
cout<<" l'equazione è impossibile"<<endl;
}

if (a==0);
{
cout<<" l'equazione e' di primo grado, il valore di x e': "<<x3<<endl;
}

return 0;
}
Allegati:
screenshot errore
screenshot errore

3 Risposte

  • Re: Anomalia output a video

    amarzin8 ha scritto:


    Buonasera a tutti.
    Sto programmando un software in grado di risolvere equazioni di secondo grado.
    Il software funziona bene nei calcoli, c'è solamente una cosa che non riesco a capire.
    Definisco a,b e c come coefficienti di x e termine noto.
    Faccio tutti i calcoli.
    Dopo di che definisco che se a=0 l'equazione è di primo grado e lo scrivo.
    Ora il problema qual'è: pur avendo definito che solo se a=0 l'equazione è di primo grado quando eseguo il programma e assegno ad a valori diversi da 0 lui calcola correttamente i valori di x ma mi ritorna comunque la stringa che l'equazione è di primo grado.

    Qui sotto il listato, in allegato l'anomalia che ottengo.
    In sintesi non vorrei che appaia che l'equazione è di primo grado quando ho definito a diverso da 0.
    Grazie a chiunque potrà aiutarmi

    #include<iostream>
    #include<cmath>
    using namespace std;
    int main ()
    {
    double a,b,c;
    double D;
    double x1,x2,x3;
    cout<<"inserire il valore di a: ";
    cin>> a;
    cout<<"inserire il valore di b: ";
    cin>> b;
    cout<<"inserire il valore di c: ";
    cin>> c;
    x3=-c/b;
    D=(b*b)-4*a*c;
    x1=(-b-sqrt(D))/2*a;
    x2=(-b+sqrt (D))/2*a;

    if (D>0 and a!=0)
    {
    cout<<" il valore di x1 e': "<<x1<<endl;
    cout<<" il valore di x2 e': "<<x2<<endl;
    }

    if (D==0 and a!=0)
    {
    cout<<" il delta e' uguale a 0, le soluzioni saranno coincidenti, il loro valore e': "<<x1<<endl;
    }

    if (D<0 and a!=0)
    {
    cout<<" l'equazione è impossibile"<<endl;
    }

    if (a==0);
    {
    cout<<" l'equazione e' di primo grado, il valore di x e': "<<x3<<endl;
    }

    return 0;
    }
    ciao, intanto quando scrivi un codice utilizza il tag CODE, comunque in questa riga
    f (a==0);{
    }
    non ci va il ";" toglilo e dovresti aver risolto
  • Re: Anomalia output a video

    Perfetto grazie, non riuscivo a venirne a capo.
    Scusate per il code
  • Re: Anomalia output a video

    amarzin8 ha scritto:


    Perfetto grazie, non riuscivo a venirne a capo.
    Scusate per il code
    Di nulla, la prossima volta lo userai
Devi accedere o registrarti per scrivere nel forum
3 risposte