esercitazione con turbo pascal
program para2;
(* moto parabolico proiettile con tabella valori varianti *)
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.