Calcolo gittata in c++

di il
2 risposte

Calcolo gittata in c++

Ciao a tutti!
ho creato un programma per calcolare la gittata di un corpo a partire da angolo, velocita e altezza del lancio, ma oltre a inserire i valori corrispondente il programma non riesce ad andare avanti ... ho usato if esle.. e non so cosa possa aver sbagliato.. mi sento stupidaaaa

#include <iostream>
#include <cmath>
using namespace std;
int main() {
  double v0,h;
  const double  PI = 3.141592653;
  double seno,coseno,theta,thetarad;
  thetarad=theta*PI/180;
  seno=sin(thetarad);
  coseno=cos(thetarad);
  cout << " inserisci l'altezza" << endl;
  cin >> h;
  cout << "inserisci la velocità iniziale" <<endl;
  cin >> v0;
  cout << "inserisci l'angolo  in gradi" << endl;
  cin >> theta;
  
  //calcolo gittata, distanza tra x0 e xfinale, "d"

  double d;
  d = sqrt(2*h*v0*v0*seno*coseno/9.81);
  cout << d;
  
  if(h=0)
    {
      if(theta=0)
	{d = 0;
	cout << " gittata vale : " << d << endl;
      }
      else if(0<theta<(45))
	  {d=sqrt(2*h*v0*v0*coseno*seno/9.81);
	    cout << "gittata vale : " << endl;
	  }
      else if(thetarad=45)
	  {d=sqrt(h*v0*v0/9.81);
	    cout <<  "gittata massima per altezza zero " << endl;
	  }
	else if(45<theta<90)
	  {d=sqrt(2*h*v0*v0*sin(theta)*cos(theta)/9.81);
	    cout << "gittata: " << d << endl;
	  }
	else if(theta=90)
	  {d=0;
	    cout << "gittata:" << d << endl;
	  }
    }
  else if (h>0)
    { if (theta=90)
	{d=0;
	  cout << "gittata :" << d << endl;
	}
	  else if(theta=-90)
	    {d=0;
	      cout << "gittata:" << d << endl;
	    }
	  else if (theta=45)
	    {d= sqrt(h*v0*v0/9.81) + h;
	      cout << "gittata massima:" << d << endl;
	    }
	      else if(theta=0)
		{d=h;
		  cout << "gittata" << d << endl;
		    }
	      else if(theta!=45)
		{if(theta!=90)
		    {if(theta!=-90)
			{if(theta!=0)
			    {d=sqrt(sin(theta)*cos(theta)*h*2*v0*v0/9.81)+h;
			      cout << "gittata" << d << endl;
			    }
			}
		    }
		}
    }
      return 0;
    }

è credo nell'uso di if puo' essere?

2 Risposte

  • Re: Calcolo gittata in c++

    Le assegnazioni nelle parentesi... Te lo si è già detto.

    Piuttosto scrivi da destra a sinistra (0.0 == theta) così quando sbagli te lo dice il compilatore

    X < Y < Z non esiste, studia come si fa con &&
  • Re: Calcolo gittata in c++

    Di sicuro da oggi non me ne dimenticherò, grazie
Devi accedere o registrarti per scrivere nel forum
2 risposte