Ciao a tutti!
Sono nuovo e ho cominciato a programmare con C++ da circa 3 settimane. Ho creato questo programma che, in base ai dati inseriti calcola diversi dati incogniti di un triangolo.
C'è però un problema: se inserisco tutti i dati lasciando incognitiIl lato BC e AB (la base) il programma dovrebbe, prima calcolare AB (area diviso altezza), poi BC, conoscendo il perimetro e i due lati AB e CA (perimetro meno AB meno CA), invece lascia BC incognito e restituisce errore!!
Qualcuno saprebbe dirmi come fare??
Grazie in anticipo!
codice:
#include <iostream>
using namespace std;
int main()
{
double AB=0, BC=0, CA=0, p=0, A=0, h=0;
cout<<"Benvenuto!\ngrazie a questo programma puoi calcolare dati incogniti di un triangolo\n a partire dal quelli conosciuti\ninserisci i dati del problema scrivendo '0' per quelli incogniti...\n\n\n"
<<" C"<<endl
<<" *"<<endl
<<" * *"<<endl
<<" * *"<<endl
<<" * * * * * *"<<endl
<<" A B"<<endl<<endl<<endl;
cout<<"AB:"; cin>>AB;
cout<<"BC:"; cin>>BC;
cout<<"CA:"; cin>>CA;
cout<<"p:"; cin>>p;
cout<<"A:"; cin>>A;
cout<<"h:"; cin>>h;
cout<<endl<<endl<<"Ecco i risultati:"<<endl<<endl;
if(AB==0) AB=p-BC-CA;
if(BC==0) BC=p-AB-CA;
if(CA==0) CA=p-BC-AB;
if(p==0) p=AB+BC+CA;
if(A==0) A=AB*h;
if(h==0) h=A/AB;
if(AB==0) AB=A/h;
if(BC==0) BC=p-AB-CA;
if(CA==0) CA=p-BC-AB;
if(p==0) p=AB+BC+CA;
if(A==0) A=AB*h;
if(h==0) h=A/AB;
cout<<"AB:"<<AB<<endl;
cout<<"BC:"<<BC<<endl;
cout<<"CA:"<<CA<<endl;
cout<<"p:"<<p<<endl;
cout<<"A:"<<A<<endl;
cout<<"h:"<<h<<endl;
if(AB==0||BC==0||CA==0||A==0||p==0||h==0)cout<<"ERRORE!! DATI INSUFFICENTI PER ELABORARE!\a\a\a\n\n";
}