Esercitazioni del corso di Laboratorio di Programmazione e Calcolo
 n. 3

Utilizzo e debug della classe CorpoCeleste
Studio del moto di caduta di un grave e del moto di un proiettile
Utilizzo delle istruzioni di iterazione

 

 

 


Procedure preliminari

  1. copiate nella directory source i file CorpoCeleste.h e CorpoCeleste.cc che avete scritto durante la scorsa esercitazione
  2. controllate che nella HOME directory sia presente il file con i vostri nomi
  3. create una sottodirectory es_3
  4. spostatevi in es_3 
  5. copiate nella directory es_3 i file CorpoCeleste.h e CorpoCeleste.cc che avete scritto durante la scorsa esercitazione


 

Obiettivo dell'esercitazione

 

   L'esercitazione vuole utilizzare la classe CorpoCeleste per studiare il moto di caduta di un grave o il moto di un proiettile,

   soggetti solo alla forza gravitazionale, di modulo F = mg e diretta verso il basso ( g = 9.8 m/sec2 )
               L'esercitazione permette anche di effettuare il "Debug" del metodo CorpoCeleste::calcolaPosizione(....)
      
Per ottenere il risultato richiesta sara' necessario utilizzare le istruzioni di iterazione.



  Caduta di un grave


    

  Moto di un proiettile



 

  N.B.:     I due problemi sono concettualmete molto simili, e differiscono solo per le condizioni iniziali
                           (posizione iniziale e velocita' iniziale)


   Il programma dovra' stampare una tabella con posizione e velocita' ad istanti successivi. Ad esempio


            t (s)               x (m)          y (m)          vx (m/s)        vy (m/s)

         0.000             0.000          1.000            0.000            -0.098
                     0.010             0.000          1.000            0.000            -0.098
                     0.020             0.000          0.998            0.000            -0.196
                     ...........................................
                     ...........................................
                     0.450            0.000         0.008             0.000             -4.410
                     0.460            0.000        -0.037             0.000            -4.508

 Oppure descrivere il moto sotto forma di un contatore che si aggiorna
             (la prima riga indica le condizioni iniziali, la seconda e' un contatore che si aggiorna, la
              terza riassume il risultato finale

       t = 0.000 s    x = 0.000 m    y = 1.000 m    vx = 0.000 m/s   vy = 0.000 m/s
                   t = 0.125 s    x = 0.000 m    y = 0.924 m    vx = 0.000 m/s   vy = -1.223 m/s

                  Tempo di caduta :  0.452 s  Velocita finale :  vx = 0.000 m/s  vy =  -4.427 m/s


            ( Per scrivere ripetutamente su una stessa riga, dovete sostituire endl con "\r" )


 

Lavoro di Gruppo

 

            Prima di iniziare a scrivere il programma main, analizzate attentamente quanto richiesto dal testo dell’Esercitazione n.3.
            Riunite due coppie insieme, lavorando in gruppi di quattro studenti (solo per questa parte, poi continuerete l'esercitazione lavorando al computer in gruppi di due, come sempre)

 

1)   Perche’ la classe CorpoCeleste può essere utilizzata  per risolvere il problema indicato? Quali metodi della classe CorpoCeleste dovranno essere invocati per ottenere il risultato richiesto?

2)      Quale e’ la strategia che volete utilizzare per ottenere il risultato finale?  


3)      Suddividetevi i compiti nel gruppo. Uno di voi sara’ il programma main,  un altro studente sara' un oggetto della classe  CorpoCeleste, un terzo dovra' gestire le procedure di iterazione e di controllo, ed il quarto controllera' che tutto avvenga correttamente
   a)     Il main effettui tutte le chiamate necessarie

         b)     I singoli oggetti eseguano quanto richiesto (se possibile!) ed invochino eventuali altri metodi


        4)        Discutete quanto emerso nel corso del punto 3) e confrontatelo con la struttura dell’intero programma di SistemaSolare.

                  
 N.B.
  Il punto 3) (e l’eventuale discussione) potra’ essere ripetuta più volte cambiando il ruolo degli “attori” ed in riferimento alle diverse richiste dell’Esercitazione di Laboratorio n. 3

 

 

Scrittura del Programma

Scrivete il programma  main() che esegua quanto richiesto.
Potete iniziare con valori prefissati delle condizioni inziali e poi rendere il programma piu' flessibile introducendo i valori da tastiera (utilizzando cin) .

Interpretate i risultati che ottenete in termini di tipo di tipo di moto. Provate a variare la massa del corpo.

Provate a determinare la massima distanza raggiunta da un proiettile (a parita' di modulo della velocita' iniziale) in funzione dell'angolo di tiro
(usate angoli semplici, ad esempio 30 - 45 - 60 gradi, di cui conoscete facilmente il valore di seno e coseno)