import csv
from math import sqrt

########################################################################
###         IMPORTATION DES DONNEES DEPUIS LE FICHIER TXT            ###
###  le fichier TXT doit être dans le même dossier que ce programme  ###
########################################################################

# Lecture du fichier
fichier=open("nom_fichier.txt",'r')
donnees = list(csv.reader(fichier,delimiter=';'))
fichier.close()

# Création des listes T, X et Y du temps, d'abscisses et d'ordonnées
T = []
X = []
Y = []

# Ajout des valeurs dans les listes et mise au format python 
for valeur in donnees[2:]:

    t=valeur[0]
    t=t.replace(',','.')
    t=t.replace('E','e')
    T.append(float(t))
    
    x=valeur[1]
    x=x.replace(',','.')
    x=x.replace('E','e')
    X.append(float(x))
    
    y=valeur[2]
    y=y.replace(',','.')
    y=y.replace('E','e')
    Y.append(float(y))


#############################################################
###                  PROGRAMME PRINCIPAL                  ###
#############################################################

# Durée entre deux photos
tau = T[1]-T[0]
print("Durée entre deux photos =",tau,"s")

# Création des listes des coordonnées et normes de l'accélération
Ax = []
Ay = []
A = []

# Calculs des vitesses et accélérations
for i in range (2, len(X)-2):
    
    # calculs des coordonnées de la vitesse au point i-1
    vx1 = (X[i]-X[i-2])/(2*tau)
    vy1 = (Y[i]-Y[i-2])/(2*tau)
    
    # calculs des coordonnées de la vitesse au point i+1
    vx2 = (X[i+2]-X[i])/(2*tau)
    vy2 = (Y[i+2]-Y[i])/(2*tau)

    # Calculs des coordonnées de l'accélération au point i
    ax = # à compléter
    Ax.append(ax)
    ay = # à compléter
    Ay.append(ay)
    
    # Calculs de la norme de l'accélération
    a = sqrt(ax**2+ay**2)
    A.append(a)


#################################################################
#     Traitement statistiques des mesures de l'accélération     #
#################################################################

# Calcul de la valeur moyenne l'accélération
moyenne_A = sum(A)/len(A)

# Calcul de l'écart type
somme_carre_ecart = 0
for k in range(0, len(A)):
    somme_carre_ecart = somme_carre_ecart + (A[k]-moyenne_A)**2
ecart_type = sqrt(somme_carre_ecart/(len(A)-1))

# Calcul de l'incertitude-type
incertitude_type = ecart_type/sqrt(len(A))


#######################################
#              Affichage              #
#######################################

# Affichage de u(a) et a
print("Incertitude-type u(a) =",incertitude_type,"m/s²")
print("a =",moyenne_A,"m/s²")