Buongiorno , mi sono appena iscritto a questo forum per cercare di avere qualche aiuto da qualcuno esperto in materia.
Il mio problema è il seguente, sono uno studente di un liceo e il nostro prof ha iniziato a farci c++ applicato alla fisica (tra l'altro cose che non abbiamo ancora visto) e non spiega fa il programma in un ora e lui pretende che lo sappiamo e inoltre non accetta quello "copiato" da lui ma dobbiamo rielaborarlo noi... cosa che non sappiamo assolutamente fare... adesso vi posto 2 programmi riuscireste a rifarmeli in altro modo sempre gli stessi problemi (va meglio se riuscite a rifarmeli + semplici) ve ne sarei molto grato!
programmo di quando la luna è allo zenit, eseguendolo in c++ da semplicemente il numero 4,566E
#include <stdio.h>
#include <math.h>
const double Mt=5.97e24; //massa terrestre
const double G=6.67e-11; //attrazione gravità
const double Rt=6366197.724; //raggio terrestre
const double Ml=3.347E22; //massa luna
const double Dl=384403e3; //distanza terra luna
const double h=100; //altezza della torre
int main()
{
double gt = G*Mt/pow(Rt+h,2);
double gl = G*Ml/pow(Dl-Rt-h,2);
double tt = sqrt(2*h/gt);
double ttl = sqrt(2*h/(gt-gl));
printf("%.10E %.10E %.10E\n",tt,ttl,ttl-tt);
getchar();
}
guglielmini caduta grave
#include <stdio.h>
#include <math.h>
//costanti
const double Mt =5.97E24;
const double G=6.67E-11;
const double Rt=6366197.724;
const double h=100;
int main()
{
//inizializzare le variabili
long Ni= 100000;
double ds = h/Ni ;
double Ttot=0.0;
double V=0.0;
//loop
for(double s=Rt+h;s>Rt+ds;s-=ds)
{
//blocco di calcolo
double g= G*Mt/pow(s,2);
double ti=(-V+sqrt(pow(V,2)+2*g*ds))/g;
V +=g*ti;
Ttot +=ti;
}
//fine loop
printf("%.10E\n",Ttot);;
//stampa dei risultati
getchar();
}