calcolo lancio proiettile

esci algebraturbo.htm

 

program para1;
(* moto parabolico proiettile solo risultati *)
uses crt;

const g=9.81;
var spazio,velocita,vx,vy,altezza,ts,td,tsd:real;
angolo,radiante:real;

procedure esegue;
var scelta:integer;
begin
clrscr;
writeln('nelle varie prove,cambia valori per velocita e angolo');
writeln('cercando di prevedere come variera la distanza raggiunta');
writeln('prendi nota su una tabella del valori calcolati');
writeln('esempio di tabella con nove colonne');
writeln('velocita,angolo,vx,vy,ts,td,tsd,altezza,distanza');
writeln;
writeln('per confrontare i vari risultati delle prove');
writeln('-------------------------------------------------');
writeln('provare anche con angolo=0 o angolo =90!!! ');
writeln;
write('indica velocita di lancio =');
readln(velocita);
write('indica angolo di lancio =');readln(angolo);
radiante:=angolo*3.14/180;
vx:=velocita*cos(radiante);
vy:=velocita*sin(radiante);
writeln('componente orizzontale =',vx:6:2);
writeln('componente verticale =',vy:6:2);
ts:=vy/g;
writeln('tempo impiegato per salire =',ts:6:2);
altezza:=vy*ts-g*ts*ts/2;
writeln('altezza massima raggiunta salendo=',altezza:6:2);
td:=sqrt(2*altezza/g);
writeln('tempo impiegato a scendere =',td:6:2);
tsd:=ts+td;
writeln('tempo totale impiegato =',tsd:6:2);
spazio:=vx*tsd;
if angolo=90 then spazio:=0;
writeln('distanza totale raggiunta =',spazio:6:2);
writeln;
writeln('per altra prova premi 1...per finire premi 2 ');
readln(scelta);
if scelta=1 then esegue
end;

begin
clrscr;
esegue;
clrscr;
end.