calcolo lancio proiettile

esci algebraturbo.htm

 

program para2;
(* moto parabolico proiettile con tabella valori varianti *)

uses crt;
const g=9.81;
var spazio,velocita,vx,vy,altezza,ts,td,tsd:real;
angolo,radiante:real;
a,dt:integer;
sx,vyt,vyd,hs,st: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 annullare vy salendo =',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 fino al suolo =',td:6:2);
tsd:=ts+td;
writeln('tempo totale impiegato nella traiettoria =',tsd:6:2);
spazio:=vx*tsd;
writeln('distanza raggiunta alla fine di traiettoria =',spazio:6:2);
writeln;
dt:=0;
vyd:=0;
writeln('tempo':10,'vys':10,'hs':10,'spazio':10,'vyd':10,'distanza':10);
for a:=1 to trunc(ts)+2 do
begin
vyt:=vy-g*dt;
hs:=vy*dt-g*dt*dt/2;
st:=vx*dt;
vyd:=g*dt;
sx:=st+vx*dt;
if angolo=90 then st:=0;
if angolo=90 then sx:=0;
write(dt:10);write(vyt:10:2);write(hs:10:2);write(st:10:2);
write(vyd:10:2);writeln(sx:10:2);
dt:=dt+1;
end;
writeln('per altra prova premi 1...per finire premi 2 ');
readln(scelta);
if scelta=1 then esegue
end;

begin
clrscr;
writeln('esempio calcoli per traiettoria proiettile');
writeln('viene richiesta velocita di lancio e angolo di lancio');
writeln('viene visualizzata tabella con valori assunti nel tempo');
writeln('componente verticale della velocita vys in salita');
writeln('altezza raggiunta in salita hs');
writeln('distanza percorsa in orizzontale st durante la salita');
writeln('componente verticale velocita in discesa vyd ');
writeln('successione tempo in secondi dt');
writeln('distanza percorsa in orizzontale durante la discesa sx');
writeln('valori globali ');
writeln('premi enter per proseguire');
readln;
clrscr;
esegue;
clrscr;
end.