Laboratorio di Calcolo I AA2007/08
Esercitazione individuale - secondo gruppo - 18/1/08


Create nell'account indicato dal docente una cartella prova_cognome e svolgete li' la prova. La prova e' valutata su 10 punti.
Se il programma non compila perdete 5 punti,
se il programma compila ma ha seri problemi in fase di esecuzione (loop infiniti, mancanza di protezioni...) perdete 3 punti,
se il programma compila, gira ma non fornisce i risultati richiesti perdete 2 punti.
I punti rimanenti possono essere ulteriormente ridotti se non sono state seguite tutte le indicazioni (ad esempio se si sceglie di non utilizzare delle funzioni), se i file header non sono protetti contro la doppia inclusione o se il programma non sia comprensibile per mancanza di commenti. Se non vi trovate sul vostro account e avete bisogno di usare come esempio programmi svolti nel corso delle esercitazioni precedenti potete trovarne degli esempi al link programmi


Un grave viene fatto cadere da una quota di 10 m al tempo t=0.
                                                                               
Alle quote 9.5,7.5,6.,5.,4.,3.5,3,2.5,2,1.5,1,.5 m sono posti dei traguardi (cellule fotoelettriche) usati per determinare il tempo di transito da una certa quota.

Vi viene fornito un programma funzionante che calcola il tempo di transito da ognuno dei traguardi (esp.c, func.c, func.h).

I tempi pero' sono misurati da un "orologio digitale", il time to digital converter (TDC) che in questo caso ha 12 bit e un suo conteggio corrisponde a 350 microsecondi.
                                                                               
Si richiede:
                                                                               
1. di convertire i valori ottenuti per i tempi in conteggi di TDC, scrivendo nel file func.c (con il prototipo in func.h) la funzione int tdc(double t) che effettui tale conversione e richiamandola dal programma main in esp.c
                                                                              
2. di modificare il programma main in esp.c in modo tale da poter ripetere l'esperimento piu' volte

3. per ogni misura in ogni esperimento, e quindi per ogni valore del tempo di transito, introdurre un errore distribuito in modo uniforme tra -0.5 e 0.5ms, ovvero scrivere nel file func.c (con il prototipo in func.h) la funzione double misura(double t) che dato t restituisca t+err con err distribuito in modo uniforme tra -0.0005 e 0.0005s

4. scrivere su un file le quote dei traguardi ed i tempi corrispondenti per ogni misura (12 coppie di valori per ogni esperimento)