Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Moto di un proiettile
Forum - Pascal - Moto di un proiettile

Avatar
Petenausen (Normal User)
Newbie


Messaggi: 11
Iscritto: 26/04/2011

Segnala al moderatore
Postato alle 12:48
Martedì, 26/04/2011
Ho fatto il programma che simula il moto di un proiettile ora devo rappresentarlo graficamente qualcuno sa come potrei fare??
o se è così gentile potrebbe farmelo lui??
Codice sorgente - presumibilmente Delphi

  1. program proiettile;
  2. uses crt;
  3. const g=9.81;
  4. var
  5. spazio,velocita,vx,vy,altezza,ts,td,tsd:real;
  6. angolo,radiante:real;
  7. a,tempox,k:integer;
  8. sx,vyt,vyd,hs,st,passo,dt:real;
  9.  
  10.  
  11. procedure esegue;
  12. var scelta:integer;
  13. begin
  14. clrscr;
  15. writeln('inserisci velocita di lancio');
  16. readln(velocita);
  17.  
  18. writeln('inserisci angolo di lancio');
  19. readln(angolo);
  20. writeln('indica il passo per i tempi');
  21. readln(passo);
  22.  
  23.  
  24. radiante:=angolo*3.14/180;
  25. vx:=velocita*cos(radiante);
  26. vy:=velocita*sin(radiante);
  27. writeln('la componente orizzontale vale',vx:6:2);
  28. writeln('la componente verticale vale',vy:6:2);
  29. ts:=vy/g;
  30. writeln('tempo in cui si raggiunge vy massima',ts:6:2);
  31. altezza:=vy*ts-g*ts*ts/2;
  32. writeln('altezza massima raggiunta salendo',altezza:6:2);
  33. td:=sqrt(2*altezza/g);
  34. writeln('tempo impiegato a scendere fino al suolo',td:6:2);
  35. tsd:=ts+td;
  36. writeln('tempo totale impiegato nella traiettoria',tsd:6:2);
  37. spazio:=vx*tsd;
  38. writeln('distanza raggiunta alla fine della traiettoria=',spazio:6:2);
  39. writeln;
  40. dt:=0;
  41. dt:=0;
  42. vyd:=0;
  43. tempox:=(trunc(ts)+2)*k;
  44. writeln('tempo':10,'vys':10,'spazio':10,'vyd':10,'distanza':10);
  45. for a:=1 to tempox do
  46. begin
  47. vyt:=vy-g*dt;
  48. hs:=vy*dt-g*dt*dt/2;
  49. st:=vx*dt;
  50. vyd:=g*dt;
  51. sx:=st+vx*dt;
  52. write(dt:10:2); writeln(vyt:10:2);writeln(hs:10:2);writeln(st:10:2);
  53. writeln(vyd:10:2);writeln(sx:10:2);
  54. dt:=dt*+passo;
  55. end;
  56. end;
  57.  
  58.  begin
  59.  clrscr;
  60.  esegue;
  61.  end.


Ultima modifica effettuata da Phi il 28/04/2011 alle 18:04
PM
Avatar
XBarboX (Member)
Guru


Messaggi: 945
Iscritto: 31/12/2008

Up
1
Down
V
Segnala al moderatore
Postato alle 13:31
Martedì, 26/04/2011
CoordinataX = VelocitàX * Istante t
CoordinataY = VelcoitàY * tempo - 0.5 * AccelerazioneDiGravità * tempo^2

VelocitàX e VelocitàY le trovi in base all'inclinazione del vettore V con seno e coseno


all ho fatto il programma ma non so come rappresentarlo graficamente posso usare le librerie graph però non so da dove iniziare - Petenausen - 26/04/11 15:18
PM
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 19:02
Martedì, 26/04/2011
Ciao!

Cosa non hai capito della libreria graph?
Prova a dare un occhiata qui:http://www.pierotofy.it/pages/guide/Guida_Pascal/Appendice ...




nessuno riuscirebbe a farmi il prog? - Petenausen - 26/04/11 19:43
Mica è una software house questa! - XBarboX - 27/04/11 09:20
LOL - Alex - 27/04/11 19:07
PM
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 21:01
Martedì, 26/04/2011
Nessuno potrà scriverti il programma, perché non sappiamo esattamente cosa vuoi fare.
Inoltre, in futuro, dovrai necessariamente acquisire maggiore autonomia.

Posso solo inviarti un semplice esempio di come utilizzare la grafica.
Codice sorgente - presumibilmente Delphi

  1. program ProvaGrafica;
  2. uses crt,graph;
  3.  
  4. function inizio_graf:boolean;  // funzione d' inizializzazione della grafica
  5. var sg,ng,ec:smallint;
  6. begin
  7.  sg:=detect;  // in sg, viene inserito il codice della scheda video
  8.  initgraph(sg,ng,' ');  // inizializzazione della modalità grafica
  9.  ec:=graphresult;
  10.  if ec=grok then  // controllo sulla riuscita dell' operazione
  11.  begin
  12.   inizio_graf:=true;
  13.   settextstyle(DefaultFont, HorizDir, 1);
  14.  end
  15.  else
  16.  begin
  17.   inizio_graf:=false;
  18.   writeln('Errore grafico: '+grapherrormsg(ec));
  19.   readln;
  20.  end;
  21. end;
  22.  
  23. begin
  24.   if inizio_graf then
  25.   begin
  26.     line(10, 10, 300, 100); // disegna una linea aventi le coordinate 10, 10, 300, 100
  27.     readln;
  28.     CloseGraph; // chiusure della grafica.
  29.   end;
  30. end.



Che compilatore usi?

free pascal - Petenausen - 26/04/11 22:42
PM